#include <tls_ciphersuite.h>
|
| static const std::vector< Ciphersuite > & | all_known_ciphersuites () |
| static std::optional< Ciphersuite > | by_id (uint16_t suite) |
| static std::optional< Ciphersuite > | from_name (std::string_view name) |
| static bool | is_scsv (uint16_t suite) |
Ciphersuite Information
Definition at line 23 of file tls_ciphersuite.h.
◆ aead_ciphersuite()
| bool Botan::TLS::Ciphersuite::aead_ciphersuite |
( |
| ) |
const |
- Returns
- true if this suite uses a AEAD cipher
Definition at line 99 of file tls_ciphersuite.cpp.
99 {
101}
std::string mac_algo() const
References mac_algo().
◆ all_known_ciphersuites()
| const std::vector< Ciphersuite > & Botan::TLS::Ciphersuite::all_known_ciphersuites |
( |
| ) |
|
|
static |
Generate a static list of all known ciphersuites and return it.
- Returns
- list of all known ciphersuites
Definition at line 344 of file tls_suite_info.cpp.
344 {
345
346
347
348 static const std::vector<Ciphersuite> g_ciphersuite_list = {
349 Ciphersuite(0x000A,
"RSA_WITH_3DES_EDE_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"3DES", 24,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
350 Ciphersuite(0x0016,
"DHE_RSA_WITH_3DES_EDE_CBC_SHA",
Auth_Method::RSA,
Kex_Algo::DH,
"3DES", 24,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
351 Ciphersuite(0x002C,
"PSK_WITH_NULL_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"NULL", 0,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::NULL_CIPHER),
352 Ciphersuite(0x002F,
"RSA_WITH_AES_128_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-128", 16,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
353 Ciphersuite(0x0033,
"DHE_RSA_WITH_AES_128_CBC_SHA",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-128", 16,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
354 Ciphersuite(0x0035,
"RSA_WITH_AES_256_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-256", 32,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
355 Ciphersuite(0x0039,
"DHE_RSA_WITH_AES_256_CBC_SHA",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-256", 32,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
356 Ciphersuite(0x003C,
"RSA_WITH_AES_128_CBC_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-128", 16,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
357 Ciphersuite(0x003D,
"RSA_WITH_AES_256_CBC_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-256", 32,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
358 Ciphersuite(0x0067,
"DHE_RSA_WITH_AES_128_CBC_SHA256",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-128", 16,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
359 Ciphersuite(0x006B,
"DHE_RSA_WITH_AES_256_CBC_SHA256",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-256", 32,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
360 Ciphersuite(0x008B,
"PSK_WITH_3DES_EDE_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"3DES", 24,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
361 Ciphersuite(0x008C,
"PSK_WITH_AES_128_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-128", 16,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
362 Ciphersuite(0x008D,
"PSK_WITH_AES_256_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-256", 32,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
363 Ciphersuite(0x009C,
"RSA_WITH_AES_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
364 Ciphersuite(0x009D,
"RSA_WITH_AES_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
365 Ciphersuite(0x009E,
"DHE_RSA_WITH_AES_128_GCM_SHA256",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
366 Ciphersuite(0x009F,
"DHE_RSA_WITH_AES_256_GCM_SHA384",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
367 Ciphersuite(0x00A8,
"PSK_WITH_AES_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
368 Ciphersuite(0x00A9,
"PSK_WITH_AES_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
369 Ciphersuite(0x00AE,
"PSK_WITH_AES_128_CBC_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-128", 16,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
370 Ciphersuite(0x00AF,
"PSK_WITH_AES_256_CBC_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-256", 32,
"SHA-384", 48,
KDF_Algo::SHA_384,
Nonce_Format::CBC_MODE),
371 Ciphersuite(0x00B0,
"PSK_WITH_NULL_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"NULL", 0,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::NULL_CIPHER),
372 Ciphersuite(0x00B1,
"PSK_WITH_NULL_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"NULL", 0,
"SHA-384", 48,
KDF_Algo::SHA_384,
Nonce_Format::NULL_CIPHER),
373 Ciphersuite(0x1301,
"AES_128_GCM_SHA256",
Auth_Method::UNDEFINED,
Kex_Algo::UNDEFINED,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
374 Ciphersuite(0x1302,
"AES_256_GCM_SHA384",
Auth_Method::UNDEFINED,
Kex_Algo::UNDEFINED,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
375 Ciphersuite(0x1303,
"CHACHA20_POLY1305_SHA256",
Auth_Method::UNDEFINED,
Kex_Algo::UNDEFINED,
"ChaCha20Poly1305", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
376 Ciphersuite(0x1304,
"AES_128_CCM_SHA256",
Auth_Method::UNDEFINED,
Kex_Algo::UNDEFINED,
"AES-128/CCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
377 Ciphersuite(0x1305,
"AES_128_CCM_8_SHA256",
Auth_Method::UNDEFINED,
Kex_Algo::UNDEFINED,
"AES-128/CCM(8)", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
378 Ciphersuite(0xC006,
"ECDHE_ECDSA_WITH_NULL_SHA",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"NULL", 0,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::NULL_CIPHER),
379 Ciphersuite(0xC008,
"ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"3DES", 24,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
380 Ciphersuite(0xC009,
"ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-128", 16,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
381 Ciphersuite(0xC00A,
"ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-256", 32,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
382 Ciphersuite(0xC010,
"ECDHE_RSA_WITH_NULL_SHA",
Auth_Method::RSA,
Kex_Algo::ECDH,
"NULL", 0,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::NULL_CIPHER),
383 Ciphersuite(0xC012,
"ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
Auth_Method::RSA,
Kex_Algo::ECDH,
"3DES", 24,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
384 Ciphersuite(0xC013,
"ECDHE_RSA_WITH_AES_128_CBC_SHA",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-128", 16,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
385 Ciphersuite(0xC014,
"ECDHE_RSA_WITH_AES_256_CBC_SHA",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-256", 32,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
386 Ciphersuite(0xC023,
"ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-128", 16,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
387 Ciphersuite(0xC024,
"ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-256", 32,
"SHA-384", 48,
KDF_Algo::SHA_384,
Nonce_Format::CBC_MODE),
388 Ciphersuite(0xC027,
"ECDHE_RSA_WITH_AES_128_CBC_SHA256",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-128", 16,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
389 Ciphersuite(0xC028,
"ECDHE_RSA_WITH_AES_256_CBC_SHA384",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-256", 32,
"SHA-384", 48,
KDF_Algo::SHA_384,
Nonce_Format::CBC_MODE),
390 Ciphersuite(0xC02B,
"ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
391 Ciphersuite(0xC02C,
"ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
392 Ciphersuite(0xC02F,
"ECDHE_RSA_WITH_AES_128_GCM_SHA256",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
393 Ciphersuite(0xC030,
"ECDHE_RSA_WITH_AES_256_GCM_SHA384",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
394 Ciphersuite(0xC034,
"ECDHE_PSK_WITH_3DES_EDE_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"3DES", 24,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
395 Ciphersuite(0xC035,
"ECDHE_PSK_WITH_AES_128_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-128", 16,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
396 Ciphersuite(0xC036,
"ECDHE_PSK_WITH_AES_256_CBC_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-256", 32,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::CBC_MODE),
397 Ciphersuite(0xC037,
"ECDHE_PSK_WITH_AES_128_CBC_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-128", 16,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::CBC_MODE),
398 Ciphersuite(0xC038,
"ECDHE_PSK_WITH_AES_256_CBC_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-256", 32,
"SHA-384", 48,
KDF_Algo::SHA_384,
Nonce_Format::CBC_MODE),
399 Ciphersuite(0xC039,
"ECDHE_PSK_WITH_NULL_SHA",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"NULL", 0,
"SHA-1", 20,
KDF_Algo::SHA_1,
Nonce_Format::NULL_CIPHER),
400 Ciphersuite(0xC03A,
"ECDHE_PSK_WITH_NULL_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"NULL", 0,
"SHA-256", 32,
KDF_Algo::SHA_256,
Nonce_Format::NULL_CIPHER),
401 Ciphersuite(0xC03B,
"ECDHE_PSK_WITH_NULL_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"NULL", 0,
"SHA-384", 48,
KDF_Algo::SHA_384,
Nonce_Format::NULL_CIPHER),
402 Ciphersuite(0xC050,
"RSA_WITH_ARIA_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"ARIA-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
403 Ciphersuite(0xC051,
"RSA_WITH_ARIA_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"ARIA-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
404 Ciphersuite(0xC052,
"DHE_RSA_WITH_ARIA_128_GCM_SHA256",
Auth_Method::RSA,
Kex_Algo::DH,
"ARIA-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
405 Ciphersuite(0xC053,
"DHE_RSA_WITH_ARIA_256_GCM_SHA384",
Auth_Method::RSA,
Kex_Algo::DH,
"ARIA-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
406 Ciphersuite(0xC05C,
"ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"ARIA-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
407 Ciphersuite(0xC05D,
"ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"ARIA-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
408 Ciphersuite(0xC060,
"ECDHE_RSA_WITH_ARIA_128_GCM_SHA256",
Auth_Method::RSA,
Kex_Algo::ECDH,
"ARIA-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
409 Ciphersuite(0xC061,
"ECDHE_RSA_WITH_ARIA_256_GCM_SHA384",
Auth_Method::RSA,
Kex_Algo::ECDH,
"ARIA-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
410 Ciphersuite(0xC06A,
"PSK_WITH_ARIA_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"ARIA-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
411 Ciphersuite(0xC06B,
"PSK_WITH_ARIA_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"ARIA-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
412 Ciphersuite(0xC07A,
"RSA_WITH_CAMELLIA_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"Camellia-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
413 Ciphersuite(0xC07B,
"RSA_WITH_CAMELLIA_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"Camellia-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
414 Ciphersuite(0xC07C,
"DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
Auth_Method::RSA,
Kex_Algo::DH,
"Camellia-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
415 Ciphersuite(0xC07D,
"DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
Auth_Method::RSA,
Kex_Algo::DH,
"Camellia-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
416 Ciphersuite(0xC086,
"ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"Camellia-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
417 Ciphersuite(0xC087,
"ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"Camellia-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
418 Ciphersuite(0xC08A,
"ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
Auth_Method::RSA,
Kex_Algo::ECDH,
"Camellia-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
419 Ciphersuite(0xC08B,
"ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
Auth_Method::RSA,
Kex_Algo::ECDH,
"Camellia-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
420 Ciphersuite(0xC08E,
"PSK_WITH_CAMELLIA_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"Camellia-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
421 Ciphersuite(0xC08F,
"PSK_WITH_CAMELLIA_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"Camellia-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
422 Ciphersuite(0xC09C,
"RSA_WITH_AES_128_CCM",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-128/CCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
423 Ciphersuite(0xC09D,
"RSA_WITH_AES_256_CCM",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-256/CCM", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
424 Ciphersuite(0xC09E,
"DHE_RSA_WITH_AES_128_CCM",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-128/CCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
425 Ciphersuite(0xC09F,
"DHE_RSA_WITH_AES_256_CCM",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-256/CCM", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
426 Ciphersuite(0xC0A0,
"RSA_WITH_AES_128_CCM_8",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-128/CCM(8)", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
427 Ciphersuite(0xC0A1,
"RSA_WITH_AES_256_CCM_8",
Auth_Method::IMPLICIT,
Kex_Algo::STATIC_RSA,
"AES-256/CCM(8)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
428 Ciphersuite(0xC0A2,
"DHE_RSA_WITH_AES_128_CCM_8",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-128/CCM(8)", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
429 Ciphersuite(0xC0A3,
"DHE_RSA_WITH_AES_256_CCM_8",
Auth_Method::RSA,
Kex_Algo::DH,
"AES-256/CCM(8)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
430 Ciphersuite(0xC0A4,
"PSK_WITH_AES_128_CCM",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-128/CCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
431 Ciphersuite(0xC0A5,
"PSK_WITH_AES_256_CCM",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-256/CCM", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
432 Ciphersuite(0xC0A8,
"PSK_WITH_AES_128_CCM_8",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-128/CCM(8)", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
433 Ciphersuite(0xC0A9,
"PSK_WITH_AES_256_CCM_8",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-256/CCM(8)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
434 Ciphersuite(0xC0AC,
"ECDHE_ECDSA_WITH_AES_128_CCM",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-128/CCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
435 Ciphersuite(0xC0AD,
"ECDHE_ECDSA_WITH_AES_256_CCM",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-256/CCM", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
436 Ciphersuite(0xC0AE,
"ECDHE_ECDSA_WITH_AES_128_CCM_8",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-128/CCM(8)", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
437 Ciphersuite(0xC0AF,
"ECDHE_ECDSA_WITH_AES_256_CCM_8",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-256/CCM(8)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
438 Ciphersuite(0xCCA8,
"ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
Auth_Method::RSA,
Kex_Algo::ECDH,
"ChaCha20Poly1305", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
439 Ciphersuite(0xCCA9,
"ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"ChaCha20Poly1305", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
440 Ciphersuite(0xCCAA,
"DHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
Auth_Method::RSA,
Kex_Algo::DH,
"ChaCha20Poly1305", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
441 Ciphersuite(0xCCAB,
"PSK_WITH_CHACHA20_POLY1305_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"ChaCha20Poly1305", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
442 Ciphersuite(0xCCAC,
"ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"ChaCha20Poly1305", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
443 Ciphersuite(0xD001,
"ECDHE_PSK_WITH_AES_128_GCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-128/GCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
444 Ciphersuite(0xD002,
"ECDHE_PSK_WITH_AES_256_GCM_SHA384",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-256/GCM", 32,
"AEAD", 0,
KDF_Algo::SHA_384,
Nonce_Format::AEAD_IMPLICIT_4),
445 Ciphersuite(0xD003,
"ECDHE_PSK_WITH_AES_128_CCM_8_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-128/CCM(8)", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
446 Ciphersuite(0xD005,
"ECDHE_PSK_WITH_AES_128_CCM_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-128/CCM", 16,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_IMPLICIT_4),
447 Ciphersuite(0xFFC3,
"ECDHE_RSA_WITH_AES_256_OCB_SHA256",
Auth_Method::RSA,
Kex_Algo::ECDH,
"AES-256/OCB(12)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
448 Ciphersuite(0xFFC5,
"ECDHE_ECDSA_WITH_AES_256_OCB_SHA256",
Auth_Method::ECDSA,
Kex_Algo::ECDH,
"AES-256/OCB(12)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
449 Ciphersuite(0xFFC7,
"PSK_WITH_AES_256_OCB_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::PSK,
"AES-256/OCB(12)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
450 Ciphersuite(0xFFCB,
"ECDHE_PSK_WITH_AES_256_OCB_SHA256",
Auth_Method::IMPLICIT,
Kex_Algo::ECDHE_PSK,
"AES-256/OCB(12)", 32,
"AEAD", 0,
KDF_Algo::SHA_256,
Nonce_Format::AEAD_XOR_12),
451 };
452
453
454
455 return g_ciphersuite_list;
456}
References Botan::TLS::AEAD_IMPLICIT_4, Botan::TLS::AEAD_XOR_12, Botan::TLS::CBC_MODE, Botan::TLS::DH, Botan::TLS::ECDH, Botan::TLS::ECDHE_PSK, Botan::TLS::ECDSA, Botan::TLS::IMPLICIT, Botan::TLS::NULL_CIPHER, Botan::TLS::PSK, Botan::TLS::RSA, Botan::TLS::SHA_1, Botan::TLS::SHA_256, Botan::TLS::SHA_384, Botan::TLS::STATIC_RSA, and Botan::TLS::UNDEFINED.
Referenced by by_id(), Botan::TLS::Policy::ciphersuite_list(), and from_name().
◆ auth_method()
| Auth_Method Botan::TLS::Ciphersuite::auth_method |
( |
| ) |
const |
|
inline |
◆ by_id()
| std::optional< Ciphersuite > Botan::TLS::Ciphersuite::by_id |
( |
uint16_t | suite | ) |
|
|
static |
◆ cbc_ciphersuite()
| bool Botan::TLS::Ciphersuite::cbc_ciphersuite |
( |
| ) |
const |
◆ cipher_algo()
| std::string Botan::TLS::Ciphersuite::cipher_algo |
( |
| ) |
const |
|
inline |
◆ cipher_keylen()
| size_t Botan::TLS::Ciphersuite::cipher_keylen |
( |
| ) |
const |
|
inline |
◆ ciphersuite_code()
| uint16_t Botan::TLS::Ciphersuite::ciphersuite_code |
( |
| ) |
const |
|
inline |
◆ ecc_ciphersuite()
| bool Botan::TLS::Ciphersuite::ecc_ciphersuite |
( |
| ) |
const |
◆ from_name()
| std::optional< Ciphersuite > Botan::TLS::Ciphersuite::from_name |
( |
std::string_view | name | ) |
|
|
static |
Convert an SSL/TLS ciphersuite name to algorithm fields
- Parameters
-
| name | the IANA name for the desired ciphersuite |
- Returns
- ciphersuite object or std::nullopt if it is unknown to the library
Definition at line 122 of file tls_ciphersuite.cpp.
122 {
124
125 for(const auto& suite : all_suites) {
126 if(suite.to_string() == name) {
127 return suite;
128 }
129 }
130
131 return std::nullopt;
132}
References all_known_ciphersuites().
◆ is_certificate_required()
| bool Botan::TLS::Ciphersuite::is_certificate_required |
( |
| ) |
const |
- Returns
- true if this ciphersuite requires the server to present a certificate. True for both signature-authenticated suites and static RSA key exchange (which uses the server's RSA cert for key transport).
Definition at line 107 of file tls_ciphersuite.cpp.
107 {
109}
bool signature_used() const
References kex_method(), signature_used(), and Botan::TLS::STATIC_RSA.
◆ is_scsv()
| bool Botan::TLS::Ciphersuite::is_scsv |
( |
uint16_t | suite | ) |
|
|
static |
Returns true iff this suite is a known SCSV
Definition at line 46 of file tls_ciphersuite.cpp.
46 {
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 return (suite == 0x00FF || suite == 0x5600);
67}
◆ kex_algo()
| std::string Botan::TLS::Ciphersuite::kex_algo |
( |
| ) |
const |
|
inline |
◆ kex_method()
| Kex_Algo Botan::TLS::Ciphersuite::kex_method |
( |
| ) |
const |
|
inline |
◆ mac_algo()
| std::string Botan::TLS::Ciphersuite::mac_algo |
( |
| ) |
const |
|
inline |
◆ mac_keylen()
| size_t Botan::TLS::Ciphersuite::mac_keylen |
( |
| ) |
const |
|
inline |
◆ nonce_bytes_from_handshake()
| size_t Botan::TLS::Ciphersuite::nonce_bytes_from_handshake |
( |
| ) |
const |
◆ nonce_bytes_from_record()
| size_t Botan::TLS::Ciphersuite::nonce_bytes_from_record |
( |
Protocol_Version | version | ) |
const |
◆ nonce_format()
| Nonce_Format Botan::TLS::Ciphersuite::nonce_format |
( |
| ) |
const |
|
inline |
◆ null_ciphersuite()
| bool Botan::TLS::Ciphersuite::null_ciphersuite |
( |
| ) |
const |
◆ operator<() [1/2]
| bool Botan::TLS::Ciphersuite::operator< |
( |
const Ciphersuite & | o | ) |
const |
|
inline |
◆ operator<() [2/2]
| bool Botan::TLS::Ciphersuite::operator< |
( |
const uint16_t | c | ) |
const |
|
inline |
◆ prf_algo()
| std::string Botan::TLS::Ciphersuite::prf_algo |
( |
| ) |
const |
|
inline |
◆ psk_ciphersuite()
| bool Botan::TLS::Ciphersuite::psk_ciphersuite |
( |
| ) |
const |
◆ sig_algo()
| std::string Botan::TLS::Ciphersuite::sig_algo |
( |
| ) |
const |
|
inline |
◆ signature_used()
| bool Botan::TLS::Ciphersuite::signature_used |
( |
| ) |
const |
◆ to_string()
| std::string Botan::TLS::Ciphersuite::to_string |
( |
| ) |
const |
|
inline |
Formats the ciphersuite back to an RFC-style ciphersuite string
e.g "RSA_WITH_RC4_128_SHA" or "ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- Returns
- RFC ciphersuite string identifier
Definition at line 57 of file tls_ciphersuite.h.
57{ return (m_iana_id == nullptr) ? "unknown cipher suite" : m_iana_id; }
◆ usable_in_version()
| bool Botan::TLS::Ciphersuite::usable_in_version |
( |
Protocol_Version | version | ) |
const |
◆ valid()
| bool Botan::TLS::Ciphersuite::valid |
( |
| ) |
const |
|
inline |
The documentation for this class was generated from the following files: