mbedtls/include/mbedtls
Hanno Becker 2ba9fbdfe9 Allow multiple concurrent readers for X.509 CRT frame and PK context
Previously, only one thread could access the parsing cache of an X.509 CRT
at a time. Firstly, this leads to significant performance penalties on
systems running many concurrent threads which share CRT structures --
for example, server threads sharing an SSL configuration containing the
server CRT. Secondly, the locking should be logically unnecessary, because
the threads are supposed to access the CRT frame and PK in a read-only,
or at least thread-safe manner.

This commit modifies the X.509 CRT cache implementation by allowing an
arbitrary number of concurrent readers, locking only the path of setting
up and clearing the cache.
2019-06-25 09:10:57 +01:00
..
aes.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
aesni.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
arc4.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
aria.h Leave behaviour on NULL input unspecified in ARIA 2018-12-19 12:51:00 +00:00
asn1.h Fix spacing in declaration of mbedtls_asn1_get_sequence_of() 2019-06-25 09:10:57 +01:00
asn1write.h Improve macro hygiene 2019-04-24 10:51:54 +02:00
base64.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
bignum.h Improve macro hygiene 2019-04-24 10:51:54 +02:00
blowfish.h Minor Blowfish documentation improvements 2018-12-19 15:48:37 +00:00
bn_mul.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
camellia.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
ccm.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
certs.h Document origin of hardcoded certificates in library/certs.c 2019-05-30 10:27:49 +01:00
chacha20.h Minor improvements to ChaCha20/Poly1305/ChaChaPoly documentation 2018-12-18 15:30:30 +00:00
chachapoly.h Minor improvements to ChaCha20/Poly1305/ChaChaPoly documentation 2018-12-18 15:30:30 +00:00
check_config.h Use consistent error messages in check_config.h 2019-06-19 14:59:42 +01:00
cipher.h Fix include file path 2018-12-28 11:11:10 +08:00
cipher_internal.h Move definition to cipher.h 2018-07-01 10:22:53 +03:00
cmac.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
compat-1.3.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
config.h Introduce compile-time option to always flush X.509 CRT caches 2019-06-25 09:07:16 +01:00
ctr_drbg.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
debug.h Rename MBEDTLS_X509_INFO to !MBEDTLS_X509_REMOVE_INFO 2019-06-18 11:05:44 +01:00
des.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
dhm.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
ecdh.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
ecdsa.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
ecjpake.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
ecp.h Fix typo in documentation 2019-02-21 16:58:20 +01:00
ecp_internal.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
entropy.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
entropy_poll.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
error.h Introduce specific error for ver/cfg mismatch on deserialization 2019-06-03 13:01:21 +01:00
gcm.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
havege.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
hkdf.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
hmac_drbg.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
md.h Provide standalone version of ssl_decrypt_buf 2019-04-29 12:13:25 +02:00
md2.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
md4.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
md5.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
md_internal.h Merge remote-tracking branch 'upstream-public/pr/1294' into development 2018-01-25 14:47:39 +00:00
memory_buffer_alloc.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
net.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
net_sockets.h Merge remote-tracking branch 'upstream-public/pr/1861' into development 2018-08-10 11:17:14 +01:00
nist_kw.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
oid.h Rename MBEDTLS_X509_INFO to !MBEDTLS_X509_REMOVE_INFO 2019-06-18 11:05:44 +01:00
padlock.h Improve macro hygiene 2019-04-24 10:51:54 +02:00
pem.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
pk.h PK: document context validity requirements 2018-12-19 18:10:03 +01:00
pk_internal.h Merge branch 'development' into iotssl-1260-non-blocking-ecc-restricted 2018-06-13 09:52:54 +02:00
pkcs5.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
pkcs11.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
pkcs12.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
platform.h Add common feature unavailable error 2018-11-09 13:57:37 +00:00
platform_time.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
platform_util.h Fix include file path 2018-12-28 11:11:10 +08:00
poly1305.h Fix include file path 2018-12-28 11:11:10 +08:00
ripemd160.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
rsa.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
rsa_internal.h Merge remote-tracking branch 'upstream-public/pr/1457' into development-proposed 2018-04-04 09:19:27 +02:00
sha1.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
sha256.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
sha512.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
ssl.h Remove CRT digest from SSL session if !RENEGO + !KEEP_PEER_CERT 2019-06-19 16:56:51 +01:00
ssl_cache.h Remove peer CRT from mbedtls_ssl_session if !KEEP_PEER_CERT 2019-06-19 10:25:01 +01:00
ssl_ciphersuites.h Introduce helper function to determine whether suite uses server CRT 2019-06-19 10:25:01 +01:00
ssl_cookie.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
ssl_internal.h Fix indentation of Doxygen comment in ssl_internal.h 2019-06-19 10:26:50 +01:00
ssl_ticket.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
threading.h Deprecate hardware acceleration errors 2018-11-09 15:01:07 +00:00
timing.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
version.h Update library version to 2.16.1 2019-03-19 16:20:02 +00:00
x509.h Add ASN.1 API to free linked list representation of ASN.1 sequences 2019-06-25 09:10:57 +01:00
x509_crl.h Solely use raw X.509 name data references including SEQUENCE header 2019-06-25 09:07:16 +01:00
x509_crt.h Allow multiple concurrent readers for X.509 CRT frame and PK context 2019-06-25 09:10:57 +01:00
x509_csr.h Address review comments 2019-06-18 11:05:44 +01:00
x509_internal.h Allow multiple concurrent readers for X.509 CRT frame and PK context 2019-06-25 09:10:57 +01:00
xtea.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00