mbedtls/library
Hanno Becker 1292c35c03 Add config.h option to hardcode choice of single MD algorithm
This commit introduces the configuration option

  MBEDTLS_MD_SINGLE_HASH

which can be used to hardcode support for a single digest algorithm
at compile-time, at the benefit of reduced code-size.

To use, it needs to be defined to evaluate to a macro of the form
MBEDTLS_MD_INFO_{DIGEST}, and macros MBEDTLS_MD_INFO_{DIGEST}_FIELD
must be defined, giving rise to the various aspects (name, type,
size, ...) of the chosen digest algorithm. MBEDTLS_MD_INFO_SHA256
provides an example, but other algorithms can be added if needed.

At the moment, the effect of using MBEDTLS_MD_SINGLE_HASH is that
the implementation of the MD API (e.g. mbedtls_md_update()) need no
longer to through the abstraction of the mbedtls_md_info structures
by calling their corresponding function pointers fields (akin to
virtual functions in C++), but the directly call the corresponding
core digest function (such as mbedtls_sha256_update()).

Therefore, MBEDTLS_MD_SINGLE_HASH so far removes the second layer
of indirection in the chain

  User calls MD API -> MD API calls underlying digest impl'n
                    -> Core digest impl'n does the actual work,

but the first indirection remains, as the MD API remains untouched
and cannot yet be inlined. Studying to what extend inlining the
shortened MD API implementations would lead to further code-savings
is left for a later commit.
2019-09-09 09:45:57 +01:00
..
.gitignore
aes.c
aesni.c
arc4.c
aria.c
asn1parse.c
asn1write.c
base64.c
bignum.c
blowfish.c
camellia.c
ccm.c
certs.c Fixup certs.c: Remove redundant TinyCrypt guard 2019-09-04 16:19:49 +01:00
chacha20.c
chachapoly.c
cipher_wrap.c
cipher.c
cmac.c
CMakeLists.txt Inline md_wrap.c in md.c 2019-09-09 09:45:57 +01:00
ctr_drbg.c
debug.c
des.c
dhm.c
ecdh.c
ecdsa.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
ecjpake.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
ecp_curves.c
ecp.c
entropy_poll.c
entropy.c
error.c
gcm.c
havege.c
hkdf.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
hmac_drbg.c Introduce getter for MD handle from MD context 2019-09-09 09:45:57 +01:00
Makefile Inline md_wrap.c in md.c 2019-09-09 09:45:57 +01:00
md2.c
md4.c
md5.c
md.c Add config.h option to hardcode choice of single MD algorithm 2019-09-09 09:45:57 +01:00
memory_buffer_alloc.c
net_sockets.c
nist_kw.c
oid.c Fixup: Add missing TinyCrypt guards 2019-09-04 16:17:45 +01:00
padlock.c
pem.c
pk_wrap.c Fixup TinyCrypt PK wrap: Check TinyCrypt signature return code 2019-09-04 16:19:49 +01:00
pk.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
pkcs5.c Introduce getter for MD handle from MD context 2019-09-09 09:45:57 +01:00
pkcs11.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
pkcs12.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
pkparse.c Fixup TinyCrypt PK parse: Correct function name in comment 2019-09-04 16:19:49 +01:00
pkwrite.c Fixup: Add missing TinyCrypt guards 2019-09-04 16:17:45 +01:00
platform_util.c
platform.c
poly1305.c
ripemd160.c
rsa_internal.c
rsa.c Introduce getter for MD handle from MD context 2019-09-09 09:45:57 +01:00
sha1.c
sha256.c Completely ignore is224 if SHA-224 is disabled 2019-09-09 10:21:30 +02:00
sha512.c
ssl_cache.c Remove compression field from SSL session if compression disabled 2019-08-01 10:11:20 +02:00
ssl_ciphersuites.c Fixup: Add missing TinyCrypt guards 2019-09-04 16:17:45 +01:00
ssl_cli.c TinyCrypt ECDHE-PSK: Implement ClientKeyExchange writing 2019-09-04 16:19:49 +01:00
ssl_cookie.c Remove dependency of ssl_cookie on SHA-224 2019-09-09 10:21:30 +02:00
ssl_srv.c TinyCrypt ECDHE-PSK: Implement CliKeyExchange parsing 2019-09-04 16:19:49 +01:00
ssl_ticket.c
ssl_tls.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
threading.c
timing.c
version_features.c Add MBEDTLS_SHA256_NO_SHA244 option (unimplemented) 2019-09-09 09:06:56 +02:00
version.c
x509_create.c
x509_crl.c
x509_crt.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
x509_csr.c
x509.c Introduce MD handle type 2019-09-09 09:45:57 +01:00
x509write_crt.c
x509write_csr.c
xtea.c