Merge pull request #6296 from gilles-peskine-arm/test_data_generation-pr_6093_followup

Minor fixes to test_data_generation.py
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..ceb59d7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Classify all '.function' files as C for syntax highlighting purposes
+*.function linguist-language=C
diff --git a/3rdparty/everest/library/everest.c b/3rdparty/everest/library/everest.c
index 82c4e03..fefc6a2 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/CMakeLists.txt b/CMakeLists.txt
index f2741d4..59a960a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -120,38 +120,33 @@
 
 # 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/CONTRIBUTING.md b/CONTRIBUTING.md
index 319f02d..66fe5f1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -7,7 +7,7 @@
 
 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 @@
 
 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 @@
 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/ChangeLog b/ChangeLog
index 6dfb23f..80b8617 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -463,7 +463,7 @@
      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/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt
new file mode 100644
index 0000000..6de374f
--- /dev/null
+++ b/ChangeLog.d/LMS.txt
@@ -0,0 +1,11 @@
+Features
+    * 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/ChangeLog.d/driver-only-hashes.txt b/ChangeLog.d/driver-only-hashes.txt
new file mode 100644
index 0000000..2062bcb
--- /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.
diff --git a/ChangeLog.d/ecjpake_to_pms.txt b/ChangeLog.d/ecjpake_to_pms.txt
new file mode 100644
index 0000000..4dd2075
--- /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.
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 0000000..a6d11d3
--- /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).
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 0000000..bac4910
--- /dev/null
+++ b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt
@@ -0,0 +1,4 @@
+Bugfix
+    * Fix bugs and missing dependencies when
+      building and testing configurations with
+      only one encryption type enabled in TLS 1.2.
diff --git a/ChangeLog.d/fix_hard_link_across_drives b/ChangeLog.d/fix_hard_link_across_drives
new file mode 100644
index 0000000..0c55c30
--- /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).
diff --git a/ChangeLog.d/platform-setbuf.txt b/ChangeLog.d/platform-setbuf.txt
new file mode 100644
index 0000000..844f70c
--- /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.
diff --git a/ChangeLog.d/tls13_sig_alg_selection.txt b/ChangeLog.d/tls13_sig_alg_selection.txt
new file mode 100644
index 0000000..8857750
--- /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.
diff --git a/README.md b/README.md
index 8978faf..9c9cf91 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,9 @@
 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 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:
 
@@ -103,9 +105,9 @@
 
 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 @@
 
 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 dab7ac5..b550e08 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -2,10 +2,11 @@
 
 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 knowledge Base](https://tls.mbed.org/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/).
 
diff --git a/docs/3.0-migration-guide.md b/docs/3.0-migration-guide.md
index 884810d..63a13ad 100644
--- a/docs/3.0-migration-guide.md
+++ b/docs/3.0-migration-guide.md
@@ -141,7 +141,7 @@
 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
-<https://tls.mbed.org/kb/how-to/add-entropy-sources-to-entropy-pool> for more
+<https://mbed-tls.readthedocs.io/en/latest/kb/how-to/add-entropy-sources-to-entropy-pool> 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 7fe6332..eacdea7 100644
--- a/docs/architecture/alternative-implementations.md
+++ b/docs/architecture/alternative-implementations.md
@@ -38,7 +38,7 @@
 * 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/psa-migration/psa-limitations.md b/docs/architecture/psa-migration/psa-limitations.md
index e2efeb9..e565b28 100644
--- a/docs/architecture/psa-migration/psa-limitations.md
+++ b/docs/architecture/psa-migration/psa-limitations.md
@@ -29,11 +29,6 @@
 
 [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
 -----------------------------
 
diff --git a/docs/architecture/psa-migration/strategy.md b/docs/architecture/psa-migration/strategy.md
index 8d2d59f..0ad5fa0 100644
--- a/docs/architecture/psa-migration/strategy.md
+++ b/docs/architecture/psa-migration/strategy.md
@@ -345,19 +345,29 @@
 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);
 - 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
 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 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`.
+
 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/docs/architecture/testing/test-framework.md b/docs/architecture/testing/test-framework.md
index d0d4776..7780949 100644
--- a/docs/architecture/testing/test-framework.md
+++ b/docs/architecture/testing/test-framework.md
@@ -6,7 +6,7 @@
 
 ## Unit tests
 
-See <https://tls.mbed.org/kb/development/test_suites>
+See <https://mbed-tls.readthedocs.io/en/latest/kb/development/test_suites>
 
 ### Unit test descriptions
 
diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md
index 10da3c5..fc0087f 100644
--- a/docs/architecture/tls13-support.md
+++ b/docs/architecture/tls13-support.md
@@ -181,7 +181,7 @@
 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/check_config.h b/include/mbedtls/check_config.h
index fa70058..0081ca3 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 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) ) &&          \
+    !( !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) &&                             \
@@ -344,6 +353,16 @@
 #error "MBEDTLS_MD_C defined, but not all prerequisites"
 #endif
 
+#if defined(MBEDTLS_LMS_C) &&                                          \
+    ! ( 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) &&                                    \
+    ( !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"
@@ -514,6 +533,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"
@@ -865,6 +898,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"
@@ -953,7 +991,9 @@
 #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH 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
 
 /* Reject attempts to enable options that have been removed and that could
  * cause a build to succeed but with features removed. */
diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h
index 2609787..5b27dda 100644
--- a/include/mbedtls/config_psa.h
+++ b/include/mbedtls/config_psa.h
@@ -237,6 +237,12 @@
 #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
@@ -721,6 +727,11 @@
 #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/include/mbedtls/error.h b/include/mbedtls/error.h
index 8b2b9ea..eb83913 100644
--- a/include/mbedtls/error.h
+++ b/include/mbedtls/error.h
@@ -82,6 +82,7 @@
  * POLY1305  3                  0x0057-0x005B
  * CHACHAPOLY 2 0x0054-0x0056
  * PLATFORM  2  0x0070-0x0072
+ * LMS       5  0x0011-0x0019
  *
  * High-level module nr (3 bits - 0x0...-0x7...)
  * Name      ID  Nr of Errors
diff --git a/library/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h
similarity index 87%
rename from library/legacy_or_psa.h
rename to include/mbedtls/legacy_or_psa.h
index be0f33f..2156be9 100644
--- a/library/legacy_or_psa.h
+++ b/include/mbedtls/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 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.
+ *
+ * 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 <crypto feature> and will do so
  * using <legacy API> or PSA depending on <condition>, where:
  * - <crypto feature> 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.
@@ -89,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/include/mbedtls/lms.h b/include/mbedtls/lms.h
new file mode 100644
index 0000000..5e03d9b
--- /dev/null
+++ b/include/mbedtls/lms.h
@@ -0,0 +1,450 @@
+/**
+ * \file lms.h
+ *
+ * \brief This file provides an API for the LMS post-quantum-safe stateful-hash
+          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
+ *  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 <stdint.h>
+#include <stddef.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_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 */
+
+/* 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_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)
+
+/* 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_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
+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 H10, for the sake of simplicty.
+ */
+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;
+
+#if defined(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 /* defined(MBEDTLS_LMS_PRIVATE) */
+
+
+/** 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 generated from a private context.
+ *
+ * \dot
+ * digraph lms_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_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. */
+    unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key.
+                                                     Boolean values only. */
+} mbedtls_lms_public_t;
+
+
+#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
+ * 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. 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. 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;
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
+
+/**
+ * \brief                    This function initializes an LMS public context
+ *
+ * \param ctx                The uninitialized LMS context that will then be
+ *                           initialized.
+ */
+void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx );
+
+/**
+ * \brief                    This function uninitializes an LMS public context
+ *
+ * \param ctx                The initialized LMS context that will then be
+ *                           uninitialized.
+ */
+void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx );
+
+/**
+ * \brief                    This function imports an LMS public key into a
+ *                           public 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_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_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.
+ *
+ * \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 );
+
+#if defined(MBEDTLS_LMS_PRIVATE)
+/**
+ * \brief                    This function initializes an LMS private context
+ *
+ * \param ctx                The uninitialized LMS private context that will
+ *                           then be initialized. */
+void mbedtls_lms_private_init( 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_private_free( 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. The API for this function
+ *                           may change considerably in future versions.
+ *
+ * \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, const unsigned char *seed,
+                                      size_t seed_size );
+
+/**
+ * \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 calculate the key
+ *                           from and store it into.
+ *
+ * \param priv_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,
+                                      const mbedtls_lms_private_t *priv_ctx );
+
+/**
+ * \brief                    This function creates a LMS signature, using a
+ *                           LMS context that contains unused private keys.
+ *
+ * \warning                  This function is **not intended for use in
+ *                           production**, due to as-yet unsolved problems with
+ *                           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
+ *                           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 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_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_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_private_t *ctx,
+                      int (*f_rng)(void *, unsigned char *, size_t),
+                      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
+}
+#endif
+
+#endif /* MBEDTLS_LMS_H */
diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h
index 990dc58..61007d8 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 if present, or via PSA, see MBEDTLS_ECJPAKE_C)
  *           MBEDTLS_ECP_DP_SECP256R1_ENABLED
  *
  * This enables the following ciphersuites (if other requisites are
@@ -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
@@ -1492,13 +1494,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 +1520,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.
  */
@@ -1550,6 +1553,26 @@
 //#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
 
 /**
+ * \def MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE
+ *
+ * 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
+
+/**
  * \def MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH
  *
  * Size in bytes of a ticket nonce. This is not used in TLS 1.2.
@@ -1559,6 +1582,16 @@
 #define MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH 32
 
 /**
+ * \def MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS
+ *
+ * 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
+
+/**
  * \def MBEDTLS_SSL_PROTO_DTLS
  *
  * Enable support for DTLS (all available versions).
@@ -2337,7 +2370,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.
@@ -2429,6 +2462,32 @@
 #define MBEDTLS_HMAC_DRBG_C
 
 /**
+ * \def MBEDTLS_LMS_C
+ *
+ * Enable the LMS stateful-hash asymmetric signature algorithm.
+ *
+ * Module:  library/lms.c
+ * Caller:
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ * 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
  *
  * Enable the Key Wrapping mode for 128-bit block ciphers,
@@ -2521,7 +2580,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
  *
@@ -2654,7 +2713,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.
  */
@@ -3018,7 +3080,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
 
@@ -3074,7 +3137,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
  *
@@ -3106,7 +3169,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
  */
@@ -3136,8 +3199,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 +3260,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.
  */
diff --git a/include/mbedtls/platform.h b/include/mbedtls/platform.h
index a5a43ac..62e12d2 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
diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h
index 1e0220a..219d820 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
@@ -629,11 +627,7 @@
 
 #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 */
@@ -1194,6 +1188,10 @@
     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 */
@@ -1329,9 +1327,17 @@
 #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_count);   /*!< 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? */
@@ -1388,10 +1394,12 @@
 #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    */
@@ -2320,7 +2328,7 @@
  *                 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,
@@ -3413,6 +3421,7 @@
                                    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).
  *
@@ -3455,6 +3464,7 @@
                      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)
@@ -4109,7 +4119,8 @@
 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 +4132,34 @@
  *                                         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 messages for the server to send
+ *          after handshake completion.
+ *
+ * \note    The default value is
+ *          \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.
+ *
+ */
+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/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h
index 1ddc997..6c09b3a 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"
@@ -515,7 +516,7 @@
  *                 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.
@@ -1108,7 +1109,7 @@
 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 @@
  * \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/include/psa/crypto_config.h b/include/psa/crypto_config.h
index 9011a55..5ab4fde 100644
--- a/include/psa/crypto_config.h
+++ b/include/psa/crypto_config.h
@@ -89,6 +89,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 1024d6b..231ea62 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 957b4c6..afba325 100644
--- a/include/psa/crypto_struct.h
+++ b/include/psa/crypto_struct.h
@@ -202,6 +202,12 @@
 #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)
@@ -267,6 +273,9 @@
     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 5e6e5e3..b465ddb 100644
--- a/include/psa/crypto_values.h
+++ b/include/psa/crypto_values.h
@@ -2021,6 +2021,20 @@
 #define PSA_ALG_TLS12_PSK_TO_MS_GET_HASH(hkdf_alg)                         \
     (PSA_ALG_CATEGORY_HASH | ((hkdf_alg) & PSA_ALG_HASH_MASK))
 
+/* 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.
+ * 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)
+
 /* 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/CMakeLists.txt b/library/CMakeLists.txt
index 9513814..7c325f7 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -44,6 +44,8 @@
     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 9c3af3b..624773d 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -109,6 +109,8 @@
 	     hash_info.o \
 	     hkdf.o \
 	     hmac_drbg.o \
+	     lmots.o \
+	     lms.o \
 	     md.o \
 	     md5.o \
 	     memory_buffer_alloc.o \
diff --git a/library/aes.c b/library/aes.c
index ca94e0a..289890d 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -40,23 +40,10 @@
 #include "aesni.h"
 #endif
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #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;
@@ -489,8 +476,6 @@
 
 void mbedtls_aes_init( mbedtls_aes_context *ctx )
 {
-    AES_VALIDATE( ctx != NULL );
-
     memset( ctx, 0, sizeof( mbedtls_aes_context ) );
 }
 
@@ -505,8 +490,6 @@
 #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 +514,6 @@
     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 +629,6 @@
     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 +720,6 @@
     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 +742,6 @@
     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,11 +941,8 @@
                            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 );
+    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 ) )
@@ -1014,12 +982,8 @@
     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( 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 );
@@ -1123,12 +1087,8 @@
     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 );
+    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 )
@@ -1232,13 +1192,8 @@
     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 );
+    if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT )
+        return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
 
     n = *iv_off;
 
@@ -1301,12 +1256,8 @@
     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 );
+    if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT )
+        return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
     while( length-- )
     {
         memcpy( ov, iv, 16 );
@@ -1345,12 +1296,6 @@
     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 +1337,6 @@
     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 )
diff --git a/library/aria.c b/library/aria.c
index bc05c4a..f78d289 100644
--- a/library/aria.c
+++ b/library/aria.c
@@ -31,14 +31,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 83c7c58..d874fff 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 <stdlib.h>
-#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 053dbb6..f1adcb5 100644
--- a/library/asn1write.c
+++ b/library/asn1write.c
@@ -26,13 +26,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#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 83daa0b..9021a04 100644
--- a/library/base64.c
+++ b/library/base64.c
@@ -28,12 +28,7 @@
 
 #if defined(MBEDTLS_SELF_TEST)
 #include <string.h>
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 acf620f..1c7f919 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"
@@ -48,15 +47,7 @@
 #include <limits.h>
 #include <string.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#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 )
@@ -962,40 +953,6 @@
     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)
  */
@@ -1028,7 +985,7 @@
     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. */
@@ -1157,38 +1114,6 @@
     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)
  */
@@ -1612,21 +1537,9 @@
     return( 0 );
 }
 
-/*
- * Fast Montgomery initialization (thanks to Tom St Denis)
- */
 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_core_montmul_init( N->p );
 }
 
 /** Montgomery multiplication: A = A * B * R^-1 mod N  (HAC 14.36)
@@ -1640,7 +1553,7 @@
  * \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.
@@ -1648,59 +1561,13 @@
  *                      (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.
+ *                      It does not get reallocated.
  */
-static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *N, mbedtls_mpi_uint mm,
-                         const mbedtls_mpi *T )
+static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B,
+                         const mbedtls_mpi *N, mbedtls_mpi_uint mm,
+                         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] -= mpi_sub_hlp( n, d, d, N->p );
-    /* 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 );
 }
 
 /*
@@ -1709,7 +1576,7 @@
  * 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;
diff --git a/library/bignum_core.c b/library/bignum_core.c
index 8e89766..d0728e7 100644
--- a/library/bignum_core.c
+++ b/library/bignum_core.c
@@ -26,17 +26,11 @@
 #include "mbedtls/error.h"
 #include "mbedtls/platform_util.h"
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#define mbedtls_printf      printf
-#define mbedtls_calloc      calloc
-#define mbedtls_free        free
-#endif
 
 #include "bignum_core.h"
+#include "bn_mul.h"
+#include "constant_time_internal.h"
 
 size_t mbedtls_mpi_core_clz( mbedtls_mpi_uint a )
 {
@@ -153,7 +147,7 @@
         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;
     }
@@ -291,4 +285,153 @@
     return( 0 );
 }
 
+mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X,
+                                          const mbedtls_mpi_uint *A,
+                                          size_t limbs,
+                                          unsigned cond )
+{
+    mbedtls_mpi_uint c = 0;
+
+    /* 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++ )
+    {
+        mbedtls_mpi_uint add = mask & A[i];
+        mbedtls_mpi_uint t = c + X[i];
+        c = ( t < X[i] );
+        t += add;
+        c += ( t < add );
+        X[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 */
+    /*
+     * 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;
+    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_core_montmul_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,
+                               size_t B_limbs,
+                               const mbedtls_mpi_uint *N,
+                               size_t AN_limbs,
+                               mbedtls_mpi_uint mm,
+                               mbedtls_mpi_uint *T )
+{
+    memset( T, 0, ( 2 * AN_limbs + 1 ) * ciL );
+
+    for( size_t i = 0; i < AN_limbs; i++ )
+    {
+        /* T = (T + u0*B + u1*N) / 2^biL */
+        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 );
+
+        T++;
+    }
+
+    /*
+     * 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 );
+
+    /*
+     * Using R as the Montgomery radix (auxiliary modulus) i.e. 2^(biL*AN_limbs):
+     *
+     * T can be in one of 3 ranges:
+     *
+     * 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
+     *
+     * 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.
+     */
+    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 434f52b..8e227f8 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,18 +155,139 @@
                                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
+/**
+ * \brief Conditional addition of two fixed-size large unsigned integers,
+ *        returning the carry.
+ *
+ * Functionally equivalent to
+ *
+ * ```
+ * if( cond )
+ *    X += 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
+ *                   representing the bignum to conditionally add
+ *                   to \p X. This may be aliased to \p X but may not
+ *                   overlap otherwise.
+ * \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 X might be
+ *                   neither its original value nor \p X + \p A.
+ *
+ * \return           1 if `X + cond * A >= 2^(biL*limbs)`, 0 otherwise.
  */
-#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 )
+mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X,
+                                          const mbedtls_mpi_uint *A,
+                                          size_t limbs,
+                                          unsigned cond );
+
+/**
+ * \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
+ * (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
+ * either otherwise.
+ *
+ * \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 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.
+ *
+ * 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
+ *                   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 X but may not overlap
+ *                   otherwise.
+ * \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 *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
+ *        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_core_montmul_init( const mbedtls_mpi_uint *N );
+
+/**
+ * \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 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.
+ *                          On successful completion, X contains the result of
+ *                          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.
+ * \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 the same number
+ *                          of limbs as \p A.
+ *                          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()`.
+ * \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 alias or otherwise overlap any of the
+ *                          other parameters.
+ */
+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 */
diff --git a/library/bignum_internal.h b/library/bignum_internal.h
deleted file mode 100644
index 8677dcf..0000000
--- 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/bignum_mod.c b/library/bignum_mod.c
index de28093..f2c11a5 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 <stdio.h>
-#include <stdlib.h>
-#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 8c89b2c..e1c96d6 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 <stdio.h>
-#include <stdlib.h>
-#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 29d730a..5dd6c56 100644
--- a/library/camellia.c
+++ b/library/camellia.c
@@ -32,23 +32,10 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #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 },
@@ -298,7 +285,6 @@
 
 void mbedtls_camellia_init( mbedtls_camellia_context *ctx )
 {
-    CAMELLIA_VALIDATE( ctx != NULL );
     memset( ctx, 0, sizeof( mbedtls_camellia_context ) );
 }
 
