mbedtls/library
Gilles Peskine 3b63d09fea Make the main loop's logic clearer
The loop ends when there are no more bits to process, with one twist: when
that happens, we need to clear the window one last time. Since the window
does not start empty (E_limbs==0 is not supported), the loop always starts
with a non-empty window and some bits to process. So it's correct to move
the window clearing logic to the end of the loop. This lets us exit the loop
when the end of the exponent is reached.

It would be clearer not to do the final window clearing inside the loop, so
we wouldn't need to repeat the loop termination condition (end of exponent
reached) inside the loop. However, this requires duplicating the code to
clear the window. Empirically, this causes a significant code size increase,
even if the window clearing code is placed into a function.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-11-22 21:22:54 +00:00
..
.gitignore
aes.c Fix missing cipher mode dependencies 2022-10-19 08:35:08 -04:00
aesni.c Refactor AES context to be shallow-copyable 2022-06-29 16:17:50 +01:00
aesni.h
aria.c Merge pull request #6467 from davidhorstmann-arm/fix-unusual-macros-0 2022-10-25 19:55:29 +02:00
asn1parse.c Deprecate mbedtls_asn1_free_named_data() 2022-11-07 15:42:44 -05:00
asn1write.c Merge pull request #6467 from davidhorstmann-arm/fix-unusual-macros-0 2022-10-25 19:55:29 +02:00
base64.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
bignum.c Merge pull request #6609 from gilles-peskine-arm/mpi_sint-min-ub 2022-11-21 19:51:58 +01:00
bignum_core.c Make the main loop's logic clearer 2022-11-22 21:22:54 +00:00
bignum_core.h mpi_core_mod_exp: improve style and documentation 2022-11-22 21:22:53 +00:00
bignum_mod.c Add merge slots to Bignum files 2022-11-02 17:27:25 +00:00
bignum_mod.h Add merge slots to Bignum files 2022-11-02 17:27:25 +00:00
bignum_mod_raw.c bignum_mod_raw: Refactored Montgomery conversion functions 2022-11-11 10:54:58 +00:00
bignum_mod_raw.h bignum_mod_raw: Refactored Montgomery conversion functions 2022-11-11 10:54:58 +00:00
bn_mul.h Merge pull request #6090 from hanno-arm/fix_bnmul_arm_v7a 2022-08-18 08:48:03 +01:00
camellia.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
ccm.c Fix typos in documentation and constants with typo finding tool 2022-05-18 14:15:33 -04:00
chacha20.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
chachapoly.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
check_crypto_config.h Define ECJPAKE_TO_PMS in config_psa only if SHA_256 is available 2022-09-14 14:57:51 -04:00
cipher.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
cipher_wrap.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
cipher_wrap.h
cmac.c
CMakeLists.txt Add LMS implementation 2022-10-13 14:28:15 +01:00
common.h
constant_time.c Merge pull request #6289 from gabor-mezei-arm/6237_Add_conditional_assign_and_swap_for_bignum 2022-10-19 15:51:19 +02:00
constant_time_internal.h Don't test mbedtls_mpi_core_lt_ct with 0 limbs 2022-11-09 11:18:38 +01:00
constant_time_invasive.h
ctr_drbg.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
debug.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
des.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
dhm.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
ecdh.c Refactor macro-spanning ifs in ecdh.c 2022-10-07 14:08:42 +01:00
ecdsa.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
ecjpake.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
ecp.c Merge pull request #6190 from daverodgman/invalid-ecdsa-pubkey 2022-10-31 09:37:26 +00:00
ecp_curves.c Remove bignum_internal.h, moving contents to bignum_core.h 2022-08-23 12:01:39 +01:00
ecp_internal_alt.h
ecp_invasive.h
entropy.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
entropy_poll.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
entropy_poll.h
gcm.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
hash_info.c Make legacy_or_psa.h public. 2022-09-16 12:02:48 +02:00
hash_info.h hash_info.h: add MBEDTLS_MAX_HASH_SIZE macro 2022-09-06 14:18:39 +02:00
hkdf.c
hmac_drbg.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
lmots.c Add extra zeroization to LMS and LMOTS 2022-10-13 14:30:03 +01:00
lmots.h Improve LMS private function warning 2022-10-13 14:29:38 +01:00
lms.c Update how lms.c imports platform.h 2022-10-13 16:47:13 +01:00
Makefile Add a temporary solution to create a seedfile 2022-10-19 08:35:09 -04:00
md.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
md5.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
md_wrap.h
memory_buffer_alloc.c Redo of PR#5345. Fixed spelling and typographical errors found by CodeSpell. 2022-05-11 21:25:51 +01:00
mps_common.h Fix typos in documentation and constants with typo finding tool 2022-05-18 14:15:33 -04:00
mps_error.h
mps_reader.c
mps_reader.h
mps_trace.c
mps_trace.h Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
net_sockets.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
nist_kw.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
oid.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
padlock.c Add fallback when rk unaligned with padlock 2022-07-05 11:55:15 +01:00
padlock.h
pem.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
pk.c Remove extra spacings 2022-08-31 10:14:25 +01:00
pk_wrap.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
pk_wrap.h Guard pk_opaque_rsa_decrypt() with PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 2022-05-04 11:02:37 +02:00
pkcs5.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
pkcs12.c Make use of MBEDTLS_MAX_HASH_SIZE macro 2022-09-06 14:18:45 +02:00
pkparse.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
pkwrite.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
pkwrite.h Rename max sizes of RSA & EC DER keys defines 2022-03-01 10:03:21 +01:00
platform.c Fix code formatting 2022-07-01 16:43:25 +01:00
platform_util.c Add comment 2022-05-12 09:45:03 +01:00
poly1305.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
psa_crypto.c psa_key_slot_get_slot_number: Move documentation to header file 2022-11-21 15:03:52 +01:00
psa_crypto_aead.c Move declaration of mbedtls_cipher_info_from_psa into psa_crypto_cipher.h 2022-11-02 09:25:38 +00:00
psa_crypto_aead.h Redo of PR#5345. Fixed spelling and typographical errors found by CodeSpell. 2022-05-11 21:25:51 +01:00
psa_crypto_cipher.c Use double quotes to include private header file psa_crypto_cipher.h 2022-08-02 12:44:35 +02:00
psa_crypto_cipher.h Improve documentation for psa_crypto_cipher.h 2022-11-02 09:29:50 +00:00
psa_crypto_client.c Remove useless platform macro redefinitions: automatic part 2022-09-15 20:34:15 +02:00
psa_crypto_core.h psa_key_slot_get_slot_number: Move documentation to header file 2022-11-21 15:03:52 +01:00
psa_crypto_driver_wrappers.h Remove psa_driver_get_tag_len() and use PSA_ALG_AEAD_GET_TAG_LENGTH macro instead 2022-10-06 17:01:58 +02:00
psa_crypto_ecp.c Remove useless platform macro redefinitions: automatic part 2022-09-15 20:34:15 +02:00
psa_crypto_ecp.h
psa_crypto_hash.c Rm now-duplicate helper function 2022-07-18 21:28:38 +02:00
psa_crypto_hash.h Rm now-duplicate helper function 2022-07-18 21:28:38 +02:00
psa_crypto_invasive.h
psa_crypto_its.h
psa_crypto_mac.c Move declaration of mbedtls_cipher_info_from_psa into psa_crypto_cipher.h 2022-11-02 09:25:38 +00:00
psa_crypto_mac.h
psa_crypto_pake.c Further optimizations of pake set_password implementation 2022-11-22 09:10:35 +01:00
psa_crypto_random_impl.h
psa_crypto_rsa.c Remove useless platform macro redefinitions: automatic part 2022-09-15 20:34:15 +02:00
psa_crypto_rsa.h
psa_crypto_se.c Remove useless platform macro redefinitions: automatic part 2022-09-15 20:34:15 +02:00
psa_crypto_se.h
psa_crypto_slot_management.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
psa_crypto_slot_management.h
psa_crypto_storage.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
psa_crypto_storage.h
psa_its_file.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
ripemd160.c Include platform.h unconditionally: second automatic part 2022-09-15 20:34:10 +02:00
rsa.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
rsa_alt_helpers.c
rsa_alt_helpers.h
sha1.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
sha256.c Merge pull request #6467 from davidhorstmann-arm/fix-unusual-macros-0 2022-10-25 19:55:29 +02:00
sha512.c Merge pull request #6467 from davidhorstmann-arm/fix-unusual-macros-0 2022-10-25 19:55:29 +02:00
ssl_cache.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00
ssl_ciphersuites.c Merge pull request #6291 from gilles-peskine-arm/platform.h-unconditional-3.2 2022-10-13 10:19:22 +02:00
ssl_client.c fix various issues 2022-11-09 22:43:31 +08:00
ssl_client.h Mark internal int SSL functions CHECK_RETURN_CRITICAL 2022-06-20 21:12:55 +02:00
ssl_cookie.c Fix SHA512 vs SHA384 dependencies 2022-10-19 08:35:09 -04:00
ssl_debug_helpers.h Change ticket_flag base on review 2022-11-14 03:16:22 +00:00
ssl_misc.h Address some format issues 2022-11-14 03:16:19 +00:00
ssl_msg.c Fix outdated reference in debug message 2022-11-07 15:28:49 +01:00
ssl_ticket.c Revert "Fix guards for mbedtls_ssl_ticket_write() and mbedtls_ssl_ticket_parse() functions" 2022-09-29 15:29:18 +02:00
ssl_tls.c Move ssl_tls13_has_configured_ticket() back to tls13 client 2022-11-14 03:13:51 +00:00
ssl_tls12_client.c Introduce a test for single signature algorithm correctness 2022-11-17 14:58:14 +00:00
ssl_tls12_server.c Fix signature algorithms list entry getting overwritten by length. 2022-11-17 14:58:14 +00:00
ssl_tls13_client.c Add EARLY_DATA guard to the early data extension in session ticket 2022-11-16 08:43:50 +00:00
ssl_tls13_generic.c Fix various issues cause rebase to latest code 2022-11-15 10:33:53 +00:00
ssl_tls13_invasive.h Merge remote-tracking branch 'mbedtls-restricted/development-restricted' into mbedtls-3.2.0rc0-pr 2022-07-11 10:22:37 +02:00
ssl_tls13_keys.c tls13: keys: Simplify code guard 2022-10-22 14:42:04 +02:00
ssl_tls13_keys.h tls13: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK.*ENABLED 2022-10-22 14:42:04 +02:00
ssl_tls13_server.c fix various issues 2022-11-09 22:43:31 +08:00
threading.c Fix typo "phtreads" to "pthreads" 2022-03-29 17:43:56 +02:00
timing.c Remove the dependency on MBEDTLS_HAVE_TIME from MBEDTLS_TIMING_C 2022-04-08 04:41:42 -04:00
version.c
x509.c Shared code to free x509 structs 2022-10-28 12:51:35 -04:00
x509_create.c
x509_crl.c Shared code to free x509 structs 2022-10-28 12:51:35 -04:00
x509_crt.c Merge pull request #6265 from Kabbah/x509-info-hwmodulename-hex 2022-11-08 17:11:07 +01:00
x509_csr.c Shared code to free x509 structs 2022-10-28 12:51:35 -04:00
x509write_crt.c Merge pull request #6121 from daverodgman/pr277 2022-10-31 13:27:49 +00:00
x509write_csr.c Include platform.h unconditionally: automatic part 2022-09-15 20:33:07 +02:00