mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 13:05:38 +01:00
c4e4210aab
Recall that in the default configuration, Mbed TLS provides access digest implementations through two layers of indirection: 1) Call of MD API (e.g. mbedtls_md_update()) 2) Call of function pointer from MD info structure 3) Actual digest implementation (e.g. mbedtls_sha256_update()). Ideally, if only a single digest is enabled - say SHA-256 - then calling mbedtls_md_update() should _directly_ jump to mbedtls_sha256_update(), with both layers of indirection removed. So far, however, setting MBEDTLS_MD_SINGLE_HASH will only remove the second - function pointer - layer of indirection, while keeping the non-inlined stub implementations of e.g. mbedtls_md_update() around. This commit is a step towards allowing to define implementations of the MD API as `static inline` in case we know that they are so small that they should be defined in md.h and not in md.c. In a nutshell, the approach is as follows: For an MD API function mbedtls_md_xxx() that should be inlin-able, introduce its implementation as a `static inline` wrapper `mbedtls_md_xxx_internal()` in md.h, and then define mbedtls_md_xxx() either in md.h or in md.c, by just calling mbedtls_md_xxx_internal(). Moving the implementations of those MD API functions that should be inlinable to md.h requires the presence of both the MD info struct and all specific digest wrapper functions in md.h, and this is what this commit ensures, by moving them from md.c into a new internal header file md_internal.h. Implementing the aforementioned wrappers for those MD API that should be inlinable is left for subsequent commits. |
||
---|---|---|
.. | ||
.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 | ||
chacha20.c | ||
chachapoly.c | ||
cipher_wrap.c | ||
cipher.c | ||
cmac.c | ||
CMakeLists.txt | ||
ctr_drbg.c | ||
debug.c | ||
des.c | ||
dhm.c | ||
ecdh.c | ||
ecdsa.c | ||
ecjpake.c | ||
ecp_curves.c | ||
ecp.c | ||
entropy_poll.c | ||
entropy.c | ||
error.c | ||
gcm.c | ||
havege.c | ||
hkdf.c | ||
hmac_drbg.c | ||
Makefile | ||
md2.c | ||
md4.c | ||
md5.c | ||
md.c | ||
memory_buffer_alloc.c | ||
net_sockets.c | ||
nist_kw.c | ||
oid.c | ||
padlock.c | ||
pem.c | ||
pk_wrap.c | ||
pk.c | ||
pkcs5.c | ||
pkcs11.c | ||
pkcs12.c | ||
pkparse.c | ||
pkwrite.c | ||
platform_util.c | ||
platform.c | ||
poly1305.c | ||
ripemd160.c | ||
rsa_internal.c | ||
rsa.c | ||
sha1.c | ||
sha256.c | ||
sha512.c | ||
ssl_cache.c | ||
ssl_ciphersuites.c | ||
ssl_cli.c | ||
ssl_cookie.c | ||
ssl_srv.c | ||
ssl_ticket.c | ||
ssl_tls.c | ||
threading.c | ||
timing.c | ||
version_features.c | ||
version.c | ||
x509_create.c | ||
x509_crl.c | ||
x509_crt.c | ||
x509_csr.c | ||
x509.c | ||
x509write_crt.c | ||
x509write_csr.c | ||
xtea.c |