@@ -325,9 +311,6 @@
     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 +414,6 @@
     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 +461,8 @@
 {
     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 );
+    if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT )
+        return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA;
 
     ( (void) mode );
 
@@ -550,12 +528,8 @@
 {
     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( 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 );
@@ -611,13 +585,8 @@
 {
     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 );
+    if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT )
+        return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA;
 
     n = *iv_off;
     if( n >= 16 )
@@ -670,12 +639,6 @@
 {
     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 )
diff --git a/library/chacha20.c b/library/chacha20.c
index 658f046..e53eb82 100644
--- a/library/chacha20.c
+++ b/library/chacha20.c
@@ -32,14 +32,7 @@
 #include <stddef.h>
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #if !defined(MBEDTLS_CHACHA20_ALT)
 
@@ -48,12 +41,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 +159,6 @@
 
 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 +177,6 @@
 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 +200,6 @@
                              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 +224,6 @@
     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 +287,6 @@
     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 );
diff --git a/library/chachapoly.c b/library/chachapoly.c
index dc75b20..e283853 100644
--- a/library/chachapoly.c
+++ b/library/chachapoly.c
@@ -28,23 +28,10 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #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 +78,6 @@
 
 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 +103,6 @@
                                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 +115,6 @@
 {
     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 +151,6 @@
                                    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 +165,6 @@
                                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 +212,6 @@
 {
     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 +287,6 @@
                                         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 +305,6 @@
     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,
diff --git a/library/check_crypto_config.h b/library/check_crypto_config.h
index c74437e..e60e666 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 */
diff --git a/library/cipher.c b/library/cipher.c
index 0bac4ee..dfb7329 100644
--- a/library/cipher.c
+++ b/library/cipher.c
@@ -63,17 +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 )
-#define CIPHER_VALIDATE( cond )        \
-    MBEDTLS_INTERNAL_VALIDATE( cond )
 
 static int supported_init = 0;
 
@@ -143,7 +133,6 @@
 
 void mbedtls_cipher_init( mbedtls_cipher_context_t *ctx )
 {
-    CIPHER_VALIDATE( ctx != NULL );
     memset( ctx, 0, sizeof( mbedtls_cipher_context_t ) );
 }
 
@@ -193,7 +182,6 @@
 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,10 +245,8 @@
                            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( 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 );
 
@@ -356,8 +342,6 @@
 {
     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 +437,6 @@
 
 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 +458,6 @@
 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 +510,6 @@
     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 +929,6 @@
 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 +1028,6 @@
 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 +1089,6 @@
 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 +1138,6 @@
     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 +1229,6 @@
     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 +1504,6 @@
                          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 +1553,6 @@
                          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)
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 7da7d9d..8e395b3 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -68,13 +68,7 @@
 #include <string.h>
 #endif
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif
 
 #if defined(MBEDTLS_GCM_C)
 /* shared by all GCM ciphers */
diff --git a/library/constant_time.c b/library/constant_time.c
index 8980701..01a6976 100644
--- a/library/constant_time.c
+++ b/library/constant_time.c
@@ -81,7 +81,7 @@
 #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 @@
 #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 @@
 
 #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 @@
 }
 #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 fc24ae5..340a588 100644
--- a/library/constant_time_internal.h
+++ b/library/constant_time_internal.h
@@ -213,7 +213,7 @@
 
 #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 @@
                      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)
 
diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c
index 8919c78..71c48af 100644
--- a/library/ctr_drbg.c
+++ b/library/ctr_drbg.c
@@ -36,14 +36,7 @@
 #include <stdio.h>
 #endif
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 /*
  * CTR_DRBG context initialization
diff --git a/library/debug.c b/library/debug.c
index fa60d13..bdbf6dd 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 <stdlib.h>
-#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 91d22b5..65f5681 100644
--- a/library/des.c
+++ b/library/des.c
@@ -33,14 +33,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 1e95bda..6ee5402 100644
--- a/library/dhm.c
+++ b/library/dhm.c
@@ -43,23 +43,10 @@
 #include "mbedtls/asn1.h"
 #endif
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#include <stdio.h>
-#define mbedtls_printf     printf
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif
 
 #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 +107,6 @@
 
 void mbedtls_dhm_init( mbedtls_dhm_context *ctx )
 {
-    DHM_VALIDATE( ctx != NULL );
     memset( ctx, 0, sizeof( mbedtls_dhm_context ) );
 }
 
@@ -173,9 +159,6 @@
                      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 +235,6 @@
     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 +279,6 @@
                            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 +296,6 @@
                      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 +315,6 @@
                      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 +411,6 @@
 {
     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 +486,6 @@
     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 +632,6 @@
     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 );
diff --git a/library/ecdsa.c b/library/ecdsa.c
index dcdf83c..c58e331 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 <stdlib.h>
-#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 020eee5..289255a 100644
--- a/library/ecjpake.c
+++ b/library/ecjpake.c
@@ -857,12 +857,7 @@
 
 #if defined(MBEDTLS_SELF_TEST)
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 009be61..ee6c24a 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 <stdlib.h>
-#include <stdio.h>
-#define mbedtls_printf     printf
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif
 
 #include "ecp_internal_alt.h"
 
diff --git a/library/ecp_curves.c b/library/ecp_curves.c
index 51956cd..7b14237 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 <string.h>
@@ -4969,9 +4969,6 @@
 #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'
  */
diff --git a/library/entropy.c b/library/entropy.c
index 08c5bd7..1e0d9d3 100644
--- a/library/entropy.c
+++ b/library/entropy.c
@@ -32,18 +32,9 @@
 #include <stdio.h>
 #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 <stdio.h>
-#define mbedtls_printf     printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 
 #define ENTROPY_MAX_LOOP    256     /**< Maximum amount to loop before error */
diff --git a/library/entropy_poll.c b/library/entropy_poll.c
index 2ae57fd..2df9bbe 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/gcm.c b/library/gcm.c
index 6d07f87..f004a73c 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,29 +42,13 @@
 #include "aesni.h"
 #endif
 
-#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
-#include "mbedtls/aes.h"
-#include "mbedtls/platform.h"
-#if !defined(MBEDTLS_PLATFORM_C)
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
-
 #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
  */
 void mbedtls_gcm_init( mbedtls_gcm_context *ctx )
 {
-    GCM_VALIDATE( ctx != NULL );
     memset( ctx, 0, sizeof( mbedtls_gcm_context ) );
 }
 
@@ -143,9 +128,8 @@
     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 );
+    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 );
@@ -256,9 +240,6 @@
     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 +315,6 @@
     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 +413,6 @@
 
     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 +422,6 @@
     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 +493,6 @@
     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 +551,6 @@
     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 +583,6 @@
     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 )
