XenevaOS
Loading...
Searching...
No Matches
ssl_ciphersuites_internal.h
Go to the documentation of this file.
1
6/*
7 * Copyright The Mbed TLS Contributors
8 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9 */
10#ifndef MBEDTLS_SSL_CIPHERSUITES_INTERNAL_H
11#define MBEDTLS_SSL_CIPHERSUITES_INTERNAL_H
12
13#include "mbedtls/pk.h"
14
15#if defined(MBEDTLS_PK_C)
16mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info);
17#if defined(MBEDTLS_USE_PSA_CRYPTO)
18psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info);
19psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info);
20#endif /* MBEDTLS_USE_PSA_CRYPTO */
21mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info);
22#endif /* MBEDTLS_PK_C */
23
26
27#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED)
28static inline int mbedtls_ssl_ciphersuite_has_pfs(const mbedtls_ssl_ciphersuite_t *info)
29{
30 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
37 return 1;
38
39 default:
40 return 0;
41 }
42}
43#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED */
44
45#if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED)
46static inline int mbedtls_ssl_ciphersuite_no_pfs(const mbedtls_ssl_ciphersuite_t *info)
47{
48 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
54 return 1;
55
56 default:
57 return 0;
58 }
59}
60#endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */
61
62#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED)
63static inline int mbedtls_ssl_ciphersuite_uses_ecdh(const mbedtls_ssl_ciphersuite_t *info)
64{
65 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
68 return 1;
69
70 default:
71 return 0;
72 }
73}
74#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED */
75
76static inline int mbedtls_ssl_ciphersuite_cert_req_allowed(const mbedtls_ssl_ciphersuite_t *info)
77{
78 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
85 return 1;
86
87 default:
88 return 0;
89 }
90}
91
92static inline int mbedtls_ssl_ciphersuite_uses_srv_cert(const mbedtls_ssl_ciphersuite_t *info)
93{
94 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
102 return 1;
103
104 default:
105 return 0;
106 }
107}
108
109#if defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED)
110static inline int mbedtls_ssl_ciphersuite_uses_dhe(const mbedtls_ssl_ciphersuite_t *info)
111{
112 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
115 return 1;
116
117 default:
118 return 0;
119 }
120}
121#endif /* MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED) */
122
123#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
124static inline int mbedtls_ssl_ciphersuite_uses_ecdhe(const mbedtls_ssl_ciphersuite_t *info)
125{
126 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
130 return 1;
131
132 default:
133 return 0;
134 }
135}
136#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) */
137
138#if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED)
139static inline int mbedtls_ssl_ciphersuite_uses_server_signature(
140 const mbedtls_ssl_ciphersuite_t *info)
141{
142 switch (info->MBEDTLS_PRIVATE(key_exchange)) {
146 return 1;
147
148 default:
149 return 0;
150 }
151}
152#endif /* MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED */
153
154#endif /* MBEDTLS_SSL_CIPHERSUITES_INTERNAL_H */
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition crypto_types.h:134
uint32_t psa_key_usage_t
Encoding of permitted usage on a key.
Definition crypto_types.h:323
Public Key abstraction layer.
mbedtls_pk_type_t
Public key types.
Definition pk.h:73
@ MBEDTLS_KEY_EXCHANGE_PSK
Definition ssl_ciphersuites.h:263
@ MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA
Definition ssl_ciphersuites.h:268
@ MBEDTLS_KEY_EXCHANGE_DHE_PSK
Definition ssl_ciphersuites.h:264
@ MBEDTLS_KEY_EXCHANGE_DHE_RSA
Definition ssl_ciphersuites.h:260
@ MBEDTLS_KEY_EXCHANGE_ECDH_RSA
Definition ssl_ciphersuites.h:267
@ MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA
Definition ssl_ciphersuites.h:262
@ MBEDTLS_KEY_EXCHANGE_RSA
Definition ssl_ciphersuites.h:259
@ MBEDTLS_KEY_EXCHANGE_ECJPAKE
Definition ssl_ciphersuites.h:269
@ MBEDTLS_KEY_EXCHANGE_RSA_PSK
Definition ssl_ciphersuites.h:265
@ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK
Definition ssl_ciphersuites.h:266
@ MBEDTLS_KEY_EXCHANGE_ECDHE_RSA
Definition ssl_ciphersuites.h:261
int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info)
int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info)
This structure is used for storing ciphersuite information.
Definition ssl_ciphersuites.h:448