mbedtls/library
Hanno Becker 7177a88a36 Introduce helper function to determine whether suite uses server CRT
This commit introduces a static helper function

   `mbedtls_ssl_ciphersuite_uses_srv_cert()`

which determines whether a ciphersuite may make use of server-side CRTs.

This function is in turn uses in `mbedtls_ssl_parse_certificate()` to
skip certificate parsing for ciphersuites which don't involve CRTs.

Note: Ciphersuites not using server-side CRTs don't allow client-side CRTs
either, so it is safe to guard `mbedtls_ssl_{parse/write}_certificate()`
this way.

Note: Previously, the code uses a positive check over the suites

- MBEDTLS_KEY_EXCHANGE_PSK
- MBEDTLS_KEY_EXCHANGE_DHE_PSK
- MBEDTLS_KEY_EXCHANGE_ECDHE_PSK
- MBEDTLS_KEY_EXCHANGE_ECJPAKE,

while now, it uses a negative check over `mbedtls_ssl_ciphersuite_uses_srv_cert()`,
which checks for the suites

- MBEDTLS_KEY_EXCHANGE_RSA
- MBEDTLS_KEY_EXCHANGE_RSA_PSK
- MBEDTLS_KEY_EXCHANGE_DHE_RSA
- MBEDTLS_KEY_EXCHANGE_ECDH_RSA
- MBEDTLS_KEY_EXCHANGE_ECDHE_RSA
- MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA
- MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA

This is equivalent since, together, those are all ciphersuites.
Quoting ssl_ciphersuites.h:

```
typedef enum {
    MBEDTLS_KEY_EXCHANGE_NONE = 0,
    MBEDTLS_KEY_EXCHANGE_RSA,
    MBEDTLS_KEY_EXCHANGE_DHE_RSA,
    MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
    MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
    MBEDTLS_KEY_EXCHANGE_PSK,
    MBEDTLS_KEY_EXCHANGE_DHE_PSK,
    MBEDTLS_KEY_EXCHANGE_RSA_PSK,
    MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
    MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
    MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
    MBEDTLS_KEY_EXCHANGE_ECJPAKE,
} mbedtls_key_exchange_type_t;
```
2019-02-26 14:38:09 +00:00
..
.gitignore
aes.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05: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 Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
base64.c
bignum.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05: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 development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
certs.c
chacha20.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
chachapoly.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
cipher_wrap.c Fix style in NUM_CIPHERS definition in cipher_wrap.c 2018-11-22 14:03:39 +00:00
cipher.c Initialize PSA Crypto operation contexts 2019-02-20 10:58:55 +00:00
cmac.c
CMakeLists.txt Merge development commit f352f7 into development-psa 2019-02-01 07:03:03 -05:00
ctr_drbg.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
debug.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
des.c
dhm.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ecdh.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05: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 Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ecp.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
entropy_poll.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
entropy.c
error.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
gcm.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
havege.c
hkdf.c
hmac_drbg.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
Makefile Merge development commit f352f7 into development-psa 2019-02-01 07:03:03 -05:00
md2.c
md4.c
md5.c
md_wrap.c
md.c
memory_buffer_alloc.c
net_sockets.c
nist_kw.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
oid.c
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
pkcs11.c
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 Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ripemd160.c
rsa_internal.c
rsa.c rsa: Enable use of zero-length null output 2019-02-11 03:39:51 -05:00
sha1.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
sha256.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
sha512.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ssl_cache.c
ssl_ciphersuites.c
ssl_cli.c Merge remote-tracking branch 'origin/pr/2338' into development 2019-02-22 12:55:30 +00:00
ssl_cookie.c
ssl_srv.c Merge development commit f352f7 into development-psa 2019-02-01 07:03:03 -05:00
ssl_ticket.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ssl_tls.c Introduce helper function to determine whether suite uses server CRT 2019-02-26 14:38:09 +00:00
threading.c
timing.c
version_features.c Update version_features file 2019-02-08 02:38:45 -05:00
version.c
x509_create.c
x509_crl.c
x509_crt.c Merge remote-tracking branch 'origin/pr/2454' into development 2019-02-22 10:32:44 +00:00
x509_csr.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
x509.c Fix #2370, minor typos and spelling mistakes 2019-01-24 10:37:40 +01:00
x509write_crt.c
x509write_csr.c Initialize PSA Crypto operation contexts 2019-02-20 10:58:55 +00:00
xtea.c