diff --git a/library/hash_info.c b/library/hash_info.c
index 366ca3f..cd7d70e 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/hmac_drbg.c b/library/hmac_drbg.c
index 8b13a86..6bc679d 100644
--- a/library/hmac_drbg.c
+++ b/library/hmac_drbg.c
@@ -37,14 +37,7 @@
 #include <stdio.h>
 #endif
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_SELF_TEST */
-#endif /* MBEDTLS_PLATFORM_C */
 
 /*
  * HMAC_DRBG context initialization
diff --git a/library/lmots.c b/library/lmots.c
new file mode 100644
index 0000000..788063c
--- /dev/null
+++ b/library/lmots.c
@@ -0,0 +1,826 @@
+/*
+ * 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"
+
+#if defined(MBEDTLS_LMS_C)
+
+#include <string.h>
+
+#include "lmots.h"
+
+#include "mbedtls/lms.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/error.h"
+
+#include "psa/crypto.h"
+
+#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 */
+#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};
+
+#if defined(MBEDTLS_TEST_HOOKS)
+int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ) = NULL;
+#endif /* defined(MBEDTLS_TEST_HOOKS) */
+
+void mbedtls_lms_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;
+    }
+}
+
+unsigned int mbedtls_lms_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 ) );
+    }
+
+    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.
+ *
+ *  params              The LMOTS parameter set, I and q values which
+ *                      describe the key being used.
+ *
+ *  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 )
+{
+    size_t idx;
+    unsigned sum = 0;
+
+    for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN(params->type); idx++ )
+    {
+        sum += DIGIT_MAX_VALUE - digest[idx];
+    }
+
+    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.
+ *
+ *  params              The LMOTS parameter set, I and q values which
+ *                      describe the key being used.
+ *
+ *  msg                 The message that will be hashed to create the
+ *                      digest.
+ *
+ *  msg_size            The size of the message.
+ *
+ *  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.
+ *
+ *  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,
+                                             const unsigned char *C_random_value,
+                                             unsigned char *out )
+{
+    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;
+
+    status = psa_hash_setup( &op, PSA_ALG_SHA_256 );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, params->I_key_identifier,
+                              MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, params->q_leaf_identifier,
+                              MBEDTLS_LMOTS_Q_LEAF_ID_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, C_random_value,
+                              MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, msg, msg_len );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_finish( &op, out,
+                              MBEDTLS_LMOTS_N_HASH_LEN(params->type),
+                              &output_hash_len );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    checksum = lmots_checksum_calculate( params, out );
+    mbedtls_lms_unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN,
+            out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) );
+
+exit:
+    psa_hash_abort( &op );
+
+    return( mbedtls_lms_error_from_psa( status ) );
+}
+
+/* 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).
+ *
+ *  params              The LMOTS parameter set, I and q values which
+ *                      describe the key being used.
+ *
+ *  x_digit_array       The array of digits (of size P, 34 in the case of
+ *                      MBEDTLS_LMOTS_SHA256_N32_W8).
+ *
+ *  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_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)
+ *
+ *  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,
+                             const unsigned char *hash_idx_max_values,
+                             unsigned char *output )
+{
+    unsigned int i_digit_idx;
+    unsigned char i_digit_idx_bytes[I_DIGIT_IDX_LEN];
+    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 = 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];
+
+    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(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;
+
+        for ( j_hash_idx = j_hash_idx_min;
+              j_hash_idx < j_hash_idx_max;
+              j_hash_idx++ )
+        {
+            status = psa_hash_setup( &op, PSA_ALG_SHA_256 );
+            if( status != PSA_SUCCESS )
+                goto exit;
+
+            status = psa_hash_update( &op,
+                                      params->I_key_identifier,
+                                      MBEDTLS_LMOTS_I_KEY_ID_LEN );
+            if( status != PSA_SUCCESS )
+                goto exit;
+
+            status = psa_hash_update( &op,
+                                      params->q_leaf_identifier,
+                                      MBEDTLS_LMOTS_Q_LEAF_ID_LEN );
+            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 );
+            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 );
+            if( status != PSA_SUCCESS )
+                goto exit;
+
+            status = psa_hash_update( &op, tmp_hash,
+                                      MBEDTLS_LMOTS_N_HASH_LEN(params->type) );
+            if( status != PSA_SUCCESS )
+                goto exit;
+
+            status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ),
+                                      &output_hash_len );
+            if( status != PSA_SUCCESS )
+                goto exit;
+
+            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) );
+    }
+
+exit:
+    psa_hash_abort( &op );
+    mbedtls_platform_zeroize( tmp_hash, sizeof( tmp_hash ) );
+
+    return( mbedtls_lms_error_from_psa( status ) );
+}
+
+/* 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).
+ *
+ *  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)
+ *
+ *  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 )
+{
+    psa_hash_operation_t op = PSA_HASH_OPERATION_INIT;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    size_t output_hash_len;
+
+    status = psa_hash_setup( &op, PSA_ALG_SHA_256 );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op,
+                              params->I_key_identifier,
+                              MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, params->q_leaf_identifier,
+                              MBEDTLS_LMOTS_Q_LEAF_ID_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN );
+    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) );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_finish( &op, pub_key,
+                              MBEDTLS_LMOTS_N_HASH_LEN(params->type),
+                              &output_hash_len );
+    if( status != PSA_SUCCESS )
+
+exit:
+    psa_hash_abort( &op );
+
+    return( mbedtls_lms_error_from_psa( status ) );
+}
+
+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_public_init( mbedtls_lmots_public_t *ctx )
+{
+    memset( ctx, 0, sizeof( *ctx ) ) ;
+}
+
+void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx )
+{
+    mbedtls_platform_zeroize( ctx, sizeof( *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 );
+
+    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 + PUBLIC_KEY_I_KEY_ID_OFFSET,
+            MBEDTLS_LMOTS_I_KEY_ID_LEN );
+
+    memcpy( ctx->params.q_leaf_identifier,
+            key + PUBLIC_KEY_Q_LEAF_ID_OFFSET,
+            MBEDTLS_LMOTS_Q_LEAF_ID_LEN );
+
+    memcpy( ctx->public_key,
+            key + PUBLIC_KEY_KEY_HASH_OFFSET,
+            MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) );
+
+    ctx->have_public_key = 1;
+
+    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,
+                                                  const unsigned char *sig,
+                                                  size_t sig_size,
+                                                  unsigned char *out,
+                                                  size_t out_size,
+                                                  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];
+    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(params->type) ||
+         out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type) )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    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_digit_array( params,
+                            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,
+                                              ( unsigned char * )y_hashed_digits,
+                                              out );
+    if( ret )
+    {
+        return ( ret );
+    }
+
+    if( out_len != NULL )
+    {
+        *out_len = MBEDTLS_LMOTS_N_HASH_LEN(params->type);
+    }
+
+    return( 0 );
+}
+
+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;
+
+    if( msg == NULL && msg_size != 0 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( !ctx->have_public_key )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( ctx->params.type != MBEDTLS_LMOTS_SHA256_N32_W8 )
+    {
+        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 )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+    ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->params,
+                                                        msg, msg_size, sig, sig_size,
+                                                        Kc_public_key_candidate,
+                                                        MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type),
+                                                        NULL );
+    if( ret )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+    if( memcmp( &Kc_public_key_candidate, ctx->public_key,
+                 sizeof( ctx->public_key ) ) )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+    return( 0 );
+}
+
+#if defined(MBEDTLS_LMS_PRIVATE)
+
+void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx )
+{
+    memset( ctx, 0, sizeof( *ctx ) ) ;
+}
+
+void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx )
+{
+    mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ;
+}
+
+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_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];
+    unsigned char const_bytes[1];
+
+    if( ctx->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->params.type = type;
+
+    memcpy( ctx->params.I_key_identifier,
+            I_key_identifier,
+            sizeof( ctx->params.I_key_identifier ) );
+
+    mbedtls_lms_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( 0xFF, sizeof( const_bytes ),
+                                               const_bytes );
+
+    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 );
+        if( status != PSA_SUCCESS )
+            goto exit;
+
+        status = psa_hash_update( &op,
+                               ctx->params.I_key_identifier,
+                               sizeof( ctx->params.I_key_identifier ) );
+        if( status != PSA_SUCCESS )
+            goto exit;
+
+        status = psa_hash_update( &op,
+                                  ctx->params.q_leaf_identifier,
+                                  MBEDTLS_LMOTS_Q_LEAF_ID_LEN );
+        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 );
+        if( status != PSA_SUCCESS )
+            goto exit;
+
+        status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) );
+        if( status != PSA_SUCCESS )
+            goto exit;
+
+        status = psa_hash_update( &op, seed, seed_size );
+        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 );
+        if( status != PSA_SUCCESS )
+            goto exit;
+
+        psa_hash_abort( &op );
+    }
+
+    ctx->have_private_key = 1;
+
+exit:
+    psa_hash_abort( &op );
+
+    return ( mbedtls_lms_error_from_psa( status ) );
+}
+
+int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *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;
+
+    /* 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,
+                            ( unsigned char * )priv_ctx->private_key, NULL,
+                            NULL, ( unsigned char * )y_hashed_digits );
+    if( ret )
+    {
+        goto exit;
+    }
+
+    ret = public_key_from_hashed_digit_array( &priv_ctx->params,
+                                              ( unsigned char * )y_hashed_digits,
+                                              ctx->public_key );
+    if( ret )
+    {
+        goto exit;
+    }
+
+    memcpy( &ctx->params, &priv_ctx->params,
+            sizeof( ctx->params ) );
+
+    ctx->have_public_key = 1;
+
+exit:
+    mbedtls_platform_zeroize( y_hashed_digits, sizeof( y_hashed_digits ) );
+
+    return( ret );
+}
+
+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_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
+     * 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_MAX][MBEDTLS_LMOTS_N_HASH_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 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( sig_size < MBEDTLS_LMOTS_SIG_LEN(ctx->params.type) )
+    {
+        return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL );
+    }
+
+    /* Check that a private key is loaded */
+    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 )
+    {
+        return( ret );
+    }
+
+    ret = create_digit_array_with_checksum( &ctx->params,
+                                            msg, msg_size,
+                                            tmp_c_random,
+                                            tmp_digit_array );
+    if( ret )
+    {
+        goto exit;
+    }
+
+    ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key,
+                            NULL, tmp_digit_array, ( unsigned char * )tmp_sig );
+    if( ret )
+    {
+        goto exit;
+    }
+
+    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.
+     */
+#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.
+     */
+    ctx->have_private_key = 0;
+    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) );
+
+    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_LMOTS_SIG_LEN(ctx->params.type);
+    }
+
+    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) */
+#endif /* defined(MBEDTLS_LMS_C) */
diff --git a/library/lmots.h b/library/lmots.h
new file mode 100644
index 0000000..39e8699
--- /dev/null
+++ b/library/lmots.h
@@ -0,0 +1,322 @@
+/**
+ * \file lmots.h
+ *
+ * \brief This file provides an API for the LM-OTS post-quantum-safe one-time
+ *        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
+ *  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/build_info.h"
+
+#include "psa/crypto.h"
+
+#include "mbedtls/lms.h"
+
+#include <stdint.h>
+#include <stddef.h>
+
+
+#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)
+#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" {
+#endif
+
+
+#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.
+ *
+ * \param val                The unsigned integer value
+ * \param len                The length of the string.
+ * \param bytes              The string to output into.
+ */
+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
+ *                           (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 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
+ *                           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 a public LMOTS context
+ *
+ * \param ctx                The uninitialized LMOTS context that will then be
+ *                           initialized.
+ */
+void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx );
+
+/**
+ * \brief                    This function uninitializes a public LMOTS context
+ *
+ * \param ctx                The initialized LMOTS context that will then be
+ *                           uninitialized.
+ */
+void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx );
+
+/**
+ * \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_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_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
+ *                           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 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_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
+ *                           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_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. 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
+ *                           (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( const mbedtls_lmots_public_t *ctx,
+                          const unsigned char *msg,
+                          size_t msg_size, const unsigned char *sig,
+                          size_t sig_size );
+
+#if defined(MBEDTLS_LMS_PRIVATE)
+
+/**
+ * \brief                    This function initializes a private LMOTS context
+ *
+ * \param ctx                The uninitialized LMOTS context that will then be
+ *                           initialized.
+ */
+void mbedtls_lmots_private_init( 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_private_free( mbedtls_lmots_private_t *ctx );
+
+/**
+ * \brief                    This function calculates 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. The API for this function
+ *                           may change considerably in future versions.
+ *
+ * \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,
+                                        const mbedtls_lmots_private_t *priv_ctx );
+
+/**
+ * \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_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_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 );
+
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_LMOTS_H */
diff --git a/library/lms.c b/library/lms.c
new file mode 100644
index 0000000..46ea567
--- /dev/null
+++ b/library/lms.c
@@ -0,0 +1,789 @@
+/*
+ *  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"
+
+#if defined(MBEDTLS_LMS_C)
+
+#include <string.h>
+
+#include "lmots.h"
+
+#include "psa/crypto.h"
+
+#include "mbedtls/lms.h"
+#include "mbedtls/error.h"
+#include "mbedtls/platform_util.h"
+
+#include "mbedtls/platform.h"
+
+#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 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 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))
+
+#define D_CONST_LEN           (2)
+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
+ * public key and some other parameters like the leaf index). This function
+ * implements RFC8554 section 5.3, in the case where r >= 2^h.
+ *
+ *  params              The LMS parameter set, the underlying LMOTS
+ *                      parameter set, and I value which describe the key
+ *                      being used.
+ *
+ *  pub_key             The public key of the private whose index
+ *                      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
+ *                      1-indexed.
+ *
+ *  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,
+                                     unsigned char *out )
+{
+    psa_hash_operation_t op;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    size_t output_hash_len;
+    unsigned char r_node_idx_bytes[4];
+
+    op = psa_hash_operation_init( );
+    status = psa_hash_setup( &op, PSA_ALG_SHA_256 );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, params->I_key_identifier,
+                              MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    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 );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, pub_key,
+                              MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type),
+                              &output_hash_len );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+exit:
+    psa_hash_abort( &op );
+
+    return ( mbedtls_lms_error_from_psa( status ) );
+}
+
+/* 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.
+ *
+ *  params              The LMS parameter set, the underlying LMOTS
+ *                      parameter set, and I value which describe the key
+ *                      being used.
+ *
+ *  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.
+ *
+ *  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.
+ *
+ *  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.
+ */
+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 )
+{
+    psa_hash_operation_t op;
+    psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+    size_t output_hash_len;
+    unsigned char r_node_idx_bytes[4];
+
+    op = psa_hash_operation_init( );
+    status = psa_hash_setup( &op, PSA_ALG_SHA_256 );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, params->I_key_identifier,
+                              MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    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 );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, D_INTR_CONSTANT_BYTES, D_CONST_LEN );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, left_node,
+                              MBEDTLS_LMS_M_NODE_BYTES(params->type) );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_update( &op, right_node,
+                              MBEDTLS_LMS_M_NODE_BYTES(params->type) );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+    status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type),
+                           &output_hash_len );
+    if( status != PSA_SUCCESS )
+        goto exit;
+
+exit:
+    psa_hash_abort( &op );
+
+    return( mbedtls_lms_error_from_psa( status ) );
+}
+
+void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx )
+{
+    memset( ctx, 0, sizeof( *ctx ) ) ;
+}
+
+void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx )
+{
+    mbedtls_platform_zeroize( ctx, sizeof( *ctx ) );
+}
+
+int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx,
+                               const unsigned char *key, size_t key_size )
+{
+    mbedtls_lms_algorithm_type_t type;
+    mbedtls_lmots_algorithm_type_t otstype;
+
+    type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN,
+            key + PUBLIC_KEY_TYPE_OFFSET );
+    if( type != MBEDTLS_LMS_SHA256_M32_H10 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+    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 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+    ctx->params.otstype = otstype;
+
+    memcpy( ctx->params.I_key_identifier,
+            key + PUBLIC_KEY_I_KEY_ID_OFFSET,
+            MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    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;
+
+    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 )
+{
+    unsigned int q_leaf_identifier;
+    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;
+    const unsigned char* left_node;
+    const unsigned char* right_node;
+    mbedtls_lmots_parameters_t ots_params;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    if( ! ctx->have_public_key )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( ctx->params.type
+        != MBEDTLS_LMS_SHA256_M32_H10 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( ctx->params.otstype
+        != MBEDTLS_LMOTS_SHA256_N32_W8 )
+    {
+        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 )
+    {
+        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 )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+
+    q_leaf_identifier = mbedtls_lms_network_bytes_to_unsigned_int(
+            MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + SIG_Q_LEAF_ID_OFFSET );
+
+    if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+    memcpy( ots_params.I_key_identifier,
+            ctx->params.I_key_identifier,
+            MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    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,
+            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 )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+    create_merkle_leaf_value(
+            &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(ctx->params.type) +
+                   q_leaf_identifier;
+
+    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 = 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 + SIG_PATH_OFFSET(ctx->params.otstype) +
+                         height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type);
+        }
+
+        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_LMS_M_NODE_BYTES(ctx->params.type)) )
+    {
+        return( MBEDTLS_ERR_LMS_VERIFY_FAILED );
+    }
+
+    return( 0 );
+}
+
+#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
+ * 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
+ *                      public and private OTS.
+ *
+ *  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( const mbedtls_lms_private_t *ctx,
+                                  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(ctx->params.type);
+         priv_key_idx++ )
+    {
+        r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + priv_key_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 != 0 )
+        {
+            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(ctx->params.type) - 1;
+         r_node_idx > 0;
+         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 != 0 )
+        {
+            return( ret );
+        }
+    }
+
+    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.
+ *
+ *  ctx                 The LMS private context, containing a parameter
+ *                      set and private key material consisting of both
+ *                      public and private OTS.
+ *
+ *  leaf_node_id        Which leaf node to calculate the path from.
+ *
+ *  path                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 )
+{
+    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, ( unsigned char * )tree );
+    if( ret != 0 )
+    {
+        goto exit;
+    }
+
+    for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type);
+         height++ )
+    {
+        adjacent_node_id = curr_node_id ^ 1;
+
+        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;
+    }
+
+    ret = 0;
+
+exit:
+    mbedtls_platform_zeroize( tree, sizeof( tree ) );
+
+    return( ret );
+}
+
+void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx )
+{
+    memset( ctx, 0, sizeof( *ctx ) ) ;
+}
+
+void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx )
+{
+    unsigned int idx;
+
+    if( ctx->have_private_key )
+    {
+        if( ctx->ots_private_keys != NULL )
+        {
+            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_public_keys != NULL )
+        {
+        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 ) );
+}
+
+
+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, const unsigned char *seed,
+                                      size_t seed_size )
+{
+    unsigned int idx = 0;
+    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+
+    if( type != MBEDTLS_LMS_SHA256_M32_H10 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( ctx->have_private_key )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    ctx->params.type = type;
+    ctx->params.otstype = otstype;
+    ctx->have_private_key = 1;
+
+    ret = f_rng( p_rng,
+                 ctx->params.I_key_identifier,
+                 MBEDTLS_LMOTS_I_KEY_ID_LEN );
+    if( ret != 0 )
+    {
+        goto exit;
+    }
+
+    /* 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 )
+    {
+        ret = MBEDTLS_ERR_LMS_ALLOC_FAILED;
+        goto exit;
+    }
+
+    /* 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 )
+    {
+        ret = MBEDTLS_ERR_LMS_ALLOC_FAILED;
+        goto exit;
+    }
+
+    for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ )
+    {
+        mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] );
+        mbedtls_lmots_public_init( &ctx->ots_public_keys[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,
+                                                  ctx->params.I_key_identifier,
+                                                  idx, seed, seed_size );
+        if( ret != 0 )
+            goto exit;
+
+        ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx],
+                                                  &ctx->ots_private_keys[idx] );
+        if( ret != 0 )
+            goto exit;
+    }
+
+    ctx->q_next_usable_key = 0;
+
+exit:
+    if( ret != 0 )
+    {
+        mbedtls_lms_private_free(ctx);
+    }
+
+    return( ret );
+}
+
+int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *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;
+
+    if( ! priv_ctx->have_private_key )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( priv_ctx->params.type
+        != MBEDTLS_LMS_SHA256_M32_H10 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( priv_ctx->params.otstype
+        != MBEDTLS_LMOTS_SHA256_N32_W8 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    memcpy( &ctx->params, &priv_ctx->params,
+            sizeof( mbedtls_lmots_parameters_t ) );
+
+    ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree );
+    if( ret != 0 )
+    {
+        goto exit;
+    }
+
+    /* 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) );
+
+    ctx->have_public_key = 1;
+
+    ret = 0;
+
+exit:
+    mbedtls_platform_zeroize( tree, sizeof( tree ) );
+
+    return( ret );
+}
+
+
+int mbedtls_lms_sign( mbedtls_lms_private_t *ctx,
+                      int (*f_rng)(void *, unsigned char *, size_t),
+                      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;
+
+    if( ! ctx->have_private_key )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( sig_size < MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) )
+    {
+        return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL );
+    }
+
+    if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( ctx->params.otstype
+        != MBEDTLS_LMOTS_SHA256_N32_W8 )
+    {
+        return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA );
+    }
+
+    if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) )
+    {
+        return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS );
+    }
+
+
+    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->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,
+                              MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) - SIG_OTS_SIG_OFFSET,
+                              NULL );
+    if( ret != 0 )
+    {
+        return( ret );
+    }
+
+    mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type,
+            MBEDTLS_LMS_TYPE_LEN,
+            sig + SIG_TYPE_OFFSET(ctx->params.otstype) );
+    mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier,
+            MBEDTLS_LMOTS_Q_LEAF_ID_LEN,
+            sig + SIG_Q_LEAF_ID_OFFSET );
+
+    ret = get_merkle_path( ctx,
+            MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier,
+            sig + SIG_PATH_OFFSET(ctx->params.otstype) );
+    if( ret != 0 )
+    {
+        return( ret );
+    }
+
+    if( sig_len != NULL )
+    {
+        *sig_len = MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype);
+    }
+
+
+    return( 0 );
+}
+
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
+#endif /* defined(MBEDTLS_LMS_C) */
diff --git a/library/md.c b/library/md.c
index a387da5..8efcf10 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 <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif
 
 #include <string.h>
 
diff --git a/library/md5.c b/library/md5.c
index a9bbcb4..f7a225c 100644
--- a/library/md5.c
+++ b/library/md5.c
@@ -32,14 +32,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 7c23601..820a1b6 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 <stdio.h>
-#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 d1700f3..637b9f8 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 <stdlib.h>
-#endif
 
 #include "mbedtls/net_sockets.h"
 #include "mbedtls/error.h"
diff --git a/library/nist_kw.c b/library/nist_kw.c
index 1aea0b6..495c23d 100644
--- a/library/nist_kw.c
+++ b/library/nist_kw.c
@@ -39,14 +39,7 @@
 #include <stdint.h>
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 4ecf621..aa5f69c 100644
--- a/library/oid.c
+++ b/library/oid.c
@@ -27,16 +27,12 @@
 #include "mbedtls/rsa.h"
 #include "mbedtls/error.h"
 
-#include "legacy_or_psa.h"
+#include "mbedtls/legacy_or_psa.h"
 
 #include <stdio.h>
 #include <string.h>
 
-#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 f2ee5ca..e8abba1 100644
--- a/library/pem.c
+++ b/library/pem.c
@@ -33,24 +33,20 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif
 
 #if defined(MBEDTLS_USE_PSA_CRYPTO)
 #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) &&         \
+#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)
diff --git a/library/pk.c b/library/pk.c
index 5dd0fa8..8dc19ef 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -46,19 +46,11 @@
 #include <limits.h>
 #include <stdint.h>
 
-/* 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
  */
 void mbedtls_pk_init( mbedtls_pk_context *ctx )
 {
-    PK_VALIDATE( ctx != NULL );
-
     ctx->pk_info = NULL;
     ctx->pk_ctx = NULL;
 }
@@ -83,7 +75,6 @@
  */
 void mbedtls_pk_restart_init( mbedtls_pk_restart_ctx *ctx )
 {
-    PK_VALIDATE( ctx != NULL );
     ctx->pk_info = NULL;
     ctx->rs_ctx = NULL;
 }
@@ -137,7 +128,6 @@
  */
 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 +190,6 @@
     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 +393,8 @@
                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( ( 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 )
@@ -462,10 +449,8 @@
                    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( ( 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 );
@@ -588,13 +573,10 @@
              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( ( 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)
@@ -707,11 +689,6 @@
                 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,11 +707,6 @@
                 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,9 +725,6 @@
                            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 +769,6 @@
  */
 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 );
 
diff --git a/library/pk_wrap.c b/library/pk_wrap.c
index 2d4f4f2..5de8fa6 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 <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif
 
 #include <limits.h>
 #include <stdint.h>
diff --git a/library/pkcs5.c b/library/pkcs5.c
index 847496d..ac5945a 100644
--- a/library/pkcs5.c
+++ b/library/pkcs5.c
@@ -42,12 +42,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 73d59a6..b982637 100644
--- a/library/pkparse.c
+++ b/library/pkparse.c
@@ -48,19 +48,7 @@
 #include "mbedtls/pkcs12.h"
 #endif
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#define mbedtls_calloc    calloc
-#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,10 +63,6 @@
     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,9 +117,6 @@
     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,9 +141,6 @@
     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,11 +598,6 @@
     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 +1190,8 @@
     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 +1407,8 @@
     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 );
diff --git a/library/pkwrite.c b/library/pkwrite.c
index 8b99340..f699a27 100644
--- a/library/pkwrite.c
+++ b/library/pkwrite.c
@@ -51,19 +51,7 @@
 #include "psa/crypto.h"
 #include "mbedtls/psa_util.h"
 #endif
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#define mbedtls_calloc    calloc
-#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,11 +170,6 @@
     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 )
         MBEDTLS_ASN1_CHK_ADD( len, pk_write_rsa_pubkey( p, start, mbedtls_pk_rsa( *key ) ) );
@@ -233,10 +216,8 @@
     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 +314,8 @@
     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,9 +479,6 @@
     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,9 +502,6 @@
     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 );
 
diff --git a/library/poly1305.c b/library/poly1305.c
index 7375a0c..0850f66 100644
--- a/library/poly1305.c
+++ b/library/poly1305.c
@@ -28,14 +28,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #if !defined(MBEDTLS_POLY1305_ALT)
 
@@ -44,12 +37,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 +245,6 @@
 
 void mbedtls_poly1305_init( mbedtls_poly1305_context *ctx )
 {
-    POLY1305_VALIDATE( ctx != NULL );
-
     mbedtls_platform_zeroize( ctx, sizeof( mbedtls_poly1305_context ) );
 }
 
@@ -274,9 +259,6 @@
 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 +292,6 @@
     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 +349,6 @@
 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 +377,6 @@
 {
     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 );
 
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 4a0bd83..2ce5e43 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -52,10 +52,6 @@
 #include <stdlib.h>
 #include <string.h>
 #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"
@@ -3592,6 +3588,7 @@
             break;
 #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */
         default:
+            (void) nonce_length;
             return( PSA_ERROR_NOT_SUPPORTED );
     }
 
