mbedtls/library
Gilles Peskine 84867cffdd Don't use dynamic pointer dispatch in md
In the generic message digest abstraction, instead of storing method
pointers in the per-algorithm data structure and using wrapper
functions as those methods, call the per-algorithm function directly.

This saves some code size (2336B -> 2043B for md with all algorithms
enabled on M0+ with gcc -Os). This should also make it easier to
optimize the case when a single algorithm is supported. In addition,
this is a very slight security improvement since it removes one
opportunity for a buffer overflow to directly turn into letting the
attacker overwrite a pointer to a function pointer.

This commit does not modify the documented API. However, it removes
the possibility for users to define their own hash implementations and
use them by building their own md_info.

Changing mbedtls_md_context to contain a md type identifier rather
than a pointer to an info structure would save a few more bytes and a
few more runtime memory accesses, but would be a major API break since
a lot of code uses `const mbedtls_md_info *` to keep track of which
hash is in use.
2019-07-22 11:35:15 +02:00
..
.gitignore
aes.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
aesni.c
arc4.c
aria.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
asn1parse.c
asn1write.c Add new function mbedtls_asn1_write_named_bitstring() 2019-02-28 09:36:30 +00:00
base64.c
bignum.c Merge remote-tracking branch 'origin/pr/2405' into development 2019-04-05 14:08:49 +01:00
blowfish.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
camellia.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ccm.c Merge remote-tracking branch 'origin/pr/2092' into development 2019-04-24 11:17:21 +01:00
chacha20.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
chachapoly.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
cipher_wrap.c Wrap lines at 80 columns 2019-04-02 10:07:28 -07:00
cipher.c Merge remote-tracking branch 'tls/development' into development 2019-04-17 12:12:24 +01:00
cmac.c Merge remote-tracking branch 'public/pr/1390' into development 2018-06-27 10:51:47 +01:00
CMakeLists.txt Don't use dynamic pointer dispatch in md 2019-07-22 11:35:15 +02:00
ctr_drbg.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
des.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
dhm.c Allow DHM selftest to run if MBEDTLS_PEM_PARSE_C is unset 2019-05-31 17:28:59 +01:00
ecdh.c Fix ECDH secret export for Mongomery curves 2019-02-26 16:49:52 +00:00
ecdsa.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ecjpake.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ecp_curves.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
ecp.c Prevent dead code warning 2019-07-04 12:19:47 +02:00
entropy_poll.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
entropy.c
error.c Regenerate errors.c 2019-04-30 16:47:36 +01:00
gcm.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
havege.c Fix minor type choice inconsistency 2019-06-24 15:45:09 +02:00
hkdf.c Fix issue if salt = NULL and salt_len !=0 in mbedtls_hkdf_extract() 2018-07-23 10:34:47 -07:00
hmac_drbg.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
Makefile Don't use dynamic pointer dispatch in md 2019-07-22 11:35:15 +02:00
md2.c
md4.c Add more missing parentheses around macro parameters 2019-02-19 17:59:57 +00:00
md5.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
md.c Don't use dynamic pointer dispatch in md 2019-07-22 11:35:15 +02:00
memory_buffer_alloc.c
nist_kw.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
oid.c Add support for RSA PKCSv1.5 signatures using RIPEMD-160 2019-05-06 12:15:17 -04:00
padlock.c
pem.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pk_wrap.c Fix outdated comment in ecdsa_verify_wrap() 2019-01-29 08:26:15 +00:00
pk.c pk: restructure precondition check 2019-02-05 05:09:05 -05:00
pkcs5.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pkcs12.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pkparse.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pkwrite.c Merge development-psa commit 80b5662 into development-psa-merged branch 2019-02-05 06:02:51 -05:00
platform_util.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
platform.c Merge remote-tracking branch 'origin/pr/1551' into development 2019-01-30 13:24:55 +00:00
poly1305.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
psa_crypto_core.h Support encoding an owner in key file IDs 2019-02-20 12:52:07 +01:00
psa_crypto_invasive.h Add a facility to configure entropy sources 2018-11-23 22:58:38 +01:00
psa_crypto_its.h Fix up ITS header files for internal use in crypto 2019-03-15 11:13:33 +01:00
psa_crypto_service_integration.h Add common header for crypto service integration 2019-02-19 15:09:14 +02:00
psa_crypto_slot_management.c Merge pull request #59 from gilles-peskine-arm/psa-its-64_bit_internal_key_id 2019-02-20 13:45:12 +00:00
psa_crypto_slot_management.h Document some functions in internal headers 2018-12-11 16:48:14 +01:00
psa_crypto_storage.c Enrollment algorithm in policy: implement persistent keys 2019-05-21 17:06:35 +02:00
psa_crypto_storage.h Gate entropy injection through a dedicated configuration option 2019-03-15 11:15:21 +01:00
psa_crypto.c psa: Add NV seed as an entropy source when needed 2019-06-05 11:09:38 +01:00
psa_its_file.c Document rename_replace_existing macro 2019-04-11 14:21:14 +01:00
ripemd160.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
rsa_internal.c Bignum: Deprecate mbedtls_mpi_is_prime() 2018-10-09 16:36:53 +01:00
rsa.c rsa: Enable use of zero-length null output 2019-02-11 03:39:51 -05:00
sha1.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
sha256.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
sha512.c Add more missing parentheses around macro parameters 2019-02-19 17:59:57 +00:00
threading.c Don't declare and define gmtime()-mutex on Windows platforms 2018-09-06 12:09:56 +01:00
timing.c Merge remote-tracking branch 'public/pr/1777' into development-proposed 2018-11-04 18:51:36 +00:00
version_features.c config: Remove X.509 options 2019-04-25 11:46:21 +01:00
version.c
xtea.c