@@ -3708,39 +3705,34 @@
     return( status );
 }
 
-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 );
-    }
+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;
@@ -3791,6 +3783,9 @@
         .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,
@@ -3806,9 +3801,6 @@
     if( status != PSA_SUCCESS )
         goto exit;
 
-    if( ( status = psa_validate_tag_length( operation, alg ) ) != PSA_SUCCESS )
-        goto exit;
-
     operation->key_type = psa_get_key_type( &attributes );
 
 exit:
@@ -4245,7 +4237,8 @@
 
 #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 */
 
@@ -4352,6 +4345,14 @@
     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( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS )
+    {
+        mbedtls_platform_zeroize( operation->ctx.tls12_ecjpake_to_pms.data,
+            sizeof( operation->ctx.tls12_ecjpake_to_pms.data ) );
+    }
+    else
+#endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) */
     {
         status = PSA_ERROR_BAD_STATE;
     }
@@ -4633,6 +4634,31 @@
 #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 = 0;
+
+    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,
@@ -4687,6 +4713,15 @@
     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( 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 );
+    }
+    else
+#endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */
+
     {
         (void) kdf_alg;
         return( PSA_ERROR_BAD_STATE );
@@ -5079,6 +5114,10 @@
     if( PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) )
         return( 1 );
 #endif
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS)
+    if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS )
+        return( 1 );
+#endif
     return( 0 );
 }
 
@@ -5102,19 +5141,26 @@
     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( kdf_alg != PSA_ALG_TLS12_ECJPAKE_TO_PMS )
+    {
+        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 ) ) &&
@@ -5122,11 +5168,14 @@
     {
         return( PSA_ERROR_NOT_SUPPORTED );
     }
-#if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT)
-    if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) )
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \
+    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 );
 }
@@ -5515,6 +5564,29 @@
 }
 #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,
+    psa_key_derivation_step_t step,
+    const uint8_t *data,
+    size_t data_length )
+{
+    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 )
+        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.
  *
@@ -5593,6 +5665,14 @@
     }
     else
 #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */
+#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS)
+    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 );
+    }
+    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/library/psa_crypto_aead.c b/library/psa_crypto_aead.c
index 714d950..48969b3 100644
--- a/library/psa_crypto_aead.c
+++ b/library/psa_crypto_aead.c
@@ -27,10 +27,6 @@
 
 #include <string.h>
 #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"
@@ -49,7 +45,6 @@
     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 +61,6 @@
 #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 +79,6 @@
 #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 +97,6 @@
 #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 +116,9 @@
             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 );
 }
diff --git a/library/psa_crypto_client.c b/library/psa_crypto_client.c
index 629feb7..ab79086 100644
--- a/library/psa_crypto_client.c
+++ b/library/psa_crypto_client.c
@@ -25,10 +25,6 @@
 
 #include <string.h>
 #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_driver_wrappers.h b/library/psa_crypto_driver_wrappers.h
index 12c649d..ee23b6f 100644
--- a/library/psa_crypto_driver_wrappers.h
+++ b/library/psa_crypto_driver_wrappers.h
@@ -226,10 +226,6 @@
     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/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c
index 59c3a0e..29f53b9 100644
--- a/library/psa_crypto_ecp.c
+++ b/library/psa_crypto_ecp.c
@@ -31,10 +31,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include "mbedtls/platform.h"
-#if !defined(MBEDTLS_PLATFORM_C)
-#define mbedtls_calloc calloc
-#define mbedtls_free   free
-#endif
 
 #include <mbedtls/ecdsa.h>
 #include <mbedtls/ecp.h>
diff --git a/library/psa_crypto_rsa.c b/library/psa_crypto_rsa.c
index 7d4718d..f1b9809 100644
--- a/library/psa_crypto_rsa.c
+++ b/library/psa_crypto_rsa.c
@@ -32,10 +32,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include "mbedtls/platform.h"
-#if !defined(MBEDTLS_PLATFORM_C)
-#define mbedtls_calloc calloc
-#define mbedtls_free   free
-#endif
 
 #include <mbedtls/rsa.h>
 #include <mbedtls/error.h>
diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c
index 56678d6..87d2634 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/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c
index a18350e..9dceaac 100644
--- a/library/psa_crypto_slot_management.c
+++ b/library/psa_crypto_slot_management.c
@@ -34,12 +34,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#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 db7786d..3186a36 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 <stdlib.h>
-#define mbedtls_calloc   calloc
-#define mbedtls_free     free
-#endif
 
 
 
diff --git a/library/psa_its_file.c b/library/psa_its_file.c
index b7c2e6b..a35ac24 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 <windows.h>
diff --git a/library/ripemd160.c b/library/ripemd160.c
index 41d8387..6212cb2 100644
--- a/library/ripemd160.c
+++ b/library/ripemd160.c
@@ -33,14 +33,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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 e597555..ae9e68b 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -63,30 +63,16 @@
 #endif /* MBEDTLS_MD_C */
 #endif /* MBEDTLS_PKCS1_V21 */
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#define mbedtls_calloc calloc
-#define mbedtls_free   free
-#endif
 
 #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 ) ||
@@ -111,7 +97,6 @@
                             unsigned char const *E, size_t E_len )
 {
     int ret = 0;
-    RSA_VALIDATE_RET( ctx != NULL );
 
     if( N != NULL )
     {
@@ -241,8 +226,6 @@
 #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 );
@@ -345,7 +328,6 @@
 {
     int ret = 0;
     int is_priv;
-    RSA_VALIDATE_RET( ctx != NULL );
 
     /* Check if key is private or public */
     is_priv =
@@ -390,7 +372,6 @@
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     int is_priv;
-    RSA_VALIDATE_RET( ctx != NULL );
 
     /* Check if key is private or public */
     is_priv =
@@ -434,7 +415,6 @@
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     int is_priv;
-    RSA_VALIDATE_RET( ctx != NULL );
 
     /* Check if key is private or public */
     is_priv =
@@ -471,8 +451,6 @@
  */
 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;
@@ -549,8 +527,6 @@
     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
@@ -663,8 +639,6 @@
  */
 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 );
 
@@ -688,8 +662,6 @@
  */
 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 )
     {
@@ -719,9 +691,6 @@
 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 )
     {
@@ -747,9 +716,6 @@
     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 );
@@ -917,10 +883,6 @@
      * 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 );
 
@@ -1308,11 +1270,6 @@
     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 );
 
@@ -1374,10 +1331,6 @@
     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 */
@@ -1426,10 +1379,6 @@
                        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)
@@ -1469,12 +1418,6 @@
     unsigned char lhash[MBEDTLS_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
      */
@@ -1595,11 +1538,6 @@
     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 )
@@ -1634,11 +1572,6 @@
                        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)
@@ -1676,11 +1609,8 @@
     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 );
@@ -1952,11 +1882,8 @@
     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 );
@@ -2020,11 +1947,8 @@
                     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 )
     {
@@ -2066,11 +1990,8 @@
     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;
 
@@ -2165,11 +2086,8 @@
                            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
@@ -2198,11 +2116,8 @@
     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;
 
@@ -2267,11 +2182,8 @@
                       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 )
     {
@@ -2298,8 +2210,6 @@
 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;
 
diff --git a/library/sha1.c b/library/sha1.c
index 6fc9371..5ae818a 100644
--- a/library/sha1.c
+++ b/library/sha1.c
@@ -32,26 +32,12 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#define mbedtls_printf printf
-#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 +52,6 @@
 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 +60,6 @@
  */
 int mbedtls_sha1_starts( mbedtls_sha1_context *ctx )
 {
-    SHA1_VALIDATE_RET( ctx != NULL );
-
     ctx->total[0] = 0;
     ctx->total[1] = 0;
 
@@ -100,9 +81,6 @@
         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 +255,6 @@
     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 +304,6 @@
     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 +364,6 @@
     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 )
diff --git a/library/sha256.c b/library/sha256.c
index ac15ef8..0e9c1a1 100644
--- a/library/sha256.c
+++ b/library/sha256.c
@@ -32,17 +32,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#define mbedtls_printf printf
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #if defined(__aarch64__)
 #  if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) || \
@@ -149,18 +139,12 @@
 
 #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
 
 void mbedtls_sha256_init( mbedtls_sha256_context *ctx )
 {
-    SHA256_VALIDATE( ctx != NULL );
-
     memset( ctx, 0, sizeof( mbedtls_sha256_context ) );
 }
 
@@ -175,9 +159,6 @@
 void mbedtls_sha256_clone( mbedtls_sha256_context *dst,
                            const mbedtls_sha256_context *src )
 {
-    SHA256_VALIDATE( dst != NULL );
-    SHA256_VALIDATE( src != NULL );
-
     *dst = *src;
 }
 
@@ -186,12 +167,12 @@
  */
 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 );
+    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;
@@ -427,9 +408,6 @@
 
     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 +557,6 @@
     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 +608,6 @@
     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
      */
@@ -705,14 +677,13 @@
     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
 
-    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 )
diff --git a/library/sha512.c b/library/sha512.c
index be03ec3..aa6f06a 100644
--- a/library/sha512.c
+++ b/library/sha512.c
@@ -38,17 +38,7 @@
 
 #include <string.h>
 
-#if defined(MBEDTLS_SELF_TEST)
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#define mbedtls_printf printf
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif /* MBEDTLS_PLATFORM_C */
-#endif /* MBEDTLS_SELF_TEST */
 
 #if defined(__aarch64__)
 #  if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \
@@ -164,10 +154,6 @@
 
 #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
@@ -183,8 +169,6 @@
 
 void mbedtls_sha512_init( mbedtls_sha512_context *ctx )
 {
-    SHA512_VALIDATE( ctx != NULL );
-
     memset( ctx, 0, sizeof( mbedtls_sha512_context ) );
 }
 
@@ -199,9 +183,6 @@
 void mbedtls_sha512_clone( mbedtls_sha512_context *dst,
                            const mbedtls_sha512_context *src )
 {
-    SHA512_VALIDATE( dst != NULL );
-    SHA512_VALIDATE( src != NULL );
-
     *dst = *src;
 }
 
@@ -210,11 +191,12 @@
  */
 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 );
+    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;
@@ -569,9 +551,6 @@
         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 +714,6 @@
     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 +764,6 @@
     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
      */
@@ -862,12 +835,12 @@
     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
-    SHA512_VALIDATE_RET( ilen == 0 || input != NULL );
-    SHA512_VALIDATE_RET( (unsigned char *)output != NULL );
 
     mbedtls_sha512_init( &ctx );
 
diff --git a/library/ssl_cache.c b/library/ssl_cache.c
index 6505e11..8405d27 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 <stdlib.h>
-#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 dc50449..a83527f 100644
--- a/library/ssl_ciphersuites.c
+++ b/library/ssl_ciphersuites.c
@@ -23,17 +23,13 @@
 
 #if defined(MBEDTLS_SSL_TLS_C)
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#endif
 
 #include "mbedtls/ssl_ciphersuites.h"
 #include "mbedtls/ssl.h"
 #include "ssl_misc.h"
 
-#include "legacy_or_psa.h"
+#include "mbedtls/legacy_or_psa.h"
 
 #include <string.h>
 
diff --git a/library/ssl_client.c b/library/ssl_client.c
index e7453d5..90ec252 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 <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free      free
-#endif
 
 #include <string.h>
 
@@ -719,6 +713,34 @@
 {
     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->handshake->resume != 0 &&
+        session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 &&
+        session_negotiate->ticket != NULL )
+    {
+        mbedtls_time_t now = mbedtls_time( NULL );
+        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(
+                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 )
     {
@@ -737,7 +759,7 @@
     {
         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
@@ -771,7 +793,7 @@
      * 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 )
@@ -794,8 +816,8 @@
         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;
             }
@@ -827,13 +849,13 @@
     }
 #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 )
             {
@@ -843,9 +865,39 @@
         }
     }
 
+#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 )
+    {
+        int hostname_mismatch = ssl->hostname != NULL ||
+                                session_negotiate->hostname != NULL;
+        if( ssl->hostname != NULL && session_negotiate->hostname != NULL )
+        {
+            hostname_mismatch = strcmp(
+                ssl->hostname, session_negotiate->hostname ) != 0;
+        }
+
+        if( hostname_mismatch )
+        {
+            MBEDTLS_SSL_DEBUG_MSG(
+                1, ( "Hostname mismatch the session ticket, "
+                     "disable session resumption." ) );
+            return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
+        }
+    }
+    else
+    {
+        return mbedtls_ssl_session_set_hostname( session_negotiate,
+                                                 ssl->hostname );
+    }
+#endif /* MBEDTLS_SSL_PROTO_TLS1_3 &&
+          MBEDTLS_SSL_SESSION_TICKETS &&
+          MBEDTLS_SSL_SERVER_NAME_INDICATION */
+
     return( 0 );
 }
-
 /*
  * Write ClientHello handshake message.
  * Handler for MBEDTLS_SSL_CLIENT_HELLO
diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c
index 8777833..190c0f0 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"
@@ -38,7 +33,7 @@
 #include "mbedtls/platform_util.h"
 #include "mbedtls/constant_time.h"
 
-#include "legacy_or_psa.h"
+#include "mbedtls/legacy_or_psa.h"
 
 #include <string.h>
 
diff --git a/library/ssl_misc.h b/library/ssl_misc.h
index a59e672..828937c 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"
@@ -624,6 +624,9 @@
 #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)
+    uint16_t new_session_tickets_count;         /*!< number of session tickets */
+#endif
 #endif /* MBEDTLS_SSL_SRV_C */
 
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
@@ -2457,16 +2460,6 @@
 #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.
@@ -2501,4 +2494,13 @@
     unsigned char *buf, unsigned char *end );
 #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) && \
+    defined(MBEDTLS_SSL_CLI_C)
+MBEDTLS_CHECK_RETURN_CRITICAL
+int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session,
+                                      const char *hostname );
+#endif
+
 #endif /* ssl_misc.h */
diff --git a/library/ssl_msg.c b/library/ssl_msg.c
index dbef29b..ab2ecb3 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 <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free      free
-#endif
 
 #include "mbedtls/ssl.h"
 #include "ssl_misc.h"
@@ -1124,7 +1118,9 @@
                              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;
 
diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c
index 359686a..e39563b 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 <stdlib.h>
-#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 af65e6d..c36729f 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -27,15 +27,7 @@
 
 #include <assert.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#include <stdio.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free      free
-#define mbedtls_printf    printf
-#endif /* !MBEDTLS_PLATFORM_C */
 
 #include "mbedtls/ssl.h"
 #include "ssl_client.h"
@@ -54,7 +46,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"
@@ -243,10 +235,13 @@
 {
     mbedtls_ssl_session_free( dst );
     memcpy( dst, src, sizeof( mbedtls_ssl_session ) );
-
 #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C)
     dst->ticket = NULL;
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
+    defined(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)
 
@@ -295,6 +290,18 @@
 
         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 );
@@ -763,6 +770,13 @@
     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 )
     {
@@ -1366,6 +1380,23 @@
     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 )
+    {
+        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 )
         return( ret );
@@ -1788,6 +1819,7 @@
 }
 #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),
@@ -1796,6 +1828,8 @@
     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)
@@ -1907,6 +1941,7 @@
 /* Serialization of TLS 1.3 sessions:
  *
  *     struct {
+ *       opaque hostname<0..2^16-1>;
  *       uint64 ticket_received;
  *       uint32 ticket_lifetime;
  *       opaque ticket<1..2^16-1>;
@@ -1933,6 +1968,11 @@
                                    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 ) + 1;
+#endif
     size_t needed =   1                             /* endpoint */
                     + 2                             /* ciphersuite */
                     + 4                             /* ticket_age_add */
@@ -1951,6 +1991,11 @@
 #if defined(MBEDTLS_SSL_CLI_C)
     if( session->endpoint == MBEDTLS_SSL_IS_CLIENT )
     {
+#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
+        needed +=  2                        /* hostname_len */
+               + hostname_len;              /* hostname */
+#endif
+
         needed +=   4                       /* ticket_lifetime */
                   + 2;                      /* ticket_len */
 
@@ -1988,6 +2033,17 @@
 #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;
@@ -2048,6 +2104,28 @@
 #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 );
@@ -2611,6 +2689,15 @@
 #endif
 
 #if defined(MBEDTLS_SSL_SRV_C)
+
+#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_count = 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,
@@ -3640,6 +3727,10 @@
 #endif
 
 #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C)
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
+    defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
+    mbedtls_free( session->hostname );
+#endif
     mbedtls_free( session->ticket );
 #endif
 
@@ -4644,6 +4735,10 @@
 #endif
 
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
+#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
     /*
      * Allow all TLS 1.3 key exchange modes by default.
      */
@@ -8758,4 +8853,54 @@
 }
 #endif /* MBEDTLS_SSL_ALPN */
 
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \
+    defined(MBEDTLS_SSL_SESSION_TICKETS) && \
+    defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \
+    defined(MBEDTLS_SSL_CLI_C)
+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_SESSION_TICKETS &&
+          MBEDTLS_SSL_SERVER_NAME_INDICATION &&
+          MBEDTLS_SSL_CLI_C */
+
 #endif /* MBEDTLS_SSL_TLS_C */
diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c
index d1ec55c..7b62e71 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 <stdlib.h>
-#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 997f584..66c61a3 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 <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free      free
-#endif
 
 #include "mbedtls/ssl.h"
 #include "ssl_misc.h"
diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c
index 505f8dd..2b59b4a 100644
--- a/library/ssl_tls13_client.c
+++ b/library/ssl_tls13_client.c
@@ -664,10 +664,199 @@
     ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES;
     return ( 0 );
 }
-#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
+
+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( ciphersuite_info != NULL )
+       return( mbedtls_psa_translate_md( ciphersuite_info->mac ) );
+
+    return( PSA_ALG_NONE );
+}
+
+#if defined(MBEDTLS_SSL_SESSION_TICKETS)
+static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl )
+{
+    mbedtls_ssl_session *session = ssl->session_negotiate;
+    return( ssl->handshake->resume &&
+            session != NULL && session->ticket != NULL );
+}
+
+MBEDTLS_CHECK_RETURN_CRITICAL
+static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl,
+                                          psa_algorithm_t *hash_alg,
+                                          const unsigned char **identity,
+                                          size_t *identity_len )
+{
+    mbedtls_ssl_session *session = ssl->session_negotiate;
+
+    if( !ssl_tls13_has_configured_ticket( ssl ) )
+        return( -1 );
+
+    *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite );
+    *identity = session->ticket;
+    *identity_len = session->ticket_len;
+    return( 0 );
+}
+
+MBEDTLS_CHECK_RETURN_CRITICAL
+static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl,
+                                     psa_algorithm_t *hash_alg,
+                                     const unsigned char **psk,
+                                     size_t *psk_len )
+{
+
+    mbedtls_ssl_session *session = ssl->session_negotiate;
+
+    if( !ssl_tls13_has_configured_ticket( ssl ) )
+        return( -1 );
+
+    *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite );
+    *psk = session->resumption_key;
+    *psk_len = session->resumption_key_len;
+
+    return( 0 );
+}
+#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,
+                                       const unsigned char **identity,
+                                       size_t *identity_len )
+{
+
+    if( !ssl_tls13_has_configured_psk( ssl->conf ) )
+        return( -1 );
+
+    *hash_alg = PSA_ALG_SHA_256;
+    *identity = ssl->conf->psk_identity;
+    *identity_len = ssl->conf->psk_identity_len;
+    return( 0 );
+}
+
+MBEDTLS_CHECK_RETURN_CRITICAL
+static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl,
+                                  psa_algorithm_t *hash_alg,
+                                  const unsigned char **psk,
+                                  size_t *psk_len )
+{
+
+    if( !ssl_tls13_has_configured_psk( ssl->conf ) )
+        return( -1 );
+
+    *hash_alg = PSA_ALG_SHA_256;
+    *psk = ssl->conf->psk;
+    *psk_len = ssl->conf->psk_len;
+    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->conf ) )
+    {
+        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,
+                                     const unsigned char *identity,
+                                     size_t identity_len,
+                                     uint32_t obfuscated_ticket_age,
+                                     size_t *out_len )
+{
+    ((void) ssl);
+    *out_len = 0;
+
+    /*
+     * - identity_len           (2 bytes)
+     * - identity               (psk_identity_len bytes)
+     * - obfuscated_ticket_age  (4 bytes)
+     */
+    MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 6 + 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", buf, 6 + identity_len );
+
+    *out_len = 6 + identity_len;
+
+    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,
+                                   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 binder_len;
+    unsigned char transcript[ MBEDTLS_TLS1_3_MD_MAX_SIZE ];
+    size_t transcript_len = 0;
+
+    *out_len = 0;
+
+    binder_len = PSA_HASH_LENGTH( hash_alg );
+
+    /*
+     * - binder_len           (1 bytes)
+     * - binder               (binder_len bytes)
+     */
+    MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 1 + binder_len );
+
+    buf[0] = binder_len;
+
+    /* Get current state of handshake transcript. */
+    ret = mbedtls_ssl_get_handshake_transcript(
+            ssl, mbedtls_hash_info_md_from_psa( hash_alg ),
+            transcript, sizeof( transcript ), &transcript_len );
+    if( ret != 0 )
+        return( ret );
+
+    ret = mbedtls_ssl_tls13_create_psk_binder( ssl, hash_alg,
+                                               psk, psk_len, psk_type,
+                                               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", buf, 1 + binder_len );
+
+    *out_len = 1 + binder_len;
+
+    return( 0 );
+}
 
 /*
- * 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,125 +878,105 @@
  * } 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,
-    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;
-    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;
+    psa_algorithm_t hash_alg;
+    const unsigned char *identity;
+    size_t identity_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 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( mbedtls_ssl_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len,
-                                      &psk_identity, &psk_identity_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 )
     {
         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] );
+    MBEDTLS_SSL_DEBUG_MSG( 4, ( "Pre-configured PSK number = %d",
+                                configured_psk_count ) );
 
-            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;
-        }
-    }
-
-    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.
+    /* Check if we have space to write the extension, binders 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)
      */
+    MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 );
+    p += 6;
 
-    identities_len = 6 + psk_identity_len;
-    l_binders_len = 1 + hash_len;
+#if defined(MBEDTLS_SSL_SESSION_TICKETS)
+    if( ssl_tls13_ticket_get_identity(
+            ssl, &hash_alg, &identity, &identity_len ) == 0 )
+    {
+#if defined(MBEDTLS_HAVE_TIME)
+        mbedtls_time_t now = mbedtls_time( NULL );
+        mbedtls_ssl_session *session = ssl->session_negotiate;
+        uint32_t obfuscated_ticket_age =
+                                (uint32_t)( now - session->ticket_received );
+
+        obfuscated_ticket_age *= 1000;
+        obfuscated_ticket_age += session->ticket_age_add;
+
+        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 );
+
+        p += output_len;
+        l_binders_len += 1 + PSA_HASH_LENGTH( hash_alg );
+    }
+#endif /* MBEDTLS_SSL_SESSION_TICKETS */
+
+    if( ssl_tls13_psk_get_identity(
+            ssl, &hash_alg, &identity, &identity_len ) == 0 )
+    {
+
+        ret = ssl_tls13_write_identity( ssl, p, end, identity, identity_len, 0,
+                                        &output_len );
+        if( ret != 0 )
+            return( ret );
+
+        p += output_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" ) );
 
-    /* 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 );
+    /* Take into account the two bytes for the length of the binders. */
+    l_binders_len += 2;
+    /* Check if there is enough space for binders */
+    MBEDTLS_SSL_CHK_BUF_PTR( p, end, l_binders_len );
 
-    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;
+    /*
+     * - 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 + l_binders_len , buf, 2 );
+    MBEDTLS_PUT_UINT16_BE( p - buf - 6 , buf, 4 );
 
-    /* add obfuscated ticket age */
-    MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 );
-    MBEDTLS_PUT_UINT32_BE( obfuscated_ticket_age, p, 0 );
-    p += 4;
+    *out_len = ( p - buf ) + l_binders_len;
+    *binders_len = l_binders_len;
 
-    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;
+    MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key identities", buf, p - buf );
 
     ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY;
 
@@ -815,67 +984,133 @@
 }
 
 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;
+    psa_algorithm_t hash_alg = PSA_ALG_NONE;
+    const unsigned char *psk;
+    size_t psk_len;
+    size_t output_len;
 
-    if( mbedtls_ssl_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 );
+    /* Check if we have space to write binders_len.
+     * - binders_len         (2 bytes)
+     */
+    MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 );
     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 )
+#if defined(MBEDTLS_SSL_SESSION_TICKETS)
+    if( ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ) == 0 )
     {
-        MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret );
-        return( ret );
+
+        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_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ) == 0 )
+    {
+
+        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 );
+        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 );
 }
+
+/*
+ * 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 = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    int selected_identity;
+    const unsigned char *psk;
+    size_t psk_len;
+    psa_algorithm_t hash_alg;
+
+    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, ( "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, &hash_alg, &psk, &psk_len );
+    }
+    else
+#endif
+    if( ssl_tls13_has_configured_psk( ssl->conf ) )
+    {
+        ret = ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len );
+    }
+    else
+    {
+        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 );
+        return( ret );
+    }
+
+    ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY;
+
+    return( 0 );
+}
+
 #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
 
 int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl,
@@ -1234,92 +1469,6 @@
     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;
-
-    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( mbedtls_ssl_get_psk_to_offer( ssl, NULL, &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 {
@@ -1602,6 +1751,23 @@
     return( ret );
 }
 
+#if defined(MBEDTLS_DEBUG_C)
+static const char *ssl_tls13_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";
+    }
+}
+#endif /* MBEDTLS_DEBUG_C */
+
 MBEDTLS_CHECK_RETURN_CRITICAL
 static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl )
 {
@@ -1641,6 +1807,19 @@
             goto cleanup;
     }
 
+    if( !mbedtls_ssl_conf_tls13_check_kex_modes( ssl, handshake->key_exchange_mode ) )
+    {
+        ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE;
+        MBEDTLS_SSL_DEBUG_MSG( 2,
+                ( "Key exchange mode(%s) is not supported.",
+                ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) );
+        goto cleanup;
+    }
+
+    MBEDTLS_SSL_DEBUG_MSG( 3,
+            ( "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.
      *
      * TODO: We don't have to do this in case we offered 0-RTT and the
@@ -1819,7 +1998,12 @@
          */
         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;
@@ -2237,11 +2421,11 @@
     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 );
     }
 
@@ -2405,6 +2589,9 @@
         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 6f60fab..abb7a14 100644
--- a/library/ssl_tls13_generic.c
+++ b/library/ssl_tls13_generic.c
@@ -906,12 +906,8 @@
         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 );
 
@@ -928,42 +924,12 @@
 }
 
 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;
-
-    *algorithm = MBEDTLS_TLS1_3_SIG_NONE;
-    for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ )
-    {
-        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_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;
 
@@ -971,14 +937,9 @@
     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;
 
@@ -1011,64 +972,84 @@
      *    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 );
+
+             /* 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;
+        }
+
+        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 )
@@ -1504,41 +1485,4 @@
 }
 #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 */
diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c
index 32a4f2a..48de3d0 100644
--- a/library/ssl_tls13_keys.c
+++ b/library/ssl_tls13_keys.c
@@ -1504,12 +1504,43 @@
     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 = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    mbedtls_md_type_t md_type;
+    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 = 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 ),
+                              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,
+             PSA_HASH_LENGTH( mbedtls_psa_translate_md( md_type ) ) ) ;
+
+    MBEDTLS_SSL_DEBUG_MSG( 2,
+        ( "<= mbedtls_ssl_tls13_compute_resumption_master_secret" ) );
     return( 0 );
 }
 
diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h
index d82bf7a..f3bdf37 100644
--- a/library/ssl_tls13_keys.h
+++ b/library/ssl_tls13_keys.h
@@ -636,8 +636,7 @@
  * \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 a10e59b..3e54f38 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 <stdlib.h>
-#define mbedtls_calloc    calloc
-#define mbedtls_free       free
-#endif /* MBEDTLS_PLATFORM_C */
 
 #include "ssl_misc.h"
 #include "ssl_tls13_keys.h"
@@ -121,14 +115,170 @@
 
 #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,
+                                            const unsigned char *identity,
+                                            size_t identity_len,
+                                            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;
+    int64_t age_diff_in_ms;
+#endif
+
+    ((void) obfuscated_ticket_age);
+
+    MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> check_identity_match_ticket" ) );
+
+    /* 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 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 )
+    {
+        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 )
+        goto exit;
+
+    ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED;
+#if defined(MBEDTLS_HAVE_TIME)
+    now = mbedtls_time( NULL );
+
+    if( now < session->start )
+    {
+        MBEDTLS_SSL_DEBUG_MSG(
+            3, ( "Invalid ticket start time ( now=%" MBEDTLS_PRINTF_LONGLONG
+                     ", start=%" MBEDTLS_PRINTF_LONGLONG " )",
+                 (long long)now, (long long)session->start ) );
+        goto exit;
+    }
+
+    age_in_s = (uint64_t)( now - session->start );
+
+    /* 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 age exceeds limitation ticket_age=%lu",
+                 (long unsigned int)age_in_s ) );
+        goto exit;
+    }
+
+    /* 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.
+     *
+     * 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 );
+    if( age_diff_in_ms <= -1000 ||
+        age_diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE )
+    {
+        MBEDTLS_SSL_DEBUG_MSG(
+            3, ( "Ticket age outside tolerance window ( diff=%d )",
+                 (int)age_diff_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 );
+}
+#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,
-               int *psk_type )
+               uint32_t obfuscated_ticket_age,
+               int *psk_type,
+               mbedtls_ssl_session *session )
 {
+    ((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, identity, identity_len, obfuscated_ticket_age,
+            session ) == SSL_TLS1_3_OFFERED_PSK_MATCH )
+    {
+        ssl->handshake->resume = 1;
+        *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION;
+        mbedtls_ssl_set_hs_psk( ssl,
+                                session->resumption_key,
+                                session->resumption_key_len );
+
+        MBEDTLS_SSL_DEBUG_BUF( 4, "Ticket-resumed PSK:",
+                               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 );
+    }
+#endif /* MBEDTLS_SSL_SESSION_TICKETS */
+
     /* Check identity with external configured function */
     if( ssl->conf->f_psk != NULL )
     {
@@ -256,6 +406,7 @@
     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,
@@ -265,15 +416,46 @@
                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 = 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_ticket( mbedtls_ssl_session *dst,
+                                          const mbedtls_ssl_session *src )
+{
+    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 );
+
+    return( 0 );
+}
+#endif /* MBEDTLS_SSL_SESSION_TICKETS */
+
 /* Parser for pre_shared_key extension in client hello
  *    struct {
  *        opaque identity<1..2^16-1>;
@@ -343,17 +525,23 @@
     {
         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;
+        mbedtls_ssl_session_init( &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 );
@@ -367,7 +555,8 @@
             continue;
 
         ret = ssl_tls13_offered_psks_check_identity_match(
-                                    ssl, identity, identity_len, &psk_type );
+                  ssl, identity, identity_len, obfuscated_ticket_age,
+                  &psk_type, &session );
         if( ret != SSL_TLS1_3_OFFERED_PSK_MATCH )
             continue;
 
@@ -380,9 +569,15 @@
                             &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 );
+                if( ret != 0 )
+                    mbedtls_ssl_session_free( &session );
+#else
+                ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
+#endif
                 break;
             default:
                 return( MBEDTLS_ERR_SSL_INTERNAL_ERROR );
@@ -406,6 +601,9 @@
             /* 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 );
@@ -418,11 +616,20 @@
         matched_identity = identity_id;
 
         /* Update handshake parameters */
-        ssl->session_negotiate->ciphersuite = cipher_suite;
         ssl->handshake->ciphersuite_info = ciphersuite_info;
+        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)
+        if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION )
+        {
+            ret = ssl_tls13_session_copy_ticket( 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 )
@@ -898,6 +1105,36 @@
 
 #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:
+            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_SIGN( PSA_ALG_SHA_512 ) );
+        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 +1160,19 @@
 
     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 +1196,18 @@
                                      "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,
@@ -1898,7 +2155,7 @@
     }
 
 #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 )
@@ -2366,11 +2623,11 @@
     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 );
@@ -2406,7 +2663,21 @@
     /* Check whether the use of session tickets is enabled */
     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 );
     }
 
@@ -2571,7 +2842,8 @@
      *      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 ) );
@@ -2639,6 +2911,15 @@
         MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg(
                                   ssl, buf_len, msg_len ) );
 
+        /* 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 );
     }
@@ -2789,7 +3070,11 @@
              * as part of ssl_prepare_handshake_step.
              */
             ret = 0;
-            mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER );
+
+            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 );
             break;
 
 #endif /* MBEDTLS_SSL_SESSION_TICKETS */
diff --git a/library/x509.c b/library/x509.c
index aa39517..ca2e907 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 <stdio.h>
-#include <stdlib.h>
-#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"
@@ -62,7 +53,7 @@
 #include <time.h>
 #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/x509_crl.c b/library/x509_crl.c
index 0cd996d..2a3fac7 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 <stdlib.h>
-#include <stdio.h>
-#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 af1e487..c4f97bb 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 <stdio.h>
-#include <stdlib.h>
-#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 25069b2..dee0ea6 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 <stdlib.h>
-#include <stdio.h>
-#define mbedtls_free       free
-#define mbedtls_calloc    calloc
-#define mbedtls_snprintf   snprintf
-#endif
 
 #if defined(MBEDTLS_FS_IO) || defined(EFIX64) || defined(EFI32)
 #include <stdio.h>
diff --git a/library/x509write_crt.c b/library/x509write_crt.c
index e51a385..52942a9 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/library/x509write_csr.c b/library/x509write_csr.c
index c4dd1b7..976f6e6 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 <stdlib.h>
-#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 136e25b..476c20e 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 <stdio.h>
-#include <stdlib.h>
-#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/fuzz/fuzz_server.c b/programs/fuzz/fuzz_server.c
index 3d11d47..95f43b8 100644
--- a/programs/fuzz/fuzz_server.c
+++ b/programs/fuzz/fuzz_server.c
@@ -42,7 +42,7 @@
     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 @@
     }
     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 @@
         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 @@
     }
 
 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/hash/generic_sum.c b/programs/hash/generic_sum.c
index f38a976..6f49e79 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 <stdio.h>
-#include <stdlib.h>
-#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 cb8de8b..3ef0652 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 <stdlib.h>
-#include <stdio.h>
-#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 45de57b..3619cb2 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 <stdio.h>
-#include <stdlib.h>
-#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 9ada4ea..2e696e5 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 <stdio.h>
-#include <stdlib.h>
-#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 2956308..e6f53ed 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 <stdio.h>
-#include <stdlib.h>
-#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 281a26b..5dd6bdd 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 <stdio.h>
-#include <stdlib.h>
-#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 c1c5070..1035bb2 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 <stdio.h>
-#include <stdlib.h>
-#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 8779519..9e5329f 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 <stdio.h>
-#include <stdlib.h>
-#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 bd16b24..02a19e9 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 <stdio.h>
-#include <stdlib.h>
-#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 df1e502..589bee9 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 <stdio.h>
-#include <stdlib.h>
-#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 eed8dfc..4c34b99 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 <stdio.h>
-#include <stdlib.h>
-#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 b09b6b8..0d8388f 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 <stdio.h>
-#include <stdlib.h>
-#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 3df11f7..5d45738 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 <stdio.h>
-#include <stdlib.h>
-#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 7b5d8e1..301edb8 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 <stdio.h>
-#include <stdlib.h>
-#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 e82653b..6b96452 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 <stdio.h>
-#include <stdlib.h>
-#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 c01a5cf..783f3ca 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 <stdio.h>
-#include <stdlib.h>
-#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 25a42d3..777b22e 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 <stdio.h>
-#include <stdlib.h>
-#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 67711bd..7acda81 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 <stdio.h>
-#include <stdlib.h>
-#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 1df9b13..f4deab0 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 <stdio.h>
-#include <stdlib.h>
-#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 8078ab6..0cbde02 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 <stdio.h>
-#include <stdlib.h>
-#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 a8b1abb..a3fa6d7 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 <stdio.h>
-#include <stdlib.h>
-#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 3a20778..7dcccda 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 <stdio.h>
-#include <stdlib.h>
-#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 4deb924..f0ffea2 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 <stdio.h>
-#include <stdlib.h>
-#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 0a9e2dd..2a3dd54 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 <stdio.h>
-#include <stdlib.h>
-#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 e06d535..23a34e0 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 <stdio.h>
-#include <stdlib.h>
-#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 9317449..10d82ba 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 <stdio.h>
-#include <stdlib.h>
-#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 8f2fed8..efcf650 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 <stdio.h>
-#include <stdlib.h>
-#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 a80ff71..5025698 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 <stdio.h>
-#include <stdlib.h>
-#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_client2.c b/programs/ssl/ssl_client2.c
index 8915011..be474d4 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -346,10 +346,11 @@
 
 #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 \
@@ -404,6 +405,7 @@
     "    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"      \
@@ -497,6 +499,7 @@
     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 */
@@ -657,6 +660,58 @@
 }
 #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;
@@ -870,6 +925,7 @@
     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;
@@ -1066,6 +1122,8 @@
             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 );
@@ -1087,7 +1145,7 @@
         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 )
@@ -1426,11 +1484,11 @@
         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 */
@@ -1769,7 +1827,8 @@
 #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 */
 
     /*
@@ -2360,57 +2419,21 @@
         }
     }
 #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
         {
@@ -2652,6 +2675,9 @@
      */
     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;
@@ -2699,7 +2725,41 @@
                     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..." );
+                            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 */
 
@@ -3058,6 +3118,16 @@
             goto exit;
         }
 
+#if defined(MBEDTLS_X509_CRT_PARSE_C)
+        if( ( ret = mbedtls_ssl_set_hostname( &ssl,
+                                              opt.reco_server_name ) ) != 0 )
+        {
+            mbedtls_printf( " failed\n  ! mbedtls_ssl_set_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/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index 07b3e6f..49de984 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 <stdio.h>
-#include <stdlib.h>
-#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 664a384..9fb6507 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 <stdio.h>
-#include <stdlib.h>
-#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 ac14789..b3ec7d6 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 <stdio.h>
-#include <stdlib.h>
-#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 3b66372..c9d9df2 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 <stdio.h>
-#include <stdlib.h>
-#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_server2.c b/programs/ssl/ssl_server2.c
index a1b2978..4f789d5 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -49,7 +49,7 @@
 #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
 
@@ -120,6 +120,7 @@
 #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
@@ -283,7 +284,7 @@
 #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 +292,7 @@
     "    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"
@@ -458,15 +459,17 @@
 #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 \
@@ -636,6 +639,7 @@
     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                */
@@ -1349,6 +1353,75 @@
 }
 #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
 
+#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,
+                        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 );
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
+            session->ticket_age_add -= 1000;
+#endif
+            break;
+        default:
+            break;
+    }
+
+    return( ret );
+}
+#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME */
+
 int main( int argc, char *argv[] )
 {
     int ret = 0, len, written, frags, exchanges_left;
@@ -1404,9 +1477,9 @@
 #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
+#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_TICKET_C */
 #if defined(SNI_OPTION)
     sni_entry *sni_info = NULL;
 #endif
@@ -1495,7 +1568,7 @@
 #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)
@@ -1605,6 +1678,7 @@
     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;
@@ -1997,7 +2071,13 @@
         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, "dummy_ticket" ) == 0 )
+        {
+            opt.dummy_ticket = atoi( q );
+            if( opt.dummy_ticket < 0 )
                 goto usage;
         }
         else if( strcmp( p, "ticket_rotate" ) == 0 )
@@ -2261,11 +2341,11 @@
         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 */
@@ -2914,23 +2994,40 @@
                                    mbedtls_ssl_cache_set );
 #endif
 
-#if defined(MBEDTLS_SSL_SESSION_TICKETS)
-    if( opt.tickets == MBEDTLS_SSL_SESSION_TICKETS_ENABLED )
+#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,
-                        rng_get, &rng,
-                        opt.ticket_aead,
-                        opt.ticket_timeout ) ) != 0 )
+#if 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_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
         /* exercise manual ticket rotation (not required for typical use)
          * (used for external synchronization of session ticket encryption keys)
          */
@@ -4208,7 +4305,7 @@
 #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)
diff --git a/programs/ssl/ssl_test_common_source.c b/programs/ssl/ssl_test_common_source.c
index 7ff3345..42d8d11 100644
--- a/programs/ssl/ssl_test_common_source.c
+++ b/programs/ssl/ssl_test_common_source.c
@@ -297,49 +297,23 @@
 #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
diff --git a/programs/ssl/ssl_test_lib.c b/programs/ssl/ssl_test_lib.c
index a7f3d0e..cf810a3 100644
--- a/programs/ssl/ssl_test_lib.c
+++ b/programs/ssl/ssl_test_lib.c
@@ -205,6 +205,9 @@
 
     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 @@
 
     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 @@
                 *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/programs/ssl/ssl_test_lib.h b/programs/ssl/ssl_test_lib.h
index c368f57..659b3ab 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 <stdio.h>
-#include <stdlib.h>
-#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/benchmark.c b/programs/test/benchmark.c
index a6d83e7..920a473 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 <stdio.h>
-#include <stdlib.h>
-#define mbedtls_exit       exit
-#define mbedtls_printf     printf
-#define mbedtls_free       free
-#endif
 
 #if !defined(MBEDTLS_HAVE_TIME)
 int main( void )
diff --git a/programs/test/cmake_package/cmake_package.c b/programs/test/cmake_package/cmake_package.c
index 1ae627d..4105d2b 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 <stdio.h>
-#include <stdlib.h>
-#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 9d5d3e4..48fb559 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 <stdio.h>
-#include <stdlib.h>
-#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 ff6ebf0..b1d005c 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 <stdio.h>
-#include <stdlib.h>
-#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 c083604..ff61fcd 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 <stdio.h>
-#include <stdlib.h>
-#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 5aa0233..f37973c 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 <stdio.h>
-#include <stdlib.h>
-#define mbedtls_printf       printf
-#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE
-#endif
 
 #define USAGE                                                                   \
     "usage: %s [ -all | -any | -l ] <MBEDTLS_CONFIG> ...\n\n"                   \
diff --git a/programs/test/selftest.c b/programs/test/selftest.c
index ab337a2..2d6103c 100644
--- a/programs/test/selftest.c
+++ b/programs/test/selftest.c
@@ -54,19 +54,7 @@
 #include <limits.h>
 #include <string.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#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 d6e5561..979b551 100644
--- a/programs/test/zeroize.c
+++ b/programs/test/zeroize.c
@@ -29,15 +29,7 @@
 
 #include <stdio.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdlib.h>
-#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 cf6a56c..7138fa8 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 <stdio.h>
-#include <stdlib.h>
-#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 f91da13..66052fd 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 <stdio.h>
-#include <stdlib.h>
-#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 985b970..00d563f 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 <stdio.h>
-#include <stdlib.h>
-#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 7460bbf..30b389a 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 <stdio.h>
-#include <stdlib.h>
-#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 793982d..c93ff1e 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 <stdio.h>
-#include <stdlib.h>
-#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 aa353be..28cb99e 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 <stdio.h>
-#include <stdlib.h>
-#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 e07bed7..b8b0ecd 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 <stdio.h>
-#include <stdlib.h>
-#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 24324ff..dda14e1 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 <stdio.h>
-#include <stdlib.h>
-#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/config.py b/scripts/config.py
index f045f98..470c63d 100755
--- a/scripts/config.py
+++ b/scripts/config.py
@@ -7,6 +7,11 @@
     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
 ##
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 a5ae6a2..8ef2e6d 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_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,
diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt
index c42d2ff..fc210b9 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 <stdio.h>
 #include <string.h>
diff --git a/scripts/data_files/query_config.fmt b/scripts/data_files/query_config.fmt
index 59eb168..b5d3eec 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 <stdio.h>
-#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/scripts/generate_errors.pl b/scripts/generate_errors.pl
index 0a03f02..41b0337 100755
--- a/scripts/generate_errors.pl
+++ b/scripts/generate_errors.pl
@@ -47,7 +47,7 @@
 
 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 MD5
                             NET OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160
                             SHA1 SHA256 SHA512 THREADING );
 my @high_level_modules = qw( CIPHER DHM ECP MD
diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py
index 1ce5499..1a03321 100644
--- a/scripts/mbedtls_dev/crypto_knowledge.py
+++ b/scripts/mbedtls_dev/crypto_knowledge.py
@@ -357,6 +357,7 @@
         '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,
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 0000000..967f8f5
--- /dev/null
+++ b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux
Binary files differ
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
new file mode 100644
index 0000000..ab1b23f
--- /dev/null
+++ b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv
Binary files differ
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
new file mode 100644
index 0000000..5397d60
--- /dev/null
+++ b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub
Binary files differ
diff --git a/tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv b/tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv
new file mode 100644
index 0000000..db85e01
--- /dev/null
+++ b/tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv
Binary files differ
diff --git a/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv
new file mode 100644
index 0000000..6e827ce
--- /dev/null
+++ b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv
Binary files differ
diff --git a/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub
new file mode 100644
index 0000000..652c089
--- /dev/null
+++ b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub
Binary files differ
diff --git a/tests/data_files/simplepass.psk b/tests/data_files/simplepass.psk
new file mode 100644
index 0000000..93e7ab4
--- /dev/null
+++ b/tests/data_files/simplepass.psk
@@ -0,0 +1 @@
+0a0b0c:010203
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 8052a85..0bbca4a 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
diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h
index 93a3e11..e0e6fd2 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 <stdio.h>
-#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 <stddef.h>
 #include <stdint.h>
@@ -59,6 +46,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,
@@ -276,6 +270,29 @@
 #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 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 char *input );
+
 /** Read an MPI from a hexadecimal string.
  *
  * Like mbedtls_mpi_read_string(), but size the resulting bignum based
@@ -291,7 +308,6 @@
  *
  * \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 */
 
diff --git a/tests/include/test/macros.h b/tests/include/test/macros.h
index 8535b93..695a243 100644
--- a/tests/include/test/macros.h
+++ b/tests/include/test/macros.h
@@ -28,20 +28,7 @@
 
 #include <stdlib.h>
 
-#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
-#else
-#include <stdio.h>
-#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/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh
index 9811cb3..c8586d2 100755
--- a/tests/opt-testcases/tls13-kex-modes.sh
+++ b/tests/opt-testcases/tls13-kex-modes.sh
@@ -66,6 +66,165 @@
             -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
@@ -1599,3 +1758,1464 @@
             -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 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" \
+         -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 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" \
+         -S "key exchange mode: psk$" \
+         -s "key exchange mode: psk_ephemeral" \
+         -S "key exchange mode: ephemeral"
+
+
+# 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.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" \
+            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 "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, 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 \
+            -c "client hello, adding 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"
+
+requires_config_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, 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 \
+            -c "client hello, adding 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
+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 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.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" \
+            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.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" \
+            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.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" \
+            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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+requires_config_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" \
+            "$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" \
+            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.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" \
+            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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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" \
+            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"
+
+requires_config_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" \
+            "$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" \
+            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 "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_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, 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 \
+            -c "client hello, adding 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"
+
+requires_config_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, 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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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" \
+
+requires_config_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, 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 \
+            -c "client hello, adding 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."
+
+# 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.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" \
+            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.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" \
+            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.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 "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" \
+            "$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 "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" \
+            "$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" \
+            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.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 "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" \
+            "$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" \
+            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.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" \
+            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 "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, 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 \
+            -c "client hello, adding 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"
+
+requires_config_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, 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 \
+            -c "client hello, adding 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
+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 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 "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" \
+            "$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" \
+            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 "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,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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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_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: 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" \
+            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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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"
+
+requires_config_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" \
+            "$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" \
+            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 "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, 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 \
+            -c "client hello, adding 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"
+
+requires_config_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, 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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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"
+
+requires_config_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, 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 \
+            -c "client hello, adding 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."
+
+# 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: 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" \
+            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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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" \
+            "$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" \
+            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 "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, 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 \
+            -c "client hello, adding 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 "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, 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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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
+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 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 "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, 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 \
+            -c "client hello, adding 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.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 \
+            -c "client hello, adding 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."
+
+#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
+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" \
+            "$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 \
+            -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 "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/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 \
+            -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 "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
+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" \
+            "$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 \
+            -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 "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/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 \
+            -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 "Selected key exchange mode: psk_ephemeral" \
+            -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.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 \
+            -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 "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/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 \
+            -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 "Selected key exchange mode: psk_ephemeral" \
+            -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.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"
+
+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/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"
+
+#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.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 \
+            -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 "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/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 \
+            -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 "Selected key exchange mode: psk_ephemeral" \
+            -c "<= write client hello" \
+            -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.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 \
+            -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 "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/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 \
+            -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 "Selected key exchange mode: psk_ephemeral" \
+            -c "<= write client hello" \
+            -c "HTTP/1.0 200 ok"
+
+#GNUTLS-SERVER psk mode
+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, 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 "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/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" \
+            -c "client hello, adding 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"
+
+#GNUTLS-SERVER psk_all mode
+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, 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 "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/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" \
+            -c "client hello, adding 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"
+
+#GNUTLS-SERVER psk_ephemeral mode
+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, 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" \
+            -c "client hello, adding 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 "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/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" \
+            -c "client hello, adding 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 "Selected key exchange mode: psk_ephemeral" \
+            -c "HTTP/1.0 200 OK"
+
+#GNUTLS-SERVER ephemeral mode
+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, 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"
+
+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/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"
+
+#GNUTLS-SERVER ephemeral_all mode
+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/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" \
+            -c "client hello, adding 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 "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/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" \
+            -c "client hello, adding 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 "Selected key exchange mode: psk_ephemeral" \
+            -c "HTTP/1.0 200 OK"
+
+#GNUTLS-SERVER all mode
+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/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" \
+            -c "client hello, adding 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 "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/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" \
+            -c "client hello, adding 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 "Selected key exchange mode: ephemeral" \
+            -c "HTTP/1.0 200 OK"
diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh
index 0752f7b..f1b2f0e 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 @@
               -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
@@ -314,7 +317,9 @@
 
     # 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
 }
 
@@ -982,6 +987,8 @@
     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"
@@ -1241,6 +1248,8 @@
     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
+    scripts/config.py unset MBEDTLS_LMS_PRIVATE
     make
 
     msg "test: full minus CIPHER"
@@ -1263,12 +1272,171 @@
     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
+    scripts/config.py unset MBEDTLS_LMS_PRIVATE
     make
 
     msg "test: crypto_full minus CIPHER"
     make test
 }
 
+component_test_tls1_2_default_stream_cipher_only () {
+    msg "build: default with only stream cipher"
+
+    # 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
+    # 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
+    # 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
+    # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER))
+    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_TICKET_C
+
+    make
+
+    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: 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)
+    scripts/config.py unset MBEDTLS_GCM_C
+    scripts/config.py unset MBEDTLS_CCM_C
+    scripts/config.py unset MBEDTLS_CHACHAPOLY_C
+    # 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
+    # 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
+    # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER))
+    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_TICKET_C
+
+    make
+
+    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 () {
+    msg "build: default with only CBC-legacy cipher"
+
+    # 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
+    # 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
+    # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER))
+    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_TICKET_C
+
+    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 () {
+    msg "build: default with only CBC-legacy 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)
+    scripts/config.py unset MBEDTLS_GCM_C
+    scripts/config.py unset MBEDTLS_CCM_C
+    scripts/config.py unset MBEDTLS_CHACHAPOLY_C
+    # 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
+    # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER))
+    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_TICKET_C
+
+    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 () {
+    msg "build: default with only CBC-legacy and CBC-EtM ciphers"
+
+    # 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
+    # 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
+    # Modules that depend on AEAD
+    scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION
+    scripts/config.py unset MBEDTLS_SSL_TICKET_C
+
+    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_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)
+    scripts/config.py unset MBEDTLS_GCM_C
+    scripts/config.py unset MBEDTLS_CCM_C
+    scripts/config.py unset MBEDTLS_CHACHAPOLY_C
+    # 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
+    # Modules that depend on AEAD
+    scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION
+    scripts/config.py unset MBEDTLS_SSL_TICKET_C
+
+    make
+
+    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 () {
     msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG"
     scripts/config.py full
@@ -1667,6 +1835,8 @@
     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
+    scripts/config.py unset MBEDTLS_LMS_PRIVATE
     CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
     make
 
@@ -1715,7 +1885,7 @@
     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 +1967,7 @@
     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 +1997,7 @@
     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
@@ -1848,21 +2018,28 @@
     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 +2047,6 @@
     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
@@ -1925,7 +2098,7 @@
     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
 
@@ -1933,6 +2106,41 @@
     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 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_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
+    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"
+
+    # 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
+}
+
 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"
@@ -2074,6 +2282,9 @@
     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
+    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"
 }
@@ -2093,6 +2304,9 @@
     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
+    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"
 }
@@ -2112,6 +2326,9 @@
     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
+    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"
 }
@@ -2130,6 +2347,7 @@
     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"
 }
@@ -2167,6 +2385,9 @@
     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
+    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"
 }
@@ -2186,6 +2407,9 @@
     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
+    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"
 }
@@ -2300,6 +2524,7 @@
     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
diff --git a/tests/scripts/depends-hashes.pl b/tests/scripts/depends-hashes.pl
index 68297a6..db18a92 100755
--- a/tests/scripts/depends-hashes.pl
+++ b/tests/scripts/depends-hashes.pl
@@ -57,7 +57,7 @@
     ['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/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py
index 091630d..7f332dc 100755
--- a/tests/scripts/generate_bignum_tests.py
+++ b/tests/scripts/generate_bignum_tests.py
@@ -31,7 +31,7 @@
         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.
 
@@ -187,7 +187,7 @@
 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"),
@@ -208,7 +208,7 @@
 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:
@@ -219,7 +219,7 @@
     """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(
         [
diff --git a/tests/scripts/run-test-suites.pl b/tests/scripts/run-test-suites.pl
index 15fa8bc..22eadd1 100755
--- a/tests/scripts/run-test-suites.pl
+++ b/tests/scripts/run-test-suites.pl
@@ -74,7 +74,7 @@
 
 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 @@
             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 @@
 }
 
 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 @@
     }
 }
 
-exit( $failed_suites ? 1 : 0 );
+exit( @failed_suites ? 1 : 0 );
 
diff --git a/tests/src/certs.c b/tests/src/certs.c
index 5516026..ca03b29 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/src/drivers/test_driver_aead.c b/tests/src/drivers/test_driver_aead.c
index b561960..93a75f6 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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     }
     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 @@
     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 @@
     }
     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
diff --git a/tests/src/helpers.c b/tests/src/helpers.c
index 4f976a2..b7c8364 100644
--- a/tests/src/helpers.c
+++ b/tests/src/helpers.c
@@ -15,6 +15,7 @@
  *  limitations under the License.
  */
 
+#include <test/constant_flow.h>
 #include <test/helpers.h>
 #include <test/macros.h>
 #include <string.h>
@@ -102,8 +103,12 @@
 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_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_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
@@ -332,6 +345,51 @@
 #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 char *input )
+{
+    /* Sanity check */
+    if( *pX != NULL )
+        return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA );
+
+    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 );
+
+    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 )
 {
     /* mbedtls_mpi_read_string() currently retains leading zeros.
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 9e14af1..f6437f5 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -2042,6 +2042,59 @@
             -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    "TLS 1.3 opaque key: no suitable algorithm found" \
+            "$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" \
+            -c "key type: Opaque" \
+            -s "key types: Opaque, Opaque" \
+            -c "error" \
+            -s "no suitable signature algorithm"
+
+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 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" \
+            -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    "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
+run_test    "TLS 1.3 opaque key: 2 keys on server, suitable algorithm found" \
+            "$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" \
+            -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
@@ -11520,7 +11573,7 @@
             -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
@@ -11538,7 +11591,7 @@
             -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
@@ -11792,7 +11845,7 @@
             -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
@@ -11811,7 +11864,7 @@
             -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
@@ -12090,52 +12143,6 @@
             -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" \
-            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"
-
-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 \
-            -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_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'" \
-            -c "<= write client hello"
-
 for i in opt-testcases/*.sh
 do
     TEST_SUITE_NAME=${i##*/}
@@ -12540,7 +12547,7 @@
                     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
@@ -12556,7 +12563,7 @@
                     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
@@ -12573,8 +12580,8 @@
                     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]"
 
@@ -12593,7 +12600,7 @@
                                  -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
@@ -12612,7 +12619,7 @@
             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
@@ -12629,8 +12636,7 @@
                                  --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
@@ -12646,8 +12652,7 @@
                                  -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
@@ -12662,8 +12667,7 @@
             "$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
@@ -12719,7 +12723,7 @@
             "$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
@@ -12733,7 +12737,7 @@
             "$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
@@ -12748,7 +12752,7 @@
             "$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
@@ -12756,13 +12760,13 @@
 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
@@ -12771,23 +12775,28 @@
 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"
+            -c "Reconnecting with saved session" \
+            -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=1" \
-            "$O_NEXT_CLI -msg -debug -tls1_3 -no_middlebox" \
+            "$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" \
@@ -12798,14 +12807,19 @@
 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" \
+            "$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" \
             -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
@@ -12813,17 +12827,20 @@
 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 "MBEDTLS_SSL_NEW_SESSION_TICKET" \
-            -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"    \
             -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
@@ -12856,6 +12873,47 @@
             -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=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 \
+            -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=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 \
+            -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 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"
+
 # Test heap memory usage after handshake
 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2
 requires_config_enabled MBEDTLS_MEMORY_DEBUG
diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function
index a620178..fe33f9b 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 <stdio.h>
-#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"
@@ -52,13 +39,6 @@
 #include <unistd.h>
 #endif
 
-/* Type for Hex parameters */
-typedef struct data_tag
-{
-    uint8_t *   x;
-    uint32_t    len;
-} data_t;
-
 /*----------------------------------------------------------------------------*/
 /* Status and error constants */
 
diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function
index 5ab265a..10e53c2 100644
--- a/tests/suites/test_suite_aes.function
+++ b/tests/suites/test_suite_aes.function
@@ -358,7 +358,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:NOT_DEFINED */
+/* BEGIN_CASE */
 void aes_invalid_mode( )
 {
     mbedtls_aes_context aes_ctx;
diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function
index 87901f8..002d8c4 100644
--- a/tests/suites/test_suite_asn1parse.function
+++ b/tests/suites/test_suite_asn1parse.function
@@ -779,7 +779,7 @@
     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_camellia.function b/tests/suites/test_suite_camellia.function
index cc18d5b..3d318c8 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;
diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function
index dd5226c..af617fc 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"
@@ -304,7 +301,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:NOT_DEFINED */
+/* BEGIN_CASE */
 void cipher_invalid_param_conditional( )
 {
     mbedtls_cipher_context_t valid_ctx;
@@ -313,8 +310,6 @@
     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,
diff --git a/tests/suites/test_suite_cmac.data b/tests/suites/test_suite_cmac.data
index 70b7609..5956a69 100644
--- a/tests/suites/test_suite_cmac.data
+++ b/tests/suites/test_suite_cmac.data
@@ -22,15 +22,15 @@
 
 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"
diff --git a/tests/suites/test_suite_ecdh.function b/tests/suites/test_suite_ecdh.function
index e23b471..515a974 100644
--- a/tests/suites/test_suite_ecdh.function
+++ b/tests/suites/test_suite_ecdh.function
@@ -50,6 +50,9 @@
     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,
                             mbedtls_ecdh_get_params( &ctx, &kp,
                                                      invalid_side ) );
diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function
index 7e1daa2..e82f39d 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 449b368..d90a586 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[] = {
@@ -109,6 +109,8 @@
     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,
diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data
index 5332c07..4c0ed1c 100644
--- a/tests/suites/test_suite_ecp.data
+++ b/tests/suites/test_suite_ecp.data
@@ -309,6 +309,58 @@
 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":"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":"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":"00000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000005":"a1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c":"7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5":"010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7":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":"0000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000007":"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:"01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"":"0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00":"00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66":"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650":"01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409":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":"04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11":"1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e":"8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315":"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565":27
+
+Check ECP group metadata #11 bp512r1 (RFC 5639)
+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)
+depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
+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":"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 65c7067..7d29e52 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"
 
@@ -70,6 +72,9 @@
     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,
@@ -788,6 +793,124 @@
 }
 /* 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;
+    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;
+
+    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 );
+
+    // 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 );
+
+    // 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
+    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 );
+    vbuf = buf;
+    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 )
 {
diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function
index 5696679..ea8d6a0 100644
--- a/tests/suites/test_suite_gcm.function
+++ b/tests/suites/test_suite_gcm.function
@@ -411,7 +411,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:NOT_DEFINED */
+/* BEGIN_CASE */
 void gcm_invalid_param( )
 {
     mbedtls_gcm_context ctx;
diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data
new file mode 100644
index 0000000..2737272
--- /dev/null
+++ b/tests/suites/test_suite_lmots.data
@@ -0,0 +1,151 @@
+LMOTS sign-verify test #1
+# 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
+# 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 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 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 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
+# import pickle
+#
+# 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)
+# 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 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 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
+# import pickle
+#
+# 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)
+#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 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 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
+# import pickle
+#
+# 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)
+#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 the valid signature from hsslms interop test 1, and then
+# 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
+
+LMOTS negative test (invalid type) #1
+# 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 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
+# 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 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
+# 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
new file mode 100644
index 0000000..fd6a89f
--- /dev/null
+++ b/tests/suites/test_suite_lmots.function
@@ -0,0 +1,247 @@
+/* BEGIN_HEADER */
+#include "lmots.h"
+#include "mbedtls/lms.h"
+
+#if defined(MBEDTLS_TEST_HOOKS)
+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++ )
+    {
+        TEST_EQUAL( sig[idx], 0x7E );
+    }
+
+    return( 0 );
+
+exit:
+    return( -1 );
+}
+#endif /* defined(MBEDTLS_TEST_HOOKS) */
+
+/* END_HEADER */
+
+/* BEGIN_DEPENDENCIES
+ * depends_on:MBEDTLS_LMS_C
+ * END_DEPENDENCIES
+ */
+
+/* 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 )
+{
+    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_public_init( &pub_ctx );
+    mbedtls_lmots_private_init( &priv_ctx );
+
+    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 );
+    mbedtls_lmots_private_free( &priv_ctx );
+}
+/* END_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;
+    mbedtls_lmots_private_t priv_ctx;
+    unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)];
+
+    mbedtls_lmots_public_init( &pub_ctx );
+    mbedtls_lmots_private_init( &priv_ctx );
+
+    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 );
+    mbedtls_lmots_private_free( &priv_ctx );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+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 );
+
+    TEST_EQUAL(mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0);
+
+    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 )
+    {
+        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 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_free( tmp_sig );
+    mbedtls_lmots_public_free( &ctx );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+void lmots_import_export_test (  data_t * pub_key, int expected_import_rc )
+{
+    mbedtls_lmots_public_t ctx;
+    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 ),
+                expected_import_rc );
+
+    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_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;
+
+        /* 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;
+
+        /* 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,
+                                                   &exported_pub_key_size ),
+                    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;
+    }
+
+exit:
+    mbedtls_lmots_public_free( &ctx );
+    mbedtls_free( exported_pub_key );
+}
+/* END_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;
+    unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)];
+
+    mbedtls_lmots_private_init( &ctx );
+    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_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 );
+}
+/* END_CASE */
+
+/* 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 )
+{
+    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_private_init( &ctx );
+    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 );
+    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
new file mode 100644
index 0000000..7802a70
--- /dev/null
+++ b/tests/suites/test_suite_lms.data
@@ -0,0 +1,263 @@
+LMS sign-verify test
+# 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 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 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 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.
+#
+# 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
+#
+# import pyhsslms
+#
+# private_key = pyhsslms.HssLmsPrivateKey('tmp/lms')
+# public_key = private_key.hss_pub
+#
+# 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 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), after generating the
+# first signature:
+#
+# 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
+# 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 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)
+# * 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:
+# * <Save signature in binary format>
+# * 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. 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 produce another signature with this message and key (note that the actual
+# signature bytes will differ due to randomization):
+# * <download and build hash-sigs>
+# * 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
+# * <Save message in binary format>
+# * <hash-sigs>/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
+# * <hash-sigs/demo> 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
+# 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 produce another signature with this message and key (note that the actual
+# signature bytes will differ due to randomization):
+# * <download and build hash-sigs>
+# * 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
+# * <Save message in binary format>
+# * <hash-sigs>/demo sign tmp/lms message.bin (incorrect signature using leaf node 0)
+# * rm message.bin.sig
+# * <hash-sigs>/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
+# * <hash-sigs/demo> 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 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
+# import pickle
+#
+# 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()
+#
+# 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 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
+# import pickle
+#
+# 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()
+#
+# 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 (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.
+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.
+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.
+lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED
+
+LMS negative test (invalid leaf ID)
+# 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:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000040000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED
+
+LMS import/export test
+# 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 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 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 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
+
+LMS key import invalid LMOTS 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.
+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
+# 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
diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function
new file mode 100644
index 0000000..c5c8aa4
--- /dev/null
+++ b/tests/suites/test_suite_lms.function
@@ -0,0 +1,201 @@
+/* BEGIN_HEADER */
+#include "mbedtls/lms.h"
+
+/* END_HEADER */
+
+/* BEGIN_DEPENDENCIES
+ * depends_on:MBEDTLS_LMS_C
+ * END_DEPENDENCIES
+ */
+
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
+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_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.
+     */
+    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 ), 0 );
+
+    TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 );
+
+    TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL,
+                                   msg->x, msg->len, sig, sizeof( sig ),
+                                   NULL ), 0 );
+
+    TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig,
+                                     sizeof( sig ) ), 0 );
+
+exit:
+    mbedtls_lms_public_free( &pub_ctx );
+    mbedtls_lms_private_free( &priv_ctx );
+}
+/* END_CASE */
+
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
+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)];
+
+    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.
+     */
+    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 ), 0 );
+
+    TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 );
+
+    TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL,
+                                   NULL, 0, sig, sizeof( sig ),
+                                   NULL ), 0 );
+
+    TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig,
+                                     sizeof( sig ) ), 0 );
+
+exit:
+    mbedtls_lms_public_free( &pub_ctx );
+    mbedtls_lms_private_free( &priv_ctx );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+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);
+
+    TEST_EQUAL(mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0);
+
+    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 )
+    {
+        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;
+        }
+
+        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 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_free( tmp_sig );
+    mbedtls_lms_public_free( &ctx );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+void lms_import_export_test (  data_t * pub_key, int expected_import_rc )
+{
+    mbedtls_lms_public_t ctx;
+    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 ),
+                expected_import_rc );
+
+    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_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;
+
+        /* 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;
+
+        /* 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,
+                                                   &exported_pub_key_size ),
+                    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;
+    }
+
+exit:
+    mbedtls_free( exported_pub_key );
+    mbedtls_lms_public_free( &ctx );
+}
+/* END_CASE */
+
diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data
index 7573f95..95e0d31 100644
--- a/tests/suites/test_suite_mpi.data
+++ b/tests/suites/test_suite_mpi.data
@@ -83,534 +83,570 @@
 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
+Test mbedtls_mpi_core_bitlen 764-bit
+mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764
 
-Base test mbedtls_mpi_bitlen #2
-mbedtls_mpi_bitlen:"18":5
+Test mbedtls_mpi_core_bitlen 0x18
+mpi_core_bitlen:"18":5
 
-Base test mbedtls_mpi_bitlen #3
-mbedtls_mpi_bitlen:"1":1
+Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s)
+mpi_core_bitlen:"00000000000000018":5
 
-Base test mbedtls_mpi_bitlen #4
-mbedtls_mpi_bitlen:"f":4
+Test mbedtls_mpi_core_bitlen 0x18 << 64
+mpi_core_bitlen:"180000000000000000":69
 
-Base test mbedtls_mpi_bitlen #5
-mbedtls_mpi_bitlen:"10":5
+Test mbedtls_mpi_core_bitlen 0x01
+mpi_core_bitlen:"1":1
 
-Base test mbedtls_mpi_bitlen #6
-mbedtls_mpi_bitlen:"a":4
+Test mbedtls_mpi_core_bitlen 0x0f
+mpi_core_bitlen:"f":4
 
-Base test mbedtls_mpi_bitlen: 0 (null)
-mbedtls_mpi_bitlen:"":0
+Test mbedtls_mpi_core_bitlen 0x10
+mpi_core_bitlen:"10":5
 
-Base test mbedtls_mpi_bitlen: 0 (1 limb)
-mbedtls_mpi_bitlen:"0":0
+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
+
+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
+
+Test mbedtls_mpi_bitlen 0x0f
+mpi_bitlen:"f":4
+
+Test mbedtls_mpi_bitlen 0x10
+mpi_bitlen:"10":5
+
+Test mbedtls_mpi_bitlen 0x0a
+mpi_bitlen:"a":4
+
+Test mbedtls_mpi_bitlen: 0 (null)
+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
-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
+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: x<y (1 limb)
-mpi_core_lt_ct:"02B5":"02B6":1
+mpi_core_lt_ct:"2B5":"2B6":1
 
 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: x<y (63 bit y, x first byte greater)
-mpi_core_lt_ct:"FF":"7FFFFFFFFFFFFFFF":1
+mpi_core_lt_ct:"00000000000000FF":"7FFFFFFFFFFFFFFF":1
 
 mbedtls_mpi_core_lt_ct: x>y (64 bit x, y=x-1)
 mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0
@@ -619,28 +655,28 @@
 mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"8000000000000000":1
 
 mbedtls_mpi_core_lt_ct: x>y (64 bit x, y=1)
-mpi_core_lt_ct:"8000000000000000":"01":0
+mpi_core_lt_ct:"8000000000000000":"0000000000000001":0
 
 mbedtls_mpi_core_lt_ct: x<y (64 bit y, x=1)
-mpi_core_lt_ct:"01":"8000000000000000":1
+mpi_core_lt_ct:"0000000000000001":"8000000000000000":1
 
 mbedtls_mpi_core_lt_ct: x>y (64 bit x, y=0)
-mpi_core_lt_ct:"8000000000000000":"00":0
+mpi_core_lt_ct:"8000000000000000":"0000000000000000":0
 
 mbedtls_mpi_core_lt_ct: x<y (64 bit y, x=0)
-mpi_core_lt_ct:"00":"8000000000000000":1
+mpi_core_lt_ct:"0000000000000000":"8000000000000000":1
 
 mbedtls_mpi_core_lt_ct: x>y (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: x<y (64 bit y, first bytes equal)
-mpi_core_lt_ct:"FF":"FFFFFFFFFFFFFFFF":1
+mpi_core_lt_ct:"00000000000000FF":"FFFFFFFFFFFFFFFF":1
 
 mbedtls_mpi_core_lt_ct: x>y (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: x<y (31 bit y, x first byte greater)
-mpi_core_lt_ct:"FF":"7FFFFFFF":1
+mpi_core_lt_ct:"000000FF":"7FFFFFFF":1
 
 mbedtls_mpi_core_lt_ct: x>y (32 bit x, y=x-1)
 mpi_core_lt_ct:"80000000":"7FFFFFFF":0
@@ -649,25 +685,25 @@
 mpi_core_lt_ct:"7FFFFFFF":"80000000":1
 
 mbedtls_mpi_core_lt_ct: x>y (32 bit x, y=1)
-mpi_core_lt_ct:"80000000":"01":0
+mpi_core_lt_ct:"80000000":"00000001":0
 
 mbedtls_mpi_core_lt_ct: x<y (32 bit y, x=1)
-mpi_core_lt_ct:"01":"80000000":1
+mpi_core_lt_ct:"00000001":"80000000":1
 
 mbedtls_mpi_core_lt_ct: x>y (32 bit x, y=0)
-mpi_core_lt_ct:"80000000":"00":0
+mpi_core_lt_ct:"80000000":"00000000":0
 
 mbedtls_mpi_core_lt_ct: x<y (32 bit y, x=0)
-mpi_core_lt_ct:"00":"80000000":1
+mpi_core_lt_ct:"00000000":"80000000":1
 
 mbedtls_mpi_core_lt_ct: x>y (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: x<y (32 bit y, first bytes equal)
-mpi_core_lt_ct:"FF":"FFFFFFFF":1
+mpi_core_lt_ct:"000000FF":"FFFFFFFF":1
 
 mbedtls_mpi_core_lt_ct: x<y, zero vs non-zero MS limb
-mpi_core_lt_ct:"00FFFFFFFFFFFFFFFF":"01FFFFFFFFFFFFFFFF":1
+mpi_core_lt_ct:"0FFFFFFFFFFFFFFFF":"1FFFFFFFFFFFFFFFF":1
 
 mbedtls_mpi_core_lt_ct: x>y, equal MS limbs
 mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0
@@ -682,241 +718,241 @@
 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 (X<Y, zero vs non-zero MS limb)
-mbedtls_mpi_lt_mpi_ct:2:"0FFFFFFFFFFFFFFFF":2:"1FFFFFFFFFFFFFFFF":1:0
+mpi_lt_mpi_ct:2:"0FFFFFFFFFFFFFFFF":2:"1FFFFFFFFFFFFFFFF":1:0
 
 Multi-limb mbedtls_mpi_lt_mpi_ct (X>Y, 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 +973,112 @@
 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 +1099,982 @@
 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
@@ -2282,6 +2318,13455 @@
 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
 mpi_selftest:
diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function
index dae3262..9812c56 100644
--- a/tests/suites/test_suite_mpi.function
+++ b/tests/suites/test_suite_mpi.function
@@ -182,7 +182,7 @@
 /* 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 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
-void mbedtls_mpi_core_io_null()
+void mpi_core_io_null()
 {
     mbedtls_mpi_uint X = 0;
     int ret;
@@ -233,29 +233,29 @@
 /* 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 );
 
-    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 );
@@ -290,29 +290,29 @@
 /* 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 );
 
-    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 );
@@ -345,7 +345,7 @@
 /* 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,29 +374,29 @@
 
 
 /* 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 );
 
-    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 )
@@ -469,7 +469,7 @@
 /* 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 @@
 /* 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 @@
 /* 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 @@
 /* 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 @@
 /* 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 @@
 /* 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 @@
 /* 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 @@
 /* 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,21 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
-void mbedtls_mpi_bitlen( char * input_X, int nr_bits )
+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 )
 {
     mbedtls_mpi X;
     mbedtls_mpi_init( &X );
@@ -679,8 +693,8 @@
 /* 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 +712,7 @@
 /* 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 +726,8 @@
 /* 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 );
@@ -728,45 +742,36 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
-void mpi_core_lt_ct( data_t * input_X, data_t * input_Y, int input_ret )
+void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret )
 {
-    #define MAX_LEN 64
-    mbedtls_mpi_uint X[MAX_LEN];
-    mbedtls_mpi_uint Y[MAX_LEN];
-    unsigned exp_ret = input_ret;
-    unsigned ret;
-    size_t len = CHARS_TO_LIMBS(
-                    input_X->len > 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_ASSERT( 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 ) );
+    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, 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 ) );
-
+    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 */
 
 /* 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 +794,8 @@
 /* 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 +810,7 @@
 /* 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 +868,7 @@
 /* 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 );
@@ -873,8 +878,8 @@
     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 +889,8 @@
     /* 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 +900,8 @@
     /* 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 +920,7 @@
     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 );
@@ -928,7 +933,7 @@
 /* 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 +954,8 @@
 /* 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 +984,7 @@
 /* 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 +1013,8 @@
 
 
 /* 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 +1043,8 @@
 /* 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 +1061,8 @@
 /* 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 +1091,8 @@
 /* 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 +1127,8 @@
 /* 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 +1145,8 @@
 /* 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 +1164,8 @@
 /* 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 +1187,9 @@
 /* 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 +1217,9 @@
 /* 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 +1246,8 @@
 /* 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 +1270,8 @@
 /* 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 +1292,9 @@
 /* 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 +1339,8 @@
 /* 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 +1373,8 @@
 /* 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 +1397,7 @@
 /* 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 +1413,8 @@
 /* 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 +1446,7 @@
 /* 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 +1484,8 @@
 /* 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 +1502,8 @@
 /* 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 );
@@ -1720,6 +1725,457 @@
 }
 /* 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(  )
 {
diff --git a/tests/suites/test_suite_oid.function b/tests/suites/test_suite_oid.function
index 33a9131..b06f524 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 f4ac368..6328247 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.data b/tests/suites/test_suite_pk.data
index e8cc076..3dc2b8b 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 9c04560..beb3e7c 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 <limits.h>
 #include <stdint.h>
@@ -300,6 +300,53 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
+void pk_invalid_param()
+{
+    mbedtls_pk_context ctx;
+    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, 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, MBEDTLS_MD_NONE,
+                                       NULL, buf_size,
+                                       buf, buf_size ) );
+    TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA,
+                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 );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
 void valid_parameters( )
 {
     mbedtls_pk_context pk;
diff --git a/tests/suites/test_suite_pkcs12.function b/tests/suites/test_suite_pkcs12.function
index 34ef090..3fad814 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
 {
@@ -25,7 +25,6 @@
                         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 @@
 
    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 );
 
diff --git a/tests/suites/test_suite_pkcs1_v15.function b/tests/suites/test_suite_pkcs1_v15.function
index 463e401..0fad7c6 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 a7e93aa..593c047 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 fcbf9b1..7b7ed3d 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 8ca3aca..c5e60ee 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_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data
index c8b229c..cded3a8 100644
--- a/tests/suites/test_suite_psa_crypto.data
+++ b/tests/suites/test_suite_psa_crypto.data
@@ -3643,15 +3643,15 @@
 
 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 @@
 
 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 @@
 
 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
@@ -4824,6 +4824,10 @@
 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,47 @@
 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_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: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: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: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: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: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: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: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
 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 c74acf6..fa237d3 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -7797,6 +7797,51 @@
 }
 /* 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_arg,
+                            int derivation_step,
+                            int capacity, int expected_capacity_status_arg,
+                            data_t *expected_output,
+                            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 ),
+                expected_capacity_status);
+
+    TEST_EQUAL( psa_key_derivation_input_bytes( &operation,
+                    step, input->x, input->len ),
+                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, 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,
diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function
index 0c8887a..65731ed 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
@@ -16,6 +16,8 @@
     mbedtls_rsa_context ctx;
     const int invalid_padding = 42;
     const int invalid_hash_id = 0xff;
+    unsigned char buf[] = {0x00,0x01,0x02,0x03,0x04,0x05};
+    size_t buf_len = sizeof( buf );
 
     mbedtls_rsa_init( &ctx );
 
@@ -29,6 +31,28 @@
                                          invalid_hash_id ),
                 MBEDTLS_ERR_RSA_INVALID_PADDING );
 
+    TEST_EQUAL( mbedtls_rsa_pkcs1_sign(&ctx, NULL,
+                                       NULL, MBEDTLS_MD_NONE,
+                                       buf_len,
+                                       NULL, buf),
+                MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
+
+    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,
@@ -36,6 +60,32 @@
                 MBEDTLS_ERR_RSA_INVALID_PADDING );
 #endif
 
+#if defined(MBEDTLS_PKCS1_V15)
+    TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL,
+                                              NULL, MBEDTLS_MD_NONE,
+                                              buf_len,
+                                              NULL, buf),
+                MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
+
+    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)
     TEST_EQUAL( mbedtls_rsa_set_padding( &ctx,
                                          MBEDTLS_RSA_PKCS_V21,
@@ -43,6 +93,42 @@
                 MBEDTLS_ERR_RSA_INVALID_PADDING );
 #endif
 
+#if defined(MBEDTLS_PKCS1_V21)
+    TEST_EQUAL( mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL,
+                                    MBEDTLS_MD_NONE, buf_len,
+                                    NULL, buf_len,
+                                    buf ),
+                MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
+
+    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,
+                                                  MBEDTLS_MD_NONE,
+                                                  buf_len, buf),
+                MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
+
+    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:
     mbedtls_rsa_free( &ctx );
 }
diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function
index 95d45ba..aebfd84 100644
--- a/tests/suites/test_suite_shax.function
+++ b/tests/suites/test_suite_shax.function
@@ -18,13 +18,12 @@
 }
 /* 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;
     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,
@@ -67,13 +66,12 @@
 }
 /* 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;
     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,
diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function
index 26855a6..d832853 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 <legacy_or_psa.h>
+#include <mbedtls/legacy_or_psa.h>
 #include "hash_info.h"
 
 #include <constant_time_internal.h>
@@ -137,7 +137,7 @@
     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;
@@ -2184,8 +2184,9 @@
                              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)
@@ -5439,7 +5440,7 @@
     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;
diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function
index b650afd..60e703a 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 5a97240..1120bee 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,