diff --git a/.trivyignore b/.trivyignore new file mode 100644 index 0000000..e69de29 diff --git a/cmd/doc.go b/cmd/doc.go index bb7b932..40a5aef 100644 --- a/cmd/doc.go +++ b/cmd/doc.go @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/cmd/docs.go b/cmd/docs.go index 4df7db6..2ad3cef 100644 --- a/cmd/docs.go +++ b/cmd/docs.go @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/cmd/hasher.go b/cmd/hasher.go.bak similarity index 98% rename from cmd/hasher.go rename to cmd/hasher.go.bak index 1ab3afe..9b23d83 100644 --- a/cmd/hasher.go +++ b/cmd/hasher.go.bak @@ -1,4 +1,4 @@ -// Copyright 2023-2024, Northwood Labs +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/cmd/root.go b/cmd/root.go index 11efc97..56ffef4 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/cmd/version.go b/cmd/version.go index 99e8f15..3743e18 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/cs.json b/cs.json new file mode 100644 index 0000000..44542d9 --- /dev/null +++ b/cs.json @@ -0,0 +1 @@ +{"ciphersuites": [{"TLS_AES_128_CCM_8_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x13", "hex_byte_2": "0x05", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.3"]}}, {"TLS_AES_128_CCM_SHA256": {"gnutls_name": "", "openssl_name": "TLS_AES_128_CCM_SHA256", "hex_byte_1": "0x13", "hex_byte_2": "0x04", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.3"]}}, {"TLS_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "TLS_AES_128_GCM_SHA256", "hex_byte_1": "0x13", "hex_byte_2": "0x01", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.3"]}}, {"TLS_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "TLS_AES_256_GCM_SHA384", "hex_byte_1": "0x13", "hex_byte_2": "0x02", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "recommended", "tls_version": ["TLS1.3"]}}, {"TLS_CHACHA20_POLY1305_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x13", "hex_byte_2": "0x03", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.3"]}}, {"TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x19", "protocol_version": "TLS EXPORT", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "DES40 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_EXPORT_WITH_RC4_40_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x17", "protocol_version": "TLS EXPORT", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "RC4 40", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_DH_ANON_3DES_EDE_CBC_SHA1", "openssl_name": "ADH-DES-CBC3-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x1B", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_DH_ANON_AES_128_CBC_SHA1", "openssl_name": "ADH-AES128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x34", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_DH_ANON_AES_128_CBC_SHA256", "openssl_name": "ADH-AES128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x6C", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_DH_ANON_AES_128_GCM_SHA256", "openssl_name": "ADH-AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xA6", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_DH_ANON_AES_256_CBC_SHA1", "openssl_name": "ADH-AES256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x3A", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_AES_256_CBC_SHA256": {"gnutls_name": "TLS_DH_ANON_AES_256_CBC_SHA256", "openssl_name": "ADH-AES256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x6D", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_DH_ANON_AES_256_GCM_SHA384", "openssl_name": "ADH-AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xA7", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x46", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x5A", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x47", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x5B", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA": {"gnutls_name": "TLS_DH_ANON_CAMELLIA_128_CBC_SHA1", "openssl_name": "ADH-CAMELLIA128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x46", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_DH_ANON_CAMELLIA_128_CBC_SHA256", "openssl_name": "ADH-CAMELLIA128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xBF", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_DH_ANON_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x84", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA": {"gnutls_name": "TLS_DH_ANON_CAMELLIA_256_CBC_SHA1", "openssl_name": "ADH-CAMELLIA256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x89", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256": {"gnutls_name": "TLS_DH_ANON_CAMELLIA_256_CBC_SHA256", "openssl_name": "ADH-CAMELLIA256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xC5", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_DH_ANON_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x85", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x1A", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_RC4_128_MD5": {"gnutls_name": "TLS_DH_ANON_ARCFOUR_128_MD5", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x18", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "RC4 128", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_anon_WITH_SEED_CBC_SHA": {"gnutls_name": "", "openssl_name": "ADH-SEED-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x9B", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "anon", "enc_algorithm": "SEED CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x0B", "protocol_version": "TLS EXPORT", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "DES40 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x0D", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_AES_128_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x30", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_AES_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x3E", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xA4", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_AES_256_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x36", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_AES_256_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x68", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xA5", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x3E", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x58", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x3F", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x59", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x42", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xBB", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x82", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x85", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xC1", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x83", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x0C", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_DSS_WITH_SEED_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x97", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "DSS", "enc_algorithm": "SEED CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x11", "protocol_version": "TLS EXPORT", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "DES40 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_DHE_DSS_3DES_EDE_CBC_SHA1", "openssl_name": "DHE-DSS-DES-CBC3-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x13", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_DHE_DSS_AES_128_CBC_SHA1", "openssl_name": "DHE-DSS-AES128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x32", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_DHE_DSS_AES_128_CBC_SHA256", "openssl_name": "DHE-DSS-AES128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x40", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_DHE_DSS_AES_128_GCM_SHA256", "openssl_name": "DHE-DSS-AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xA2", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_DHE_DSS_AES_256_CBC_SHA1", "openssl_name": "DHE-DSS-AES256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x38", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_AES_256_CBC_SHA256": {"gnutls_name": "TLS_DHE_DSS_AES_256_CBC_SHA256", "openssl_name": "DHE-DSS-AES256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x6A", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_DHE_DSS_AES_256_GCM_SHA384", "openssl_name": "DHE-DSS-AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xA3", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x42", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x56", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x43", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x57", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA": {"gnutls_name": "TLS_DHE_DSS_CAMELLIA_128_CBC_SHA1", "openssl_name": "DHE-DSS-CAMELLIA128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x44", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_DHE_DSS_CAMELLIA_128_CBC_SHA256", "openssl_name": "DHE-DSS-CAMELLIA128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xBD", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_DHE_DSS_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x80", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA": {"gnutls_name": "TLS_DHE_DSS_CAMELLIA_256_CBC_SHA1", "openssl_name": "DHE-DSS-CAMELLIA256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x87", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256": {"gnutls_name": "TLS_DHE_DSS_CAMELLIA_256_CBC_SHA256", "openssl_name": "DHE-DSS-CAMELLIA256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xC3", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_DHE_DSS_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x81", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x12", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_DSS_WITH_SEED_CBC_SHA": {"gnutls_name": "", "openssl_name": "DHE-DSS-SEED-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x99", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "DSS", "enc_algorithm": "SEED CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_DHE_PSK_3DES_EDE_CBC_SHA1", "openssl_name": "DHE-PSK-3DES-EDE-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x8F", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_DHE_PSK_AES_128_CBC_SHA1", "openssl_name": "DHE-PSK-AES128-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x90", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_DHE_PSK_AES_128_CBC_SHA256", "openssl_name": "DHE-PSK-AES128-CBC-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xB2", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_128_CCM": {"gnutls_name": "TLS_DHE_PSK_AES_128_CCM", "openssl_name": "DHE-PSK-AES128-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0xA6", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_DHE_PSK_AES_128_GCM_SHA256", "openssl_name": "DHE-PSK-AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xAA", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_DHE_PSK_AES_256_CBC_SHA1", "openssl_name": "DHE-PSK-AES256-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x91", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_256_CBC_SHA384": {"gnutls_name": "TLS_DHE_PSK_AES_256_CBC_SHA384", "openssl_name": "DHE-PSK-AES256-CBC-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xB3", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_256_CCM": {"gnutls_name": "TLS_DHE_PSK_AES_256_CCM", "openssl_name": "DHE-PSK-AES256-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0xA7", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_DHE_PSK_AES_256_GCM_SHA384", "openssl_name": "DHE-PSK-AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xAB", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x66", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x6C", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x67", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x6D", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_DHE_PSK_CAMELLIA_128_CBC_SHA256", "openssl_name": "DHE-PSK-CAMELLIA128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x96", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_DHE_PSK_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x90", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "TLS_DHE_PSK_CAMELLIA_256_CBC_SHA384", "openssl_name": "DHE-PSK-CAMELLIA256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x97", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_DHE_PSK_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x91", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_DHE_PSK_CHACHA20_POLY1305", "openssl_name": "DHE-PSK-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xAD", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_NULL_SHA": {"gnutls_name": "TLS_DHE_PSK_NULL_SHA1", "openssl_name": "DHE-PSK-NULL-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x2D", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_NULL_SHA256": {"gnutls_name": "TLS_DHE_PSK_NULL_SHA256", "openssl_name": "DHE-PSK-NULL-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xB4", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_NULL_SHA384": {"gnutls_name": "TLS_DHE_PSK_NULL_SHA384", "openssl_name": "DHE-PSK-NULL-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xB5", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_PSK_WITH_RC4_128_SHA": {"gnutls_name": "TLS_DHE_PSK_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x8E", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x14", "protocol_version": "TLS EXPORT", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "DES40 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_DHE_RSA_3DES_EDE_CBC_SHA1", "openssl_name": "DHE-RSA-DES-CBC3-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x16", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_DHE_RSA_AES_128_CBC_SHA1", "openssl_name": "DHE-RSA-AES128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x33", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_DHE_RSA_AES_128_CBC_SHA256", "openssl_name": "DHE-RSA-AES128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x67", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_128_CCM": {"gnutls_name": "TLS_DHE_RSA_AES_128_CCM", "openssl_name": "DHE-RSA-AES128-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0x9E", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_128_CCM_8": {"gnutls_name": "TLS_DHE_RSA_AES_128_CCM_8", "openssl_name": "DHE-RSA-AES128-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xA2", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_DHE_RSA_AES_128_GCM_SHA256", "openssl_name": "DHE-RSA-AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x9E", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_DHE_RSA_AES_256_CBC_SHA1", "openssl_name": "DHE-RSA-AES256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x39", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_256_CBC_SHA256": {"gnutls_name": "TLS_DHE_RSA_AES_256_CBC_SHA256", "openssl_name": "DHE-RSA-AES256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x6B", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_256_CCM": {"gnutls_name": "TLS_DHE_RSA_AES_256_CCM", "openssl_name": "DHE-RSA-AES256-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0x9F", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_256_CCM_8": {"gnutls_name": "TLS_DHE_RSA_AES_256_CCM_8", "openssl_name": "DHE-RSA-AES256-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xA3", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_DHE_RSA_AES_256_GCM_SHA384", "openssl_name": "DHE-RSA-AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0x9F", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x44", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x52", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x45", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x53", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA": {"gnutls_name": "TLS_DHE_RSA_CAMELLIA_128_CBC_SHA1", "openssl_name": "DHE-RSA-CAMELLIA128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x45", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_DHE_RSA_CAMELLIA_128_CBC_SHA256", "openssl_name": "DHE-RSA-CAMELLIA128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xBE", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_DHE_RSA_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x7C", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA": {"gnutls_name": "TLS_DHE_RSA_CAMELLIA_256_CBC_SHA1", "openssl_name": "DHE-RSA-CAMELLIA256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x88", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256": {"gnutls_name": "TLS_DHE_RSA_CAMELLIA_256_CBC_SHA256", "openssl_name": "DHE-RSA-CAMELLIA256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xC4", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_DHE_RSA_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x7D", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_DHE_RSA_CHACHA20_POLY1305", "openssl_name": "DHE-RSA-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xAA", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x15", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DHE_RSA_WITH_SEED_CBC_SHA": {"gnutls_name": "", "openssl_name": "DHE-RSA-SEED-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x9A", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "RSA", "enc_algorithm": "SEED CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x0E", "protocol_version": "TLS EXPORT", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "DES40 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x10", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x31", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x3F", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xA0", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x37", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_AES_256_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x69", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xA1", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x40", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x54", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x41", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x55", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x43", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xBC", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x7E", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x86", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xC2", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x7F", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x0F", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_DH_RSA_WITH_SEED_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x98", "protocol_version": "TLS", "kex_algorithm": "DH", "auth_algorithm": "RSA", "enc_algorithm": "SEED CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECCPWD_WITH_AES_128_CCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0xB2", "protocol_version": "TLS", "kex_algorithm": "ECCPWD", "auth_algorithm": "ECCPWD", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECCPWD_WITH_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0xB0", "protocol_version": "TLS", "kex_algorithm": "ECCPWD", "auth_algorithm": "ECCPWD", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECCPWD_WITH_AES_256_CCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0xB3", "protocol_version": "TLS", "kex_algorithm": "ECCPWD", "auth_algorithm": "ECCPWD", "enc_algorithm": "AES 256 CCM", "hash_algorithm": "SHA384", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECCPWD_WITH_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0xB1", "protocol_version": "TLS", "kex_algorithm": "ECCPWD", "auth_algorithm": "ECCPWD", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_ECDH_ANON_3DES_EDE_CBC_SHA1", "openssl_name": "AECDH-DES-CBC3-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x17", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "anon", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_anon_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_ECDH_ANON_AES_128_CBC_SHA1", "openssl_name": "AECDH-AES128-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x18", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "anon", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_anon_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_ECDH_ANON_AES_256_CBC_SHA1", "openssl_name": "AECDH-AES256-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x19", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "anon", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_anon_WITH_NULL_SHA": {"gnutls_name": "TLS_ECDH_ANON_NULL_SHA1", "openssl_name": "AECDH-NULL-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x15", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "anon", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_anon_WITH_RC4_128_SHA": {"gnutls_name": "TLS_ECDH_ANON_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x16", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "anon", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x03", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x04", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x25", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x2D", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x05", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x26", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x2E", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x4A", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x5E", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x4B", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x5F", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x74", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x88", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x75", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x89", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_NULL_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x01", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_ECDSA_WITH_RC4_128_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x02", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "ECDSA", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1", "openssl_name": "ECDHE-ECDSA-DES-CBC3-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x08", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_128_CBC_SHA1", "openssl_name": "ECDHE-ECDSA-AES128-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x09", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_128_CBC_SHA256", "openssl_name": "ECDHE-ECDSA-AES128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x23", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_128_CCM": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_128_CCM", "openssl_name": "ECDHE-ECDSA-AES128-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0xAC", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_128_CCM_8", "openssl_name": "ECDHE-ECDSA-AES128-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xAE", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_128_GCM_SHA256", "openssl_name": "ECDHE-ECDSA-AES128-GCM-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x2B", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_256_CBC_SHA1", "openssl_name": "ECDHE-ECDSA-AES256-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x0A", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_256_CBC_SHA384", "openssl_name": "ECDHE-ECDSA-AES256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x24", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_256_CCM": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_256_CCM", "openssl_name": "ECDHE-ECDSA-AES256-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0xAD", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 CCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_256_CCM_8", "openssl_name": "ECDHE-ECDSA-AES256-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xAF", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 CCM 8", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_ECDHE_ECDSA_AES_256_GCM_SHA384", "openssl_name": "ECDHE-ECDSA-AES256-GCM-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x2C", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x48", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x5C", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x49", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x5D", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256", "openssl_name": "ECDHE-ECDSA-CAMELLIA128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x72", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x86", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "TLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384", "openssl_name": "ECDHE-ECDSA-CAMELLIA256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x73", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x87", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_ECDHE_ECDSA_CHACHA20_POLY1305", "openssl_name": "ECDHE-ECDSA-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xA9", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_NULL_SHA": {"gnutls_name": "TLS_ECDHE_ECDSA_NULL_SHA1", "openssl_name": "ECDHE-ECDSA-NULL-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x06", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": {"gnutls_name": "TLS_ECDHE_ECDSA_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x07", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "ECDSA", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_ECDHE_PSK_3DES_EDE_CBC_SHA1", "openssl_name": "ECDHE-PSK-3DES-EDE-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x34", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_ECDHE_PSK_AES_128_CBC_SHA1", "openssl_name": "ECDHE-PSK-AES128-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x35", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_ECDHE_PSK_AES_128_CBC_SHA256", "openssl_name": "ECDHE-PSK-AES128-CBC-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x37", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xD0", "hex_byte_2": "0x03", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xD0", "hex_byte_2": "0x05", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xD0", "hex_byte_2": "0x01", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_ECDHE_PSK_AES_256_CBC_SHA1", "openssl_name": "ECDHE-PSK-AES256-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x36", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384": {"gnutls_name": "TLS_ECDHE_PSK_AES_256_CBC_SHA384", "openssl_name": "ECDHE-PSK-AES256-CBC-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x38", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xD0", "hex_byte_2": "0x02", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x70", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x71", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_ECDHE_PSK_CAMELLIA_128_CBC_SHA256", "openssl_name": "ECDHE-PSK-CAMELLIA128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x9A", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "TLS_ECDHE_PSK_CAMELLIA_256_CBC_SHA384", "openssl_name": "ECDHE-PSK-CAMELLIA256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x9B", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_ECDHE_PSK_CHACHA20_POLY1305", "openssl_name": "ECDHE-PSK-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xAC", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "recommended", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_NULL_SHA": {"gnutls_name": "TLS_ECDHE_PSK_NULL_SHA1", "openssl_name": "ECDHE-PSK-NULL-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x39", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_NULL_SHA256": {"gnutls_name": "TLS_ECDHE_PSK_NULL_SHA256", "openssl_name": "ECDHE-PSK-NULL-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x3A", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_NULL_SHA384": {"gnutls_name": "TLS_ECDHE_PSK_NULL_SHA384", "openssl_name": "ECDHE-PSK-NULL-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x3B", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_PSK_WITH_RC4_128_SHA": {"gnutls_name": "TLS_ECDHE_PSK_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x33", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "PSK", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_ECDHE_RSA_3DES_EDE_CBC_SHA1", "openssl_name": "ECDHE-RSA-DES-CBC3-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x12", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_ECDHE_RSA_AES_128_CBC_SHA1", "openssl_name": "ECDHE-RSA-AES128-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x13", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_ECDHE_RSA_AES_128_CBC_SHA256", "openssl_name": "ECDHE-RSA-AES128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x27", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_ECDHE_RSA_AES_128_GCM_SHA256", "openssl_name": "ECDHE-RSA-AES128-GCM-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x2F", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_ECDHE_RSA_AES_256_CBC_SHA1", "openssl_name": "ECDHE-RSA-AES256-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x14", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384": {"gnutls_name": "TLS_ECDHE_RSA_AES_256_CBC_SHA384", "openssl_name": "ECDHE-RSA-AES256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x28", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_ECDHE_RSA_AES_256_GCM_SHA384", "openssl_name": "ECDHE-RSA-AES256-GCM-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x30", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x4C", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x60", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x4D", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x61", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_ECDHE_RSA_CAMELLIA_128_CBC_SHA256", "openssl_name": "ECDHE-RSA-CAMELLIA128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x76", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_ECDHE_RSA_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x8A", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "TLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384", "openssl_name": "ECDHE-RSA-CAMELLIA256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x77", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_ECDHE_RSA_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x8B", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_ECDHE_RSA_CHACHA20_POLY1305", "openssl_name": "ECDHE-RSA-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xA8", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "secure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_NULL_SHA": {"gnutls_name": "TLS_ECDHE_RSA_NULL_SHA1", "openssl_name": "ECDHE-RSA-NULL-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x10", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDHE_RSA_WITH_RC4_128_SHA": {"gnutls_name": "TLS_ECDHE_RSA_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x11", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "RSA", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x0D", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x0E", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x29", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x31", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x0F", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x2A", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x32", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x4E", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x62", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x4F", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x63", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x78", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x8C", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x79", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x8D", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_NULL_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x0B", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_ECDH_RSA_WITH_RC4_128_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x0C", "protocol_version": "TLS", "kex_algorithm": "ECDH", "auth_algorithm": "RSA", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_28147_CNT_IMIT": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x02", "protocol_version": "TLS", "kex_algorithm": "GOSTR341112 256", "auth_algorithm": "GOSTR341012", "enc_algorithm": "28147 CNT", "hash_algorithm": "GOSTR341112", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x00", "protocol_version": "TLS", "kex_algorithm": "GOSTR341112 256", "auth_algorithm": "GOSTR341012", "enc_algorithm": "KUZNYECHIK CTR", "hash_algorithm": "GOSTR341112", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x03", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "-", "enc_algorithm": "KUZNYECHIK MGM L", "hash_algorithm": "-", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x05", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "-", "enc_algorithm": "KUZNYECHIK MGM S", "hash_algorithm": "-", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x01", "protocol_version": "TLS", "kex_algorithm": "GOSTR341112 256", "auth_algorithm": "GOSTR341012", "enc_algorithm": "MAGMA CTR", "hash_algorithm": "GOSTR341112", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_MAGMA_MGM_L": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x04", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "-", "enc_algorithm": "MAGMA MGM L", "hash_algorithm": "-", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_GOSTR341112_256_WITH_MAGMA_MGM_S": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC1", "hex_byte_2": "0x06", "protocol_version": "TLS", "kex_algorithm": "ECDHE", "auth_algorithm": "-", "enc_algorithm": "MAGMA MGM S", "hash_algorithm": "-", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x29", "protocol_version": "TLS EXPORT", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "DES CBC 40", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x26", "protocol_version": "TLS EXPORT", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "DES CBC 40", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x2A", "protocol_version": "TLS EXPORT", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "RC2 CBC 40", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x27", "protocol_version": "TLS EXPORT", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "RC2 CBC 40", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_EXPORT_WITH_RC4_40_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x2B", "protocol_version": "TLS EXPORT", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "RC4 40", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_EXPORT_WITH_RC4_40_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x28", "protocol_version": "TLS EXPORT", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "RC4 40", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_3DES_EDE_CBC_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x23", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x1F", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_DES_CBC_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x22", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "DES CBC", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x1E", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_IDEA_CBC_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x25", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "IDEA CBC", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_IDEA_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x21", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "IDEA CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_RC4_128_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x24", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "RC4 128", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_KRB5_WITH_RC4_128_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x20", "protocol_version": "TLS", "kex_algorithm": "KRB5", "auth_algorithm": "KRB5", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_NULL_WITH_NULL_NULL": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x00", "protocol_version": "TLS", "kex_algorithm": "NULL", "auth_algorithm": "NULL", "enc_algorithm": "NULL", "hash_algorithm": "NULL", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_DHE_WITH_AES_128_CCM_8": {"gnutls_name": "TLS_DHE_PSK_AES_128_CCM_8", "openssl_name": "DHE-PSK-AES128-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xAA", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_DHE_WITH_AES_256_CCM_8": {"gnutls_name": "TLS_DHE_PSK_AES_256_CCM_8", "openssl_name": "DHE-PSK-AES256-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xAB", "protocol_version": "TLS", "kex_algorithm": "DHE", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_PSK_3DES_EDE_CBC_SHA1", "openssl_name": "PSK-3DES-EDE-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x8B", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_PSK_AES_128_CBC_SHA1", "openssl_name": "PSK-AES128-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x8C", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_PSK_AES_128_CBC_SHA256", "openssl_name": "PSK-AES128-CBC-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xAE", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_128_CCM": {"gnutls_name": "TLS_PSK_AES_128_CCM", "openssl_name": "PSK-AES128-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0xA4", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_128_CCM_8": {"gnutls_name": "TLS_PSK_AES_128_CCM_8", "openssl_name": "PSK-AES128-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xA8", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_PSK_AES_128_GCM_SHA256", "openssl_name": "PSK-AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xA8", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_PSK_AES_256_CBC_SHA1", "openssl_name": "PSK-AES256-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x8D", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_256_CBC_SHA384": {"gnutls_name": "TLS_PSK_AES_256_CBC_SHA384", "openssl_name": "PSK-AES256-CBC-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xAF", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_256_CCM": {"gnutls_name": "TLS_PSK_AES_256_CCM", "openssl_name": "PSK-AES256-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0xA5", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_256_CCM_8": {"gnutls_name": "TLS_PSK_AES_256_CCM_8", "openssl_name": "PSK-AES256-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xA9", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_PSK_AES_256_GCM_SHA384", "openssl_name": "PSK-AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xA9", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x64", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x6A", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x65", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x6B", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_PSK_CAMELLIA_128_CBC_SHA256", "openssl_name": "PSK-CAMELLIA128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x94", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_PSK_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x8E", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "TLS_PSK_CAMELLIA_256_CBC_SHA384", "openssl_name": "PSK-CAMELLIA256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x95", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_PSK_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x8F", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_PSK_CHACHA20_POLY1305", "openssl_name": "PSK-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xAB", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_NULL_SHA": {"gnutls_name": "TLS_PSK_NULL_SHA1", "openssl_name": "PSK-NULL-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x2C", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_NULL_SHA256": {"gnutls_name": "TLS_PSK_NULL_SHA256", "openssl_name": "PSK-NULL-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xB0", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_NULL_SHA384": {"gnutls_name": "TLS_PSK_NULL_SHA384", "openssl_name": "PSK-NULL-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xB1", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_PSK_WITH_RC4_128_SHA": {"gnutls_name": "TLS_PSK_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x8A", "protocol_version": "TLS", "kex_algorithm": "PSK", "auth_algorithm": "PSK", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_EXPORT_WITH_DES40_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x08", "protocol_version": "TLS EXPORT", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "DES40 CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x06", "protocol_version": "TLS EXPORT", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "RC2 CBC 40", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_EXPORT_WITH_RC4_40_MD5": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x03", "protocol_version": "TLS EXPORT", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "RC4 40", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_RSA_PSK_3DES_EDE_CBC_SHA1", "openssl_name": "RSA-PSK-3DES-EDE-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x93", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_RSA_PSK_AES_128_CBC_SHA1", "openssl_name": "RSA-PSK-AES128-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x94", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_RSA_PSK_AES_128_CBC_SHA256", "openssl_name": "RSA-PSK-AES128-CBC-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xB6", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_RSA_PSK_AES_128_GCM_SHA256", "openssl_name": "RSA-PSK-AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xAC", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_RSA_PSK_AES_256_CBC_SHA1", "openssl_name": "RSA-PSK-AES256-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x95", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_AES_256_CBC_SHA384": {"gnutls_name": "TLS_RSA_PSK_AES_256_CBC_SHA384", "openssl_name": "RSA-PSK-AES256-CBC-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xB7", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_RSA_PSK_AES_256_GCM_SHA384", "openssl_name": "RSA-PSK-AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xAD", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x68", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x6E", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x69", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x6F", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_RSA_PSK_CAMELLIA_128_CBC_SHA256", "openssl_name": "RSA-PSK-CAMELLIA128-SHA256", "hex_byte_1": "0xC0", "hex_byte_2": "0x98", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_RSA_PSK_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x92", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384": {"gnutls_name": "TLS_RSA_PSK_CAMELLIA_256_CBC_SHA384", "openssl_name": "RSA-PSK-CAMELLIA256-SHA384", "hex_byte_1": "0xC0", "hex_byte_2": "0x99", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_RSA_PSK_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x93", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256": {"gnutls_name": "TLS_RSA_PSK_CHACHA20_POLY1305", "openssl_name": "RSA-PSK-CHACHA20-POLY1305", "hex_byte_1": "0xCC", "hex_byte_2": "0xAE", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "CHACHA20 POLY1305", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_NULL_SHA": {"gnutls_name": "TLS_RSA_PSK_NULL_SHA1", "openssl_name": "RSA-PSK-NULL-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x2E", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_NULL_SHA256": {"gnutls_name": "TLS_RSA_PSK_NULL_SHA256", "openssl_name": "RSA-PSK-NULL-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xB8", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_NULL_SHA384": {"gnutls_name": "TLS_RSA_PSK_NULL_SHA384", "openssl_name": "RSA-PSK-NULL-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0xB9", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "NULL", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_PSK_WITH_RC4_128_SHA": {"gnutls_name": "TLS_RSA_PSK_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x92", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "PSK", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_RSA_3DES_EDE_CBC_SHA1", "openssl_name": "DES-CBC3-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x0A", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_RSA_AES_128_CBC_SHA1", "openssl_name": "AES128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x2F", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_128_CBC_SHA256": {"gnutls_name": "TLS_RSA_AES_128_CBC_SHA256", "openssl_name": "AES128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x3C", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_128_CCM": {"gnutls_name": "TLS_RSA_AES_128_CCM", "openssl_name": "AES128-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0x9C", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_128_CCM_8": {"gnutls_name": "TLS_RSA_AES_128_CCM_8", "openssl_name": "AES128-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xA0", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_128_GCM_SHA256": {"gnutls_name": "TLS_RSA_AES_128_GCM_SHA256", "openssl_name": "AES128-GCM-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x9C", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_RSA_AES_256_CBC_SHA1", "openssl_name": "AES256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x35", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_256_CBC_SHA256": {"gnutls_name": "TLS_RSA_AES_256_CBC_SHA256", "openssl_name": "AES256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x3D", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_256_CCM": {"gnutls_name": "TLS_RSA_AES_256_CCM", "openssl_name": "AES256-CCM", "hex_byte_1": "0xC0", "hex_byte_2": "0x9D", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_256_CCM_8": {"gnutls_name": "TLS_RSA_AES_256_CCM_8", "openssl_name": "AES256-CCM8", "hex_byte_1": "0xC0", "hex_byte_2": "0xA1", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 CCM 8", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_AES_256_GCM_SHA384": {"gnutls_name": "TLS_RSA_AES_256_GCM_SHA384", "openssl_name": "AES256-GCM-SHA384", "hex_byte_1": "0x00", "hex_byte_2": "0x9D", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "AES 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_ARIA_128_CBC_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x3C", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_ARIA_128_GCM_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x50", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_ARIA_256_CBC_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x3D", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 CBC", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_ARIA_256_GCM_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x51", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "ARIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_CAMELLIA_128_CBC_SHA": {"gnutls_name": "TLS_RSA_CAMELLIA_128_CBC_SHA1", "openssl_name": "CAMELLIA128-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x41", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256": {"gnutls_name": "TLS_RSA_CAMELLIA_128_CBC_SHA256", "openssl_name": "CAMELLIA128-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xBA", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256": {"gnutls_name": "TLS_RSA_CAMELLIA_128_GCM_SHA256", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x7A", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 128 GCM", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_CAMELLIA_256_CBC_SHA": {"gnutls_name": "TLS_RSA_CAMELLIA_256_CBC_SHA1", "openssl_name": "CAMELLIA256-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x84", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256": {"gnutls_name": "TLS_RSA_CAMELLIA_256_CBC_SHA256", "openssl_name": "CAMELLIA256-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0xC0", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 CBC", "hash_algorithm": "SHA256", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384": {"gnutls_name": "TLS_RSA_CAMELLIA_256_GCM_SHA384", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0x7B", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "CAMELLIA 256 GCM", "hash_algorithm": "SHA384", "security": "weak", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_DES_CBC_SHA": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x09", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "DES CBC", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_IDEA_CBC_SHA": {"gnutls_name": "", "openssl_name": "IDEA-CBC-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x07", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "IDEA CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_NULL_MD5": {"gnutls_name": "TLS_RSA_NULL_MD5", "openssl_name": "NULL-MD5", "hex_byte_1": "0x00", "hex_byte_2": "0x01", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "NULL", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_NULL_SHA": {"gnutls_name": "TLS_RSA_NULL_SHA1", "openssl_name": "NULL-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x02", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "NULL", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_NULL_SHA256": {"gnutls_name": "TLS_RSA_NULL_SHA256", "openssl_name": "NULL-SHA256", "hex_byte_1": "0x00", "hex_byte_2": "0x3B", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "NULL", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_RC4_128_MD5": {"gnutls_name": "TLS_RSA_ARCFOUR_128_MD5", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x04", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "RC4 128", "hash_algorithm": "MD5", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_RC4_128_SHA": {"gnutls_name": "TLS_RSA_ARCFOUR_128_SHA1", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0x05", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "RC4 128", "hash_algorithm": "SHA", "security": "insecure", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_RSA_WITH_SEED_CBC_SHA": {"gnutls_name": "", "openssl_name": "SEED-SHA", "hex_byte_1": "0x00", "hex_byte_2": "0x96", "protocol_version": "TLS", "kex_algorithm": "RSA", "auth_algorithm": "RSA", "enc_algorithm": "SEED CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SHA256_SHA256": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0xB4", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "SHA256", "enc_algorithm": "NULL", "hash_algorithm": "SHA256", "security": "insecure", "tls_version": ["TLS1.3"]}}, {"TLS_SHA384_SHA384": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0xC0", "hex_byte_2": "0xB5", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "SHA384", "enc_algorithm": "NULL", "hash_algorithm": "SHA384", "security": "insecure", "tls_version": ["TLS1.3"]}}, {"TLS_SM4_CCM_SM3": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xC7", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "SM4 CCM", "hash_algorithm": "SM3", "security": "insecure", "tls_version": ["TLS1.3"]}}, {"TLS_SM4_GCM_SM3": {"gnutls_name": "", "openssl_name": "", "hex_byte_1": "0x00", "hex_byte_2": "0xC6", "protocol_version": "TLS", "kex_algorithm": "-", "auth_algorithm": "-", "enc_algorithm": "SM4 GCM", "hash_algorithm": "SM3", "security": "insecure", "tls_version": ["TLS1.3"]}}, {"TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1", "openssl_name": "SRP-DSS-3DES-EDE-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x1C", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA DSS", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_DSS_AES_128_CBC_SHA1", "openssl_name": "SRP-DSS-AES-128-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x1F", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA DSS", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_DSS_AES_256_CBC_SHA1", "openssl_name": "SRP-DSS-AES-256-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x22", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA DSS", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1", "openssl_name": "SRP-RSA-3DES-EDE-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x1B", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA RSA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_RSA_AES_128_CBC_SHA1", "openssl_name": "SRP-RSA-AES-128-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x1E", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA RSA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_RSA_AES_256_CBC_SHA1", "openssl_name": "SRP-RSA-AES-256-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x21", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA RSA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_3DES_EDE_CBC_SHA1", "openssl_name": "SRP-3DES-EDE-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x1A", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA", "enc_algorithm": "3DES EDE CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_WITH_AES_128_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_AES_128_CBC_SHA1", "openssl_name": "SRP-AES-128-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x1D", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA", "enc_algorithm": "AES 128 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}, {"TLS_SRP_SHA_WITH_AES_256_CBC_SHA": {"gnutls_name": "TLS_SRP_SHA_AES_256_CBC_SHA1", "openssl_name": "SRP-AES-256-CBC-SHA", "hex_byte_1": "0xC0", "hex_byte_2": "0x20", "protocol_version": "TLS", "kex_algorithm": "SRP", "auth_algorithm": "SHA", "enc_algorithm": "AES 256 CBC", "hash_algorithm": "SHA", "security": "weak", "tls_version": ["TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"]}}]} \ No newline at end of file diff --git a/go.mod b/go.mod index d14b805..34ee626 100644 --- a/go.mod +++ b/go.mod @@ -1,57 +1,66 @@ module github.com/northwood-labs/devsec-tools -go 1.22 +go 1.22.0 -toolchain go1.22.0 +toolchain go1.23.3 require ( - github.com/aws/aws-lambda-go v1.46.0 + github.com/aws/aws-lambda-go v1.47.0 github.com/google/go-cmp v0.6.0 - github.com/google/go-containerregistry v0.19.0 + github.com/google/go-containerregistry v0.20.2 github.com/gookit/color v1.5.4 + github.com/goware/urlx v0.3.2 github.com/lithammer/dedent v1.1.0 - github.com/moby/buildkit v0.12.5 - github.com/northwood-labs/golang-utils/archstring v0.0.0-20230302161720-ec685e2f274a - github.com/northwood-labs/golang-utils/debug v0.0.0-20230302161720-ec685e2f274a - github.com/northwood-labs/golang-utils/exiterrorf v0.0.0-20230302161720-ec685e2f274a + github.com/moby/buildkit v0.17.2 + github.com/northwood-labs/golang-utils/archstring v0.0.0-20240514195441-31b98331cf9f + github.com/northwood-labs/golang-utils/debug v0.0.0-20240514195441-31b98331cf9f + github.com/northwood-labs/golang-utils/exiterrorf v0.0.0-20240514195441-31b98331cf9f github.com/northwood-labs/whalelint v0.3.0 github.com/pkg/errors v0.9.1 - github.com/rs/zerolog v1.32.0 - github.com/spf13/cobra v1.8.0 + github.com/rs/zerolog v1.33.0 + github.com/spf13/cobra v1.8.1 ) require ( + github.com/PuerkitoBio/purell v1.2.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/agext/levenshtein v1.2.3 // indirect - github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect - github.com/containerd/typeurl/v2 v2.1.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/containerd/stargz-snapshotter/estargz v0.16.1 // indirect + github.com/containerd/typeurl/v2 v2.2.3 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/docker/cli v25.0.3+incompatible // indirect + github.com/docker/cli v27.3.1+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect - github.com/docker/docker v25.0.3+incompatible // indirect - github.com/docker/docker-credential-helpers v0.8.1 // indirect + github.com/docker/docker v27.3.1+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/klauspost/compress v1.17.6 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/northwood-labs/debug v0.0.0-20240514204655-f938e2fa11e9 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc6 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/vbatts/tar-split v0.11.5 // indirect + github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 // indirect + github.com/vbatts/tar-split v0.11.6 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.17.0 // indirect - google.golang.org/protobuf v1.32.0 // indirect + golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect + golang.org/x/net v0.31.0 // indirect + golang.org/x/sync v0.9.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 775cb6c..34b54ad 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,28 @@ +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.2.1 h1:QsZ4TjvwiMpat6gBCBxEQI0rcS9ehtkKtSpiUnd9N28= +github.com/PuerkitoBio/purell v1.2.1/go.mod h1:ZwHcC/82TOaovDi//J/804umJFFmbOHPngi8iYYv/Eo= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/aws/aws-lambda-go v1.46.0 h1:UWVnvh2h2gecOlFhHQfIPQcD8pL/f7pVCutmFl+oXU8= github.com/aws/aws-lambda-go v1.46.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= +github.com/aws/aws-lambda-go v1.47.0 h1:0H8s0vumYx/YKs4sE7YM0ktwL2eWse+kfopsRI1sXVI= +github.com/aws/aws-lambda-go v1.47.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= github.com/containerd/stargz-snapshotter/estargz v0.15.1 h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU= github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk= +github.com/containerd/stargz-snapshotter/estargz v0.16.1 h1:7YswwU6746cJBN3p3l65JRk3+NZL7bap9Y6E3YeYowk= +github.com/containerd/stargz-snapshotter/estargz v0.16.1/go.mod h1:uyr4BfYfOj3G9WBVE8cOlQmXAbPN9VEQpBBeJIuOipU= github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4= github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0= +github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40= +github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -16,12 +30,18 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/docker/cli v25.0.3+incompatible h1:KLeNs7zws74oFuVhgZQ5ONGZiXUUdgsdy6/EsX/6284= github.com/docker/cli v25.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.3.1+incompatible h1:qEGdFBF3Xu6SCvCYhc7CzaQTlBmqDuzxPDpigSyeKQQ= +github.com/docker/cli v27.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= +github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo= github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= +github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -35,16 +55,22 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.19.0 h1:uIsMRBV7m/HDkDxE/nXMnv1q+lOOSPlQ/ywc5JbB8Ic= github.com/google/go-containerregistry v0.19.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= +github.com/google/go-containerregistry v0.20.2 h1:B1wPJ1SN/S7pB+ZAimcciVD+r+yV/l/DSArMxlbwseo= +github.com/google/go-containerregistry v0.20.2/go.mod h1:z38EKdKh4h7IP2gSfUUqEvalZBqs6AoLeWfUy34nQC8= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= +github.com/goware/urlx v0.3.2 h1:gdoo4kBHlkqZNaf6XlQ12LGtQOmpKJrR04Rc3RnpJEo= +github.com/goware/urlx v0.3.2/go.mod h1:h8uwbJy68o+tQXCGZNa9D73WN8n0r9OBae5bUnLcgjw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.6 h1:60eq2E/jlfwQXtvZEeBUYADs+BwKBWURIY+Gj2eRGjI= github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -61,21 +87,37 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/moby/buildkit v0.12.5 h1:RNHH1l3HDhYyZafr5EgstEu8aGNCwyfvMtrQDtjH9T0= github.com/moby/buildkit v0.12.5/go.mod h1:YGwjA2loqyiYfZeEo8FtI7z4x5XponAaIWsWcSjWwso= +github.com/moby/buildkit v0.17.2 h1:/jgk/MuXbA7jeXMkknOpHYB+Ct4aNvQHkBB7SxD3D4U= +github.com/moby/buildkit v0.17.2/go.mod h1:vr5vltV8wt4F2jThbNOChfbAklJ0DOW11w36v210hOg= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/northwood-labs/debug v0.0.0-20240514204655-f938e2fa11e9 h1:Uuy/Obqj8z6MCER8y0geETA0894Ulo0hqM71u9WtcuQ= +github.com/northwood-labs/debug v0.0.0-20240514204655-f938e2fa11e9/go.mod h1:fu3Hu+ET7MkBAws624vkPDnehxuY/L8AJuR3nlKw64k= github.com/northwood-labs/golang-utils/archstring v0.0.0-20230302161720-ec685e2f274a h1:g5He4lP335CqRw/S1JgkC93EI3zVHOkmKzjHw6MWoiM= github.com/northwood-labs/golang-utils/archstring v0.0.0-20230302161720-ec685e2f274a/go.mod h1:ixVR+WTyw0LxuhcprIZzxgxAy7LyZRFkpyIwvyNdpcY= +github.com/northwood-labs/golang-utils/archstring v0.0.0-20240514195441-31b98331cf9f h1:1qqIaHGvvZhPJieuHLIuobMNjvT/T6r+UHcKVUvg4ZU= +github.com/northwood-labs/golang-utils/archstring v0.0.0-20240514195441-31b98331cf9f/go.mod h1:ixVR+WTyw0LxuhcprIZzxgxAy7LyZRFkpyIwvyNdpcY= github.com/northwood-labs/golang-utils/debug v0.0.0-20230302161720-ec685e2f274a h1:i8w1BLb7KQQRfEwjYSs8z5SzpUn13+a37i0sdgZVmBs= github.com/northwood-labs/golang-utils/debug v0.0.0-20230302161720-ec685e2f274a/go.mod h1:W37K0xYji7q+pHZc8ucid72muHRjKwPhgHRalGXFyQc= +github.com/northwood-labs/golang-utils/debug v0.0.0-20240514195441-31b98331cf9f h1:zgz3rD/uKKu9+lBdw+gEeiWXozGGfzDSLU9K47gmRg0= +github.com/northwood-labs/golang-utils/debug v0.0.0-20240514195441-31b98331cf9f/go.mod h1:hfKKWq4nY9zLSlQF9+8aY/kMEkc8B18UXbhNk4d6nkQ= github.com/northwood-labs/golang-utils/exiterrorf v0.0.0-20230302161720-ec685e2f274a h1:IvtxXAdMfCPmjDiUNhVKn/qoNDSU6xmutr9rlul4V9Q= github.com/northwood-labs/golang-utils/exiterrorf v0.0.0-20230302161720-ec685e2f274a/go.mod h1:DZOF/zxKfLJhhFfPhDNrUEU0/MvT5GpFeX3HL1UdYTY= +github.com/northwood-labs/golang-utils/exiterrorf v0.0.0-20240514195441-31b98331cf9f h1:Oo7yb8t8qlP2eFwMkmBwJRq8McNh7dqPu4fz5gT6Nxk= +github.com/northwood-labs/golang-utils/exiterrorf v0.0.0-20240514195441-31b98331cf9f/go.mod h1:DZOF/zxKfLJhhFfPhDNrUEU0/MvT5GpFeX3HL1UdYTY= github.com/northwood-labs/whalelint v0.3.0 h1:uCj2L6LX9EpSn6mKDBjKa5IUvCQtXYEsL3hZGCEuc4g= github.com/northwood-labs/whalelint v0.3.0/go.mod h1:i5PAvWFuMQd4gOMQktUt66pMFDKU1qKZDJnON/VncUg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc6 h1:XDqvyKsJEbRtATzkgItUqBA7QHk58yxX1Ov9HERHNqU= github.com/opencontainers/image-spec v1.1.0-rc6/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -84,20 +126,30 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= +github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 h1:2f304B10LaZdB8kkVEaoXvAMVan2tl9AiK4G0odjQtE= +github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0/go.mod h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE= github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= +github.com/vbatts/tar-split v0.11.6 h1:4SjTW5+PU11n6fZenf2IPoV8/tz3AaYHMWjf23envGs= +github.com/vbatts/tar-split v0.11.6/go.mod h1:dqKNtesIOr2j2Qv3W/cHjnvk9I8+G7oAkFDFN6TCBEI= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -107,17 +159,23 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -127,8 +185,12 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -141,6 +203,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/lambda/hasher/main.go b/lambda/hasher/main.go index 62773e1..1b57883 100644 --- a/lambda/hasher/main.go +++ b/lambda/hasher/main.go @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/main.go b/main.go index 120b5e7..136724d 100644 --- a/main.go +++ b/main.go @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/hasher/doc.go b/pkg/hasher/doc.go.bak similarity index 96% rename from pkg/hasher/doc.go rename to pkg/hasher/doc.go.bak index 8bf50b8..0e8d6af 100644 --- a/pkg/hasher/doc.go +++ b/pkg/hasher/doc.go.bak @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/hasher/hasher.go b/pkg/hasher/hasher.go.bak similarity index 99% rename from pkg/hasher/hasher.go rename to pkg/hasher/hasher.go.bak index f2f9e98..bac16e3 100644 --- a/pkg/hasher/hasher.go +++ b/pkg/hasher/hasher.go.bak @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/hasher/hasher_test.go b/pkg/hasher/hasher_test.go.bak similarity index 94% rename from pkg/hasher/hasher_test.go rename to pkg/hasher/hasher_test.go.bak index c3f6230..c58064b 100644 --- a/pkg/hasher/hasher_test.go +++ b/pkg/hasher/hasher_test.go.bak @@ -1,4 +1,4 @@ -// Copyright 2024, Ryan Parman +// Copyright 2024, Northwood Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/httptls/cipher_strength.go b/pkg/httptls/cipher_strength.go new file mode 100644 index 0000000..90174b4 --- /dev/null +++ b/pkg/httptls/cipher_strength.go @@ -0,0 +1,32 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type CipherStrength int + +const ( + // Cipher strength groupings + StrengthInsecure CipherStrength = iota + StrengthWeak + StrengthSecure + StrengthRecommended +) + +var StrengthList = map[CipherStrength]string{ + StrengthInsecure: "Insecure", + StrengthWeak: "Weak", + StrengthSecure: "Secure", + StrengthRecommended: "Recommended", +} diff --git a/pkg/httptls/cipher_suites.go b/pkg/httptls/cipher_suites.go new file mode 100644 index 0000000..a8ff18d --- /dev/null +++ b/pkg/httptls/cipher_suites.go @@ -0,0 +1,808 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type CipherData struct { + // IANAName represents the official name of the cipher suite. + IANAName string `json:"ianaName,omitempty"` + + // OpenSSLName represents the name of the cipher suite used by the + // OpenSSL library. + OpenSSLName string `json:"opensslName,omitempty"` + + // GNUTLSName represents the name of the cipher suite used by the + // GNU-TLS library. + GNUTLSName string `json:"gnutlsName,omitempty"` + + // Strength is a string representation of the strength of the cipher + // suite. + Strength string `json:"strength"` + + // KeyExchange is a string representation of the key exchange algorithm. + KeyExchange string `json:"keyExchange"` + + // Authentication is a string representation of the key authentication + // algorithm. + Authentication string `json:"authentication"` + + // EncryptionAlgoisastring representation of the encryption + // algorithm. + EncryptionAlgo string `json:"encryption"` + + // Hash is a string representation of the hashing function. + Hash string `json:"hash"` + + // Problems is a a list of strings which represent problems known with + // the cipher suite. + Problems []ProblemData `json:"problems"` + + // Private + strength CipherStrength + keyExchange KeyExchange + authentication Signature + encryptionAlgo EncryptionAlgo + hash Hash + problems []Problem +} + +// https://ciphersuite.info/cs/?singlepage=true +// https://www.iana.org/assignments/tls-parameters/tls-parameters.xml +var CipherList = map[uint16]CipherData{ + 0x0000: { + IANAName: "TLS_NULL_WITH_NULL_NULL", + strength: StrengthInsecure, + keyExchange: KexNULL, + authentication: SigNULL, + encryptionAlgo: EncryptNULL, + hash: HashNULL, + }, + 0x0001: {IANAName: "TLS_RSA_WITH_NULL_MD5"}, + 0x0002: {IANAName: "TLS_RSA_WITH_NULL_SHA"}, + 0x0003: {IANAName: "TLS_RSA_EXPORT_WITH_RC4_40_MD5"}, + 0x0004: {IANAName: "TLS_RSA_WITH_RC4_128_MD5"}, + 0x0005: { + IANAName: "TLS_RSA_WITH_RC4_128_SHA", + GNUTLSName: "TLS_RSA_ARCFOUR_128_SHA1", + + strength: StrengthInsecure, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + problems: []Problem{ProblemNonEphemeral, ProblemRSA, ProblemRC4, ProblemSHA1}, + }, + 0x0006: {IANAName: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5"}, + 0x0007: {IANAName: "TLS_RSA_WITH_IDEA_CBC_SHA"}, + 0x0008: {IANAName: "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA"}, + 0x0009: {IANAName: "TLS_RSA_WITH_DES_CBC_SHA"}, + 0x000A: { + IANAName: "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "DES-CBC3-SHA", + GNUTLSName: "TLS_RSA_3DES_EDE_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + problems: []Problem{ProblemNonEphemeral, ProblemRSA, Problem3DES, ProblemCBC, ProblemSHA1}, + }, + 0x000B: {IANAName: "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"}, + 0x000C: {IANAName: "TLS_DH_DSS_WITH_DES_CBC_SHA"}, + 0x000D: {IANAName: "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA"}, + 0x000E: {IANAName: "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"}, + 0x000F: {IANAName: "TLS_DH_RSA_WITH_DES_CBC_SHA"}, + 0x0010: {IANAName: "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA"}, + 0x0011: {IANAName: "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"}, + 0x0012: {IANAName: "TLS_DHE_DSS_WITH_DES_CBC_SHA"}, + 0x0013: {IANAName: "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"}, + 0x0014: {IANAName: "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"}, + 0x0015: {IANAName: "TLS_DHE_RSA_WITH_DES_CBC_SHA"}, + 0x0016: {IANAName: "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"}, + 0x0017: {IANAName: "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5"}, + 0x0018: {IANAName: "TLS_DH_anon_WITH_RC4_128_MD5"}, + 0x0019: { + IANAName: "TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptDES40CBC, + hash: HashSHA1, + }, + 0x001A: {IANAName: "TLS_DH_anon_WITH_DES_CBC_SHA"}, + 0x001B: {IANAName: "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA"}, + // 0x001C-0x001D Reserved to avoid conflicts with SSLv3 + 0x001E: {IANAName: "TLS_KRB5_WITH_DES_CBC_SHA"}, + 0x001F: {IANAName: "TLS_KRB5_WITH_3DES_EDE_CBC_SHA"}, + 0x0020: {IANAName: "TLS_KRB5_WITH_RC4_128_SHA"}, + 0x0021: {IANAName: "TLS_KRB5_WITH_IDEA_CBC_SHA"}, + 0x0022: {IANAName: "TLS_KRB5_WITH_DES_CBC_MD5"}, + 0x0023: {IANAName: "TLS_KRB5_WITH_3DES_EDE_CBC_MD5"}, + 0x0024: {IANAName: "TLS_KRB5_WITH_RC4_128_MD5"}, + 0x0025: {IANAName: "TLS_KRB5_WITH_IDEA_CBC_MD5"}, + 0x0026: {IANAName: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA"}, + 0x0027: {IANAName: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA"}, + 0x0028: {IANAName: "TLS_KRB5_EXPORT_WITH_RC4_40_SHA"}, + 0x0029: {IANAName: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"}, + 0x002A: {IANAName: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5"}, + 0x002B: {IANAName: "TLS_KRB5_EXPORT_WITH_RC4_40_MD5"}, + 0x002C: {IANAName: "TLS_PSK_WITH_NULL_SHA"}, + 0x002D: {IANAName: "TLS_DHE_PSK_WITH_NULL_SHA"}, + 0x002E: {IANAName: "TLS_RSA_PSK_WITH_NULL_SHA"}, + 0x002F: { + IANAName: "TLS_RSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "AES128-SHA", + GNUTLSName: "TLS_RSA_AES_128_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + problems: []Problem{ProblemNonEphemeral, ProblemRSA, ProblemCBC, ProblemSHA1}, + }, + 0x0030: {IANAName: "TLS_DH_DSS_WITH_AES_128_CBC_SHA"}, + 0x0031: {IANAName: "TLS_DH_RSA_WITH_AES_128_CBC_SHA"}, + 0x0032: {IANAName: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"}, + 0x0033: {IANAName: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"}, + 0x0034: {IANAName: "TLS_DH_anon_WITH_AES_128_CBC_SHA"}, + 0x0035: { + IANAName: "TLS_RSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "AES256-SHA", + GNUTLSName: "TLS_RSA_AES_256_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + problems: []Problem{ProblemNonEphemeral, ProblemRSA, ProblemCBC, ProblemSHA1}, + }, + 0x0036: {IANAName: "TLS_DH_DSS_WITH_AES_256_CBC_SHA"}, + 0x0037: {IANAName: "TLS_DH_RSA_WITH_AES_256_CBC_SHA"}, + 0x0038: {IANAName: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"}, + 0x0039: {IANAName: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"}, + 0x003A: {IANAName: "TLS_DH_anon_WITH_AES_256_CBC_SHA"}, + 0x003B: {IANAName: "TLS_RSA_WITH_NULL_SHA256"}, + 0x003C: { + IANAName: "TLS_RSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "AES128-GCM-SHA256", + GNUTLSName: "TLS_RSA_AES_128_GCM_SHA256", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + problems: []Problem{ProblemNonEphemeral, ProblemRSA}, + }, + 0x003D: {IANAName: "TLS_RSA_WITH_AES_256_CBC_SHA256"}, + 0x003E: {IANAName: "TLS_DH_DSS_WITH_AES_128_CBC_SHA256"}, + 0x003F: {IANAName: "TLS_DH_RSA_WITH_AES_128_CBC_SHA256"}, + 0x0040: {IANAName: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"}, + 0x0041: {IANAName: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"}, + 0x0042: {IANAName: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA"}, + 0x0043: {IANAName: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA"}, + 0x0044: {IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"}, + 0x0045: {IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"}, + 0x0046: {IANAName: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"}, + // 0x0047-0x004F Reserved to avoid conflicts with deployed implementations + // 0x0050-0x0058 Reserved to avoid conflicts + // 0x0059-0x005C Reserved to avoid conflicts with deployed implementations + // 0x005D-0x005F Unassigned + // 0x0060-0x0066 Reserved to avoid conflicts with widely deployed implementations + 0x0067: {IANAName: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"}, + 0x0068: {IANAName: "TLS_DH_DSS_WITH_AES_256_CBC_SHA256"}, + 0x0069: {IANAName: "TLS_DH_RSA_WITH_AES_256_CBC_SHA256"}, + 0x006A: {IANAName: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"}, + 0x006B: {IANAName: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"}, + 0x006C: {IANAName: "TLS_DH_anon_WITH_AES_128_CBC_SHA256"}, + 0x006D: {IANAName: "TLS_DH_anon_WITH_AES_256_CBC_SHA256"}, + // 0x006E-0x0083 Unassigned + 0x0084: {IANAName: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"}, + 0x0085: {IANAName: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"}, + 0x0086: {IANAName: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"}, + 0x0087: {IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"}, + 0x0088: {IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"}, + 0x0089: {IANAName: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"}, + 0x008A: {IANAName: "TLS_PSK_WITH_RC4_128_SHA"}, + 0x008B: {IANAName: "TLS_PSK_WITH_3DES_EDE_CBC_SHA"}, + 0x008C: {IANAName: "TLS_PSK_WITH_AES_128_CBC_SHA"}, + 0x008D: {IANAName: "TLS_PSK_WITH_AES_256_CBC_SHA"}, + 0x008E: {IANAName: "TLS_DHE_PSK_WITH_RC4_128_SHA"}, + 0x008F: {IANAName: "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"}, + 0x0090: {IANAName: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"}, + 0x0091: {IANAName: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"}, + 0x0092: {IANAName: "TLS_RSA_PSK_WITH_RC4_128_SHA"}, + 0x0093: {IANAName: "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"}, + 0x0094: {IANAName: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"}, + 0x0095: {IANAName: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"}, + 0x0096: {IANAName: "TLS_RSA_WITH_SEED_CBC_SHA"}, + 0x0097: {IANAName: "TLS_DH_DSS_WITH_SEED_CBC_SHA"}, + 0x0098: {IANAName: "TLS_DH_RSA_WITH_SEED_CBC_SHA"}, + 0x0099: {IANAName: "TLS_DHE_DSS_WITH_SEED_CBC_SHA"}, + 0x009A: {IANAName: "TLS_DHE_RSA_WITH_SEED_CBC_SHA"}, + 0x009B: {IANAName: "TLS_DH_anon_WITH_SEED_CBC_SHA"}, + 0x009C: { + IANAName: "TLS_RSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "AES128-GCM-SHA256", + GNUTLSName: "TLS_RSA_AES_128_GCM_SHA256", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + problems: []Problem{ProblemNonEphemeral, ProblemRSA}, + }, + 0x009D: { + IANAName: "TLS_RSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "AES256-GCM-SHA384", + GNUTLSName: "TLS_RSA_AES_256_GCM_SHA384", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + problems: []Problem{ProblemNonEphemeral, ProblemRSA}, + }, + 0x009E: {IANAName: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"}, + 0x009F: {IANAName: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"}, + 0x00A0: {IANAName: "TLS_DH_RSA_WITH_AES_128_GCM_SHA256"}, + 0x00A1: {IANAName: "TLS_DH_RSA_WITH_AES_256_GCM_SHA384"}, + 0x00A2: {IANAName: "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"}, + 0x00A3: {IANAName: "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"}, + 0x00A4: {IANAName: "TLS_DH_DSS_WITH_AES_128_GCM_SHA256"}, + 0x00A5: {IANAName: "TLS_DH_DSS_WITH_AES_256_GCM_SHA384"}, + 0x00A6: {IANAName: "TLS_DH_anon_WITH_AES_128_GCM_SHA256"}, + 0x00A7: {IANAName: "TLS_DH_anon_WITH_AES_256_GCM_SHA384"}, + 0x00A8: {IANAName: "TLS_PSK_WITH_AES_128_GCM_SHA256"}, + 0x00A9: {IANAName: "TLS_PSK_WITH_AES_256_GCM_SHA384"}, + 0x00AA: {IANAName: "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"}, + 0x00AB: {IANAName: "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"}, + 0x00AC: {IANAName: "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"}, + 0x00AD: {IANAName: "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"}, + 0x00AE: {IANAName: "TLS_PSK_WITH_AES_128_CBC_SHA256"}, + 0x00AF: {IANAName: "TLS_PSK_WITH_AES_256_CBC_SHA384"}, + 0x00B0: {IANAName: "TLS_PSK_WITH_NULL_SHA256"}, + 0x00B1: {IANAName: "TLS_PSK_WITH_NULL_SHA384"}, + 0x00B2: {IANAName: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"}, + 0x00B3: {IANAName: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"}, + 0x00B4: {IANAName: "TLS_DHE_PSK_WITH_NULL_SHA256"}, + 0x00B5: {IANAName: "TLS_DHE_PSK_WITH_NULL_SHA384"}, + 0x00B6: {IANAName: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"}, + 0x00B7: {IANAName: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"}, + 0x00B8: {IANAName: "TLS_RSA_PSK_WITH_NULL_SHA256"}, + 0x00B9: {IANAName: "TLS_RSA_PSK_WITH_NULL_SHA384"}, + 0x00BA: {IANAName: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0x00BB: {IANAName: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256"}, + 0x00BC: {IANAName: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0x00BD: {IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"}, + 0x00BE: {IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0x00BF: {IANAName: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"}, + 0x00C0: {IANAName: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"}, + 0x00C1: {IANAName: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256"}, + 0x00C2: {IANAName: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256"}, + 0x00C3: {IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"}, + 0x00C4: {IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"}, + 0x00C5: {IANAName: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"}, + 0x00C6: {IANAName: "TLS_SM4_GCM_SM3"}, + 0x00C7: {IANAName: "TLS_SM4_CCM_SM3"}, + // 0x00C8-0x00FE Unassigned + 0x00FF: {IANAName: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"}, + // 0x0100-0x0900 Unassigned + // 0x0A00-0x0A09 Unassigned + // 0x0A0A Reserved + // 0x0A0B-0x0AFF Unassigned + // 0x0B00-0x12FF Unassigned + // 0x1300 Unassigned + 0x1301: { + IANAName: "TLS_AES_128_GCM_SHA256", + OpenSSLName: "TLS_AES_128_GCM_SHA256", + + strength: StrengthRecommended, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + problems: []Problem{}, + }, + 0x1302: { + IANAName: "TLS_AES_256_GCM_SHA384", + OpenSSLName: "TLS_AES_256_GCM_SHA384", + + strength: StrengthRecommended, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + problems: []Problem{}, + }, + 0x1303: { + IANAName: "TLS_CHACHA20_POLY1305_SHA256", + + strength: StrengthRecommended, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + problems: []Problem{}, + }, + 0x1304: { + IANAName: "TLS_AES_128_CCM_SHA256", + OpenSSLName: "TLS_AES_128_CCM_SHA256", + + strength: StrengthSecure, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + problems: []Problem{}, + }, + 0x1305: { + IANAName: "TLS_AES_128_CCM_8_SHA256", + + strength: StrengthSecure, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + problems: []Problem{}, + }, + 0x1306: {IANAName: "TLS_AEGIS_256_SHA512"}, + 0x1307: {IANAName: "TLS_AEGIS_128L_SHA256"}, + // 0x1308-0x13FF Unassigned + // 0x1400-0x19FF Unassigned + // 0x1A00-0x1A19 Unassigned + // 0x1A1A Reserved + // 0x1A1B-0x1AFF Unassigned + // 0x1B00-0x29FF Unassigned + // 0x2A00-0x2A29 Unassigned + // 0x2A2A Reserved + // 0x2A2B-0x2AFF Unassigned + // 0x2B00-0x39FF Unassigned + // 0x3A00-0x3A39 Unassigned + // 0x3A3A Reserved + // 0x3A3B-0x3AFF Unassigned + // 0x3B00-0x49FF Unassigned + // 0x4A00-0x4A49 Unassigned + // 0x4A4A Reserved + // 0x4A4B-0x4AFF Unassigned + // 0x4B00-0x55FF Unassigned + 0x5600: {IANAName: "TLS_FALLBACK_SCSV"}, + // 0x5601-0x56FF Unassigned + // 0x5700-0x59FF Unassigned + // 0x5A00-0x5A59 Unassigned + // 0x5A5A Reserved + // 0x5A5B-0x5AFF Unassigned + // 0x5B00-0x69FF Unassigned + // 0x6A00-0x6A69 Unassigned + // 0x6A6A Reserved + // 0x6A6B-0x6AFF Unassigned + // 0x6B00-0x79FF Unassigned + // 0x7A00-0x7A79 Unassigned + // 0x7A7A Reserved + // 0x7A7B-0x7AFF Unassigned + // 0x7B00-0x89FF Unassigned + // 0x8A00-0x8A89 Unassigned + // 0x8A8A Reserved + // 0x8A8B-0x8AFF Unassigned + // 0x8B00-0x99FF Unassigned + // 0x9A00-0x9A99 Unassigned + // 0x9A9A Reserved + // 0x9A9B-0x9AFF Unassigned + // 0x9B00-0xA9FF Unassigned + // 0xAA00-0xAAA9 Unassigned + // 0xAAAA Reserved + // 0xAAAB-0xAAFF Unassigned + // 0xAB00-0xB9FF Unassigned + // 0xBA00-0xBAB9 Unassigned + // 0xBABA Reserved + // 0xBABB-0xBAFF Unassigned + // 0xBB00-0xBFFF Unassigned + // 0xC000 Unassigned + 0xC001: {IANAName: "TLS_ECDH_ECDSA_WITH_NULL_SHA"}, + 0xC002: {IANAName: "TLS_ECDH_ECDSA_WITH_RC4_128_SHA"}, + 0xC003: {IANAName: "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"}, + 0xC004: {IANAName: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"}, + 0xC005: {IANAName: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA"}, + 0xC006: {IANAName: "TLS_ECDHE_ECDSA_WITH_NULL_SHA"}, + 0xC007: { + IANAName: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_ARCFOUR_128_SHA1", + + strength: StrengthInsecure, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + problems: []Problem{ProblemRC4, ProblemSHA1}, + }, + 0xC008: {IANAName: "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"}, + 0xC009: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "ECDHE-ECDSA-AES128-SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + problems: []Problem{ProblemCBC, ProblemSHA1}, + }, + 0xC00A: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "ECDHE-ECDSA-AES256-SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + problems: []Problem{ProblemCBC, ProblemSHA1}, + }, + 0xC00B: {IANAName: "TLS_ECDH_RSA_WITH_NULL_SHA"}, + 0xC00C: {IANAName: "TLS_ECDH_RSA_WITH_RC4_128_SHA"}, + 0xC00D: {IANAName: "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA"}, + 0xC00E: {IANAName: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA"}, + 0xC00F: {IANAName: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA"}, + 0xC010: {IANAName: "TLS_ECDHE_RSA_WITH_NULL_SHA"}, + 0xC011: { + IANAName: "TLS_ECDHE_RSA_WITH_RC4_128_SHA", + GNUTLSName: "TLS_ECDHE_RSA_ARCFOUR_128_SHA1", + + strength: StrengthInsecure, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + problems: []Problem{ProblemRSA, ProblemRC4, ProblemSHA1}, + }, + 0xC012: { + IANAName: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "DES-CBC3-SHA", + GNUTLSName: "TLS_RSA_3DES_EDE_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexRSA, + authentication: SigRSA, + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + problems: []Problem{ProblemRSA, Problem3DES, ProblemCBC, ProblemSHA1}, + }, + 0xC013: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "ECDHE-RSA-AES128-SHA", + GNUTLSName: "TLS_ECDHE_RSA_AES_128_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + problems: []Problem{ProblemRSA, ProblemCBC, ProblemSHA1}, + }, + 0xC014: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "ECDHE-RSA-AES256-SHA", + GNUTLSName: "TLS_ECDHE_RSA_AES_256_CBC_SHA1", + + strength: StrengthWeak, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + problems: []Problem{ProblemRSA, ProblemCBC, ProblemSHA1}, + }, + 0xC015: {IANAName: "TLS_ECDH_anon_WITH_NULL_SHA"}, + 0xC016: {IANAName: "TLS_ECDH_anon_WITH_RC4_128_SHA"}, + 0xC017: {IANAName: "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"}, + 0xC018: {IANAName: "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"}, + 0xC019: {IANAName: "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"}, + 0xC01A: {IANAName: "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"}, + 0xC01B: {IANAName: "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"}, + 0xC01C: {IANAName: "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"}, + 0xC01D: {IANAName: "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"}, + 0xC01E: {IANAName: "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"}, + 0xC01F: {IANAName: "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"}, + 0xC020: {IANAName: "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"}, + 0xC021: {IANAName: "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"}, + 0xC022: {IANAName: "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"}, + 0xC023: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "ECDHE-ECDSA-AES128-SHA256", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_CBC_SHA256", + + strength: StrengthWeak, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + problems: []Problem{ProblemCBC}, + }, + 0xC024: {IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"}, + 0xC025: {IANAName: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"}, + 0xC026: {IANAName: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"}, + 0xC027: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "ECDHE-RSA-AES128-SHA256", + GNUTLSName: "TLS_ECDHE_RSA_AES_128_CBC_SHA256", + + strength: StrengthWeak, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + problems: []Problem{ProblemRSA, ProblemCBC}, + }, + 0xC028: {IANAName: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"}, + 0xC029: {IANAName: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"}, + 0xC02A: {IANAName: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"}, + 0xC02B: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "ECDHE-ECDSA-AES128-GCM-SHA256", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_GCM_SHA256", + + strength: StrengthRecommended, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + problems: []Problem{}, + }, + 0xC02C: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "ECDHE-ECDSA-AES256-GCM-SHA384", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_GCM_SHA384", + + strength: StrengthRecommended, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + problems: []Problem{}, + }, + 0xC02D: {IANAName: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256"}, + 0xC02E: {IANAName: "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"}, + 0xC02F: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "ECDHE-RSA-AES128-GCM-SHA256", + GNUTLSName: "TLS_ECDHE_RSA_AES_128_GCM_SHA256", + + strength: StrengthSecure, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + problems: []Problem{ProblemRSA}, + }, + 0xC030: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "ECDHE-RSA-AES256-GCM-SHA384", + GNUTLSName: "TLS_ECDHE_RSA_AES_256_GCM_SHA384", + + strength: StrengthSecure, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + problems: []Problem{ProblemRSA}, + }, + 0xC031: {IANAName: "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256"}, + 0xC032: {IANAName: "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384"}, + 0xC033: {IANAName: "TLS_ECDHE_PSK_WITH_RC4_128_SHA"}, + 0xC034: {IANAName: "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA"}, + 0xC035: {IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA"}, + 0xC036: {IANAName: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA"}, + 0xC037: {IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256"}, + 0xC038: {IANAName: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384"}, + 0xC039: {IANAName: "TLS_ECDHE_PSK_WITH_NULL_SHA"}, + 0xC03A: {IANAName: "TLS_ECDHE_PSK_WITH_NULL_SHA256"}, + 0xC03B: {IANAName: "TLS_ECDHE_PSK_WITH_NULL_SHA384"}, + 0xC03C: {IANAName: "TLS_RSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC03D: {IANAName: "TLS_RSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC03E: {IANAName: "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256"}, + 0xC03F: {IANAName: "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384"}, + 0xC040: {IANAName: "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC041: {IANAName: "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC042: {IANAName: "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256"}, + 0xC043: {IANAName: "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384"}, + 0xC044: {IANAName: "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC045: {IANAName: "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC046: {IANAName: "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256"}, + 0xC047: {IANAName: "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384"}, + 0xC048: {IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC049: {IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC04A: {IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC04B: {IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC04C: {IANAName: "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC04D: {IANAName: "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC04E: {IANAName: "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256"}, + 0xC04F: {IANAName: "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384"}, + 0xC050: {IANAName: "TLS_RSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC051: {IANAName: "TLS_RSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC052: {IANAName: "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC053: {IANAName: "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC054: {IANAName: "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC055: {IANAName: "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC056: {IANAName: "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256"}, + 0xC057: {IANAName: "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384"}, + 0xC058: {IANAName: "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256"}, + 0xC059: {IANAName: "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384"}, + 0xC05A: {IANAName: "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256"}, + 0xC05B: {IANAName: "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384"}, + 0xC05C: {IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC05D: {IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC05E: {IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC05F: {IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC060: {IANAName: "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC061: {IANAName: "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC062: {IANAName: "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256"}, + 0xC063: {IANAName: "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384"}, + 0xC064: {IANAName: "TLS_PSK_WITH_ARIA_128_CBC_SHA256"}, + 0xC065: {IANAName: "TLS_PSK_WITH_ARIA_256_CBC_SHA384"}, + 0xC066: {IANAName: "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256"}, + 0xC067: {IANAName: "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384"}, + 0xC068: {IANAName: "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256"}, + 0xC069: {IANAName: "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384"}, + 0xC06A: {IANAName: "TLS_PSK_WITH_ARIA_128_GCM_SHA256"}, + 0xC06B: {IANAName: "TLS_PSK_WITH_ARIA_256_GCM_SHA384"}, + 0xC06C: {IANAName: "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256"}, + 0xC06D: {IANAName: "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384"}, + 0xC06E: {IANAName: "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256"}, + 0xC06F: {IANAName: "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384"}, + 0xC070: {IANAName: "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256"}, + 0xC071: {IANAName: "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384"}, + 0xC072: {IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC073: {IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC074: {IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC075: {IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC076: {IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC077: {IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC078: {IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC079: {IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC07A: {IANAName: "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC07B: {IANAName: "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC07C: {IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC07D: {IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC07E: {IANAName: "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC07F: {IANAName: "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC080: {IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC081: {IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC082: {IANAName: "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC083: {IANAName: "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC084: {IANAName: "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC085: {IANAName: "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC086: {IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC087: {IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC088: {IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC089: {IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC08A: {IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC08B: {IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC08C: {IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC08D: {IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC08E: {IANAName: "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC08F: {IANAName: "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC090: {IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC091: {IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC092: {IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256"}, + 0xC093: {IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384"}, + 0xC094: {IANAName: "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC095: {IANAName: "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC096: {IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC097: {IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC098: {IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC099: {IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC09A: {IANAName: "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"}, + 0xC09B: {IANAName: "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"}, + 0xC09C: {IANAName: "TLS_RSA_WITH_AES_128_CCM"}, + 0xC09D: {IANAName: "TLS_RSA_WITH_AES_256_CCM"}, + 0xC09E: {IANAName: "TLS_DHE_RSA_WITH_AES_128_CCM"}, + 0xC09F: {IANAName: "TLS_DHE_RSA_WITH_AES_256_CCM"}, + 0xC0A0: {IANAName: "TLS_RSA_WITH_AES_128_CCM_8"}, + 0xC0A1: {IANAName: "TLS_RSA_WITH_AES_256_CCM_8"}, + 0xC0A2: {IANAName: "TLS_DHE_RSA_WITH_AES_128_CCM_8"}, + 0xC0A3: {IANAName: "TLS_DHE_RSA_WITH_AES_256_CCM_8"}, + 0xC0A4: {IANAName: "TLS_PSK_WITH_AES_128_CCM"}, + 0xC0A5: {IANAName: "TLS_PSK_WITH_AES_256_CCM"}, + 0xC0A6: {IANAName: "TLS_DHE_PSK_WITH_AES_128_CCM"}, + 0xC0A7: {IANAName: "TLS_DHE_PSK_WITH_AES_256_CCM"}, + 0xC0A8: {IANAName: "TLS_PSK_WITH_AES_128_CCM_8"}, + 0xC0A9: {IANAName: "TLS_PSK_WITH_AES_256_CCM_8"}, + 0xC0AA: {IANAName: "TLS_PSK_DHE_WITH_AES_128_CCM_8"}, + 0xC0AB: {IANAName: "TLS_PSK_DHE_WITH_AES_256_CCM_8"}, + 0xC0AC: {IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM"}, + 0xC0AD: {IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM"}, + 0xC0AE: {IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8"}, + 0xC0AF: {IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8"}, + 0xC0B0: {IANAName: "TLS_ECCPWD_WITH_AES_128_GCM_SHA256"}, + 0xC0B1: {IANAName: "TLS_ECCPWD_WITH_AES_256_GCM_SHA384"}, + 0xC0B2: {IANAName: "TLS_ECCPWD_WITH_AES_128_CCM_SHA256"}, + 0xC0B3: {IANAName: "TLS_ECCPWD_WITH_AES_256_CCM_SHA384"}, + 0xC0B4: {IANAName: "TLS_SHA256_SHA256"}, + 0xC0B5: {IANAName: "TLS_SHA384_SHA384"}, + // 0xC0B6-0xC0FF Unassigned + 0xC100: {IANAName: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC"}, + 0xC101: {IANAName: "TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC"}, + 0xC102: {IANAName: "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT"}, + 0xC103: {IANAName: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L"}, + 0xC104: {IANAName: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_L"}, + 0xC105: {IANAName: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S"}, + 0xC106: {IANAName: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_S"}, + // 0xC107-0xC1FF Unassigned + // 0xC200-0xC9FF Unassigned + // 0xCA00-0xCAC9 Unassigned + // 0xCACA Reserved + // 0xCACB-0xCAFF Unassigned + // 0xCB00-0xCBFF Unassigned + // 0xCC00-0xCCA7 Unassigned + 0xCCA8: { + IANAName: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "ECDHE-RSA-CHACHA20-POLY1305", + GNUTLSName: "TLS_ECDHE_RSA_CHACHA20_POLY1305", + + strength: StrengthSecure, + keyExchange: KexECDHE, + authentication: SigRSA, + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + problems: []Problem{ProblemRSA}, + }, + 0xCCA9: { + IANAName: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "ECDHE-ECDSA-CHACHA20-POLY1305", + GNUTLSName: "TLS_ECDHE_ECDSA_CHACHA20_POLY1305", + + strength: StrengthRecommended, + keyExchange: KexECDHE, + authentication: SigECDSA, + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + problems: []Problem{}, + }, + 0xCCAA: {IANAName: "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256"}, + 0xCCAB: {IANAName: "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256"}, + 0xCCAC: {IANAName: "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256"}, + 0xCCAD: {IANAName: "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256"}, + 0xCCAE: {IANAName: "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256"}, + // 0xCCAF-0xCCFF Unassigned + // 0xCD00-0xCFFF Unassigned + // 0xD000 Unassigned + 0xD001: {IANAName: "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256"}, + 0xD002: {IANAName: "TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384"}, + 0xD003: {IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256"}, + // 0xD004 Unassigned + 0xD005: {IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256"}, + // 0xD006-0xD0FF Unassigned + // 0xD100-0xD9FF Unassigned + // 0xDA00-0xDAD9 Unassigned + // 0xDADA Reserved + // 0xDADB-0xDAFF Unassigned + // 0xDB00-0xE9FF Unassigned + // 0xEA00-0xEAE9 Unassigned + // 0xEAEA Reserved + // 0xEAEB-0xEAFF Unassigned + // 0xEB00-0xF9FF Unassigned + // 0xFA00-0xFAC9 Unassigned + // 0xFAFA Reserved + // 0xFAFB-0xFAFF Unassigned + // 0xFB00-0xFDFF Unassigned + // 0xFE00-0xFEFD Unassigned + // 0xFEFE-0xFEFF Reserved to avoid conflicts with widely deployed implementations + // 0xFF00-0xFFFF Reserved for Private Use +} diff --git a/pkg/httptls/encryption.go b/pkg/httptls/encryption.go new file mode 100644 index 0000000..7ec8e75 --- /dev/null +++ b/pkg/httptls/encryption.go @@ -0,0 +1,96 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type EncryptionAlgo int + +const ( + // Encryption algorithms + Encrypt28147CNT EncryptionAlgo = iota + Encrypt3DESEDECBC + EncryptAES128CBC + EncryptAES128CCM + EncryptAES128CCM8 + EncryptAES128GCM + EncryptAES256CBC + EncryptAES256CCM + EncryptAES256CCM8 + EncryptAES256GCM + EncryptARIA128CBC + EncryptARIA128GCM + EncryptARIA256CBC + EncryptARIA256GCM + EncryptCamellia128CBC + EncryptCamellia128GCM + EncryptCamellia256CBC + EncryptCamellia256GCM + EncryptChaChaPoly + EncryptDESCBC + EncryptDESCBC40 + EncryptDES40CBC + EncryptIDEACBC + EncryptKuznyechikCTR + EncryptKuznyechikMGML + EncryptKuznyechikMGMS + EncryptMagmaCTR + EncryptMagmaMGML + EncryptMagmaMGMS + EncryptNULL + EncryptRC2CBC40 + EncryptRC4128 + EncryptRC440 + EncryptSEEDCBC + EncryptSM4CCM + EncryptSM4GCM +) + +var EncryptionAlgoList = map[EncryptionAlgo]string{ + Encrypt28147CNT: "28147-CNT", // Russia; Россия + Encrypt3DESEDECBC: "3DES-EDE-CBC", // Ancient + EncryptAES128CBC: "AES-128-CBC", // International Standard + EncryptAES128CCM: "AES-128-CCM", // International Standard + EncryptAES128CCM8: "AES-128-CCM-8", // International Standard + EncryptAES128GCM: "AES-128-GCM", // International Standard + EncryptAES256CBC: "AES-256-CBC", // International Standard + EncryptAES256CCM: "AES-256-CCM", // International Standard + EncryptAES256CCM8: "AES-256-CCM-8", // International Standard + EncryptAES256GCM: "AES-256-GCM", // International Standard + EncryptARIA128CBC: "ARIA-128-CBC", // South Korea; 대한민국 + EncryptARIA128GCM: "ARIA-128-GCM", // South Korea; 대한민국 + EncryptARIA256CBC: "ARIA-256-CBC", // South Korea; 대한민국 + EncryptARIA256GCM: "ARIA-256-GCM", // South Korea; 대한민국 + EncryptCamellia128CBC: "Camellia-128-CBC", // Japan, 日本 + EncryptCamellia128GCM: "Camellia-128-GCM", // Japan, 日本 + EncryptCamellia256CBC: "Camellia-256-CBC", // Japan, 日本 + EncryptCamellia256GCM: "Camellia-256-GCM", // Japan, 日本 + EncryptChaChaPoly: "CHACHA20-POLY1305", // International Standard + EncryptDESCBC: "DES-CBC", // Ancient + EncryptDESCBC40: "DES-CBC-40", // Ancient + EncryptDES40CBC: "DES-40-CBC", // Ancient + EncryptIDEACBC: "IDEA-CBC", // Ancient + EncryptKuznyechikCTR: "Kuznyechik-CTR", // Russia; Россия + EncryptKuznyechikMGML: "Kuznyechik-MGM-L", // Russia; Россия + EncryptKuznyechikMGMS: "Kuznyechik-MGM-S", // Russia; Россия + EncryptMagmaCTR: "Magma-CTR", // Russia; Россия + EncryptMagmaMGML: "Magma-MGM-L", // Russia; Россия + EncryptMagmaMGMS: "Magma-MGM-S", // Russia; Россия + EncryptNULL: "NULL", // + EncryptRC2CBC40: "RC2-CBC-40", // Ancient + EncryptRC4128: "RC4-128", // Ancient + EncryptRC440: "RC4-40", // Ancient + EncryptSEEDCBC: "SEED-CBC", // Ancient + EncryptSM4CCM: "SM4-CCM", // China; 中国 + EncryptSM4GCM: "SM4-GCM", // China; 中国 +} diff --git a/pkg/httptls/hashing.go b/pkg/httptls/hashing.go new file mode 100644 index 0000000..8b24cf2 --- /dev/null +++ b/pkg/httptls/hashing.go @@ -0,0 +1,50 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type Hash int + +const ( + // Hashing functions + HashNone Hash = 0x0000 + HashMD5 Hash = 0x0001 + HashSHA1 Hash = 0x0002 + HashSHA224 Hash = 0x0003 + HashSHA256 Hash = 0x0004 + HashSHA384 Hash = 0x0005 + HashSHA512 Hash = 0x0006 + HashReserved Hash = 0x0007 + HashIntrinsic Hash = 0x0008 + // 0x0009-0x00DF Reserved + // 0x00E0-0x00FF Reserved for Private Use + + // The following are not assigned real values from the IANA. + HashGOST Hash = 0x0100 + HashNULL Hash = 0x0101 + HashSM3 Hash = 0x0102 +) + +var HashList = map[Hash]string{ + HashNone: "None", + HashMD5: "MD5", + HashSHA1: "SHA-1", + HashSHA224: "SHA-224", + HashSHA256: "SHA-256", + HashSHA384: "SHA-384", + HashSHA512: "SHA-512", + HashGOST: "GOSTR341012", + HashNULL: "NULL", + HashSM3: "SM3", +} diff --git a/pkg/httptls/httptls.go b/pkg/httptls/httptls.go new file mode 100644 index 0000000..abf429f --- /dev/null +++ b/pkg/httptls/httptls.go @@ -0,0 +1,122 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +import ( + "crypto/tls" + "fmt" + "net" + "time" + + "github.com/goware/urlx" +) + +// getHost parses the provided domain name, and returns the host or (host + +// port), whichever pairing was provided. +func getHost(domain string) (string, error) { + u, err := urlx.Parse(domain) + if err != nil { + return "", fmt.Errorf("could not parse the URL: %w", err) + } + + return u.Host, nil +} + +func ResolveEndpointToIPs(domain string) ([]string, error) { + host, err := getHost(domain) + if err != nil { + return []string{}, err + } + + addrs, err := net.LookupHost(host) + if err != nil { + host = "www." + host + + addrs, err = net.LookupHost(host) + if err != nil { + return []string{}, fmt.Errorf("could not resolve host `%s`: %w", host, err) + } + } + + return addrs, nil +} + +func TCPConnect(ip string, port int, timeout time.Duration) (bool, error) { + ipPort := net.JoinHostPort(ip, fmt.Sprintf("%d", port)) + + conn, err := net.DialTimeout("tcp", ipPort, timeout) + if err != nil { + return false, fmt.Errorf("could not dial %s within %s: %w", ipPort, timeout, err) + } + + conn.Close() + + return true, nil +} + +func TLSConnect( + host string, + port int, + timeout time.Duration, + forceTLS ...uint16, +) (*tls.Conn, *tls.ClientHelloInfo, error) { + listPort := "" + if port != 80 && port != 443 { + listPort = fmt.Sprintf(":%d", port) + } + + var clientHello *tls.ClientHelloInfo + + config := &tls.Config{ + ServerName: host + listPort, + GetConfigForClient: func(hi *tls.ClientHelloInfo) (*tls.Config, error) { + clientHello = hi + + return nil, nil + }, + } + + if len(forceTLS) > 0 { + config.MinVersion = forceTLS[0] + config.MaxVersion = forceTLS[0] + } + + timeoutDialer := &net.Dialer{ + Timeout: timeout, + } + + hostPort := net.JoinHostPort(host, fmt.Sprintf("%d", port)) + conn2 := &tls.Conn{} + + conn1, err := tls.DialWithDialer(timeoutDialer, "tcp", hostPort, config) + if err != nil { + conn1.Close() + hostPort = "www." + hostPort + config.ServerName = hostPort + + conn2, err = tls.DialWithDialer(timeoutDialer, "tcp", hostPort, config) + if err != nil { + return &tls.Conn{}, clientHello, fmt.Errorf("could not dial %s within %s: %w", hostPort, timeout, err) + } + + return conn2, clientHello, nil + } + + return conn1, clientHello, nil +} + +// o.SupportedSuites = append(o.SupportedSuites, fmt.Sprintf("Unknown, 0x%x", suite)) +// o.SupportedCurves = append(o.SupportedCurves, fmt.Sprintf("Unknown, 0x%x", curve)) +// o.SupportedPoints = append(o.SupportedPoints, fmt.Sprintf("0x%x", point)) diff --git a/pkg/httptls/httptls_test.go b/pkg/httptls/httptls_test.go new file mode 100644 index 0000000..b6cddca --- /dev/null +++ b/pkg/httptls/httptls_test.go @@ -0,0 +1,321 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +import ( + "regexp" + "slices" + "testing" + "time" +) + +// +func TestResolveEndpointToIPs(t *testing.T) { // lint:allow_complexity + for name, tc := range map[string]struct { + Input string + Expected []string + ExpectedErr *regexp.Regexp + }{ + "scheme:cloudflare.com": { + Input: "https://cloudflare.com", + Expected: []string{ + "104.16.132.229", + "104.16.133.229", + "2606:4700::6810:84e5", + "2606:4700::6810:85e5", + }, + }, + "cloudflare.com": { + Input: "cloudflare.com", + Expected: []string{ + "104.16.132.229", + "104.16.133.229", + "2606:4700::6810:84e5", + "2606:4700::6810:85e5", + }, + }, + "scheme:github.com": { + Input: "https://github.com", + Expected: []string{ + "140.82.112.3", + "140.82.112.4", + "140.82.113.3", + "140.82.113.4", + "140.82.114.3", + "140.82.114.4", + }, + }, + "github.com": { + Input: "github.com", + Expected: []string{ + "140.82.112.3", + "140.82.112.4", + "140.82.113.3", + "140.82.113.4", + "140.82.114.3", + "140.82.114.4", + }, + }, + "scheme:ryanparman.com": { + Input: "https://ryanparman.com", + Expected: []string{ + "172.66.40.211", + "172.66.43.45", + "2606:4700:3108::ac42:28d3", + "2606:4700:3108::ac42:2b2d", + }, + }, + "ryanparman.com": { + Input: "ryanparman.com", + Expected: []string{ + "172.66.40.211", + "172.66.43.45", + "2606:4700:3108::ac42:28d3", + "2606:4700:3108::ac42:2b2d", + }, + }, + "scheme:example.com": { + Input: "http://example.com", + Expected: []string{ + "2606:2800:21f:cb07:6820:80da:af6b:8b2c", + "93.184.215.14", + }, + }, + "example.com": { + Input: "example.com", + Expected: []string{ + "2606:2800:21f:cb07:6820:80da:af6b:8b2c", + "93.184.215.14", + }, + }, + "scheme:http.badssl.com": { + Input: "http://http.badssl.com", + Expected: []string{ + "104.154.89.105", + }, + }, + "http.badssl.com": { + Input: "http.badssl.com", + Expected: []string{ + "104.154.89.105", + }, + }, + "scheme:captive.apple.com": { + Input: "http://captive.apple.com", + Expected: []string{ + "17.253.23.201", + "17.253.23.202", + "17.253.23.203", + "17.253.23.204", + "17.253.23.205", + "17.253.23.206", + "2620:149:a1e:f000::1", + "2620:149:a1e:f000::3", + "2620:149:a1e:f000::5", + "2620:149:a1e:f100::2", + "2620:149:a1e:f100::4", + "2620:149:a1e:f100::6", + }, + }, + "scheme:detectportal.firefox.com": { + Input: "http://detectportal.firefox.com", + Expected: []string{ + "2600:1901:0:38d7::", + "34.107.221.82", + }, + }, + } { + t.Run(name, func(t *testing.T) { + actual, err := ResolveEndpointToIPs(tc.Input) + + if len(actual) < 1 { + t.Errorf("Expected at least one IP address for %s, got '%#v'", tc.Input, len(actual)) + } + + if err != nil && tc.ExpectedErr != nil { + if !tc.ExpectedErr.MatchString(err.Error()) { + t.Errorf("Expected error '%#v', got '%#v'", tc.ExpectedErr, err) + } + } + + for i := range actual { + a := actual[i] + + if !slices.Contains(tc.Expected, a) { + t.Errorf("Expected to find %#v inside %#v", a, tc.Expected) + } + } + }) + } +} + +// +func TestTCPConnect(t *testing.T) { // lint:allow_complexity + for name, tc := range map[string]struct { + IP string + Port int + Expected bool + ExpectedErr *regexp.Regexp + }{ + // ryanparman.com + "172.66.40.211:443": { + IP: "172.66.40.211", + Port: 443, + Expected: true, + }, + // ryanparman.com + "172.66.43.45:443": { + IP: "172.66.43.45", + Port: 443, + Expected: true, + }, + // ryanparman.com + "2606:4700:3108::ac42:28d3:443": { + IP: "2606:4700:3108::ac42:28d3", + Port: 443, + Expected: true, + }, + // ryanparman.com + "2606:4700:3108::ac42:2b2d:443": { + IP: "2606:4700:3108::ac42:2b2d", + Port: 443, + Expected: true, + }, + // example.com + "2606:2800:21f:cb07:6820:80da:af6b:8b2c:443": { + IP: "2606:2800:21f:cb07:6820:80da:af6b:8b2c", + Port: 443, + Expected: true, + }, + // example.com + "93.184.215.14:443": { + IP: "93.184.215.14", + Port: 443, + Expected: true, + }, + // example.com + "2606:2800:21f:cb07:6820:80da:af6b:8b2c:80": { // Flaky + IP: "2606:2800:21f:cb07:6820:80da:af6b:8b2c", + Port: 80, + Expected: true, + }, + // example.com + "93.184.215.14:80": { // Flaky + IP: "93.184.215.14", + Port: 80, + Expected: true, + }, + // http.badssl.com + "104.154.89.105:80": { + IP: "104.154.89.105", + Port: 80, + Expected: true, + }, + // http.badssl.com + "104.154.89.105:443": { + IP: "104.154.89.105", + Port: 443, + Expected: true, + }, + } { + t.Run(name, func(t *testing.T) { + actual, err := TCPConnect(tc.IP, tc.Port, 1*time.Second) + if err != nil && tc.ExpectedErr != nil { + if !tc.ExpectedErr.MatchString(err.Error()) { + t.Errorf("Expected error '%#v', got '%#v'", tc.ExpectedErr, err) + } + } + + if actual != tc.Expected { + t.Errorf("Expected %#v, got %#v", tc.Expected, actual) + } + }) + } +} + +// +// func TestTLSConnect(t *testing.T) { // lint:allow_complexity +// for name, tc := range map[string]struct { +// Host string +// Port int +// Expected int +// ExpectedErr *regexp.Regexp +// TLSVersion uint16 +// }{ +// "cloudflare.com": { +// Host: "cloudflare.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// "github.com": { +// Host: "github.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// "ryanparman.com": { +// Host: "ryanparman.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// "example.com": { +// Host: "example.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// "http.badssl.com": { +// Host: "http.badssl.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// "captive.apple.com": { +// Host: "captive.apple.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// "detectportal.firefox.com": { +// Host: "detectportal.firefox.com", +// Port: 443, +// TLSVersion: tls.VersionTLS12, +// }, +// } { +// t.Run(name, func(t *testing.T) { +// actual, chi, err := TLSConnect(tc.Host, tc.Port, 1*time.Second, tc.TLSVersion) +// if err != nil && tc.ExpectedErr != nil { +// if !tc.ExpectedErr.MatchString(err.Error()) { +// t.Errorf("Expected error '%#v', got '%#v'", tc.ExpectedErr, err) +// } +// } + +// conn := actual.ConnectionState() +// actual.Close() + +// pp := debug.GetSpew() +// pp.Dump(conn) +// fmt.Println("---------------------------------------------------------------------------") +// pp.Dump(chi) +// fmt.Println("---------------------------------------------------------------------------") + +// // for i := range actual { +// // a := actual[i] + +// // if !slices.Contains(tc.Expected, a) { +// // t.Errorf("Expected to find %#v inside %#v", a, tc.Expected) +// // } +// // } + +// panic("1") +// }) +// } +// } diff --git a/pkg/httptls/key_exchange.go b/pkg/httptls/key_exchange.go new file mode 100644 index 0000000..4b9a070 --- /dev/null +++ b/pkg/httptls/key_exchange.go @@ -0,0 +1,48 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type KeyExchange int + +const ( + // Key exchange algorithms + KexNone KeyExchange = iota + KexDH + KexDHE + KexECCPWD + KexECDH + KexECDHE + KexGOST256 + KexKRB5 + KexNULL + KexPSK + KexRSA + KexSRP +) + +var KeyExchangeList = map[KeyExchange]string{ + KexNone: "None", + KexDH: "Diffie-Hellman (Non-Ephemeral) (ECDH)", + KexDHE: "Diffie-Hellman (Ephemeral) (ECDHE)", + KexECCPWD: "ECCPWD", + KexECDH: "Elliptic Curve Diffie-Hellman (Non-Ephemeral) (ECDH)", + KexECDHE: "Elliptic Curve Diffie-Hellman (Ephemeral) (ECDHE)", + KexGOST256: "Russian GOST 256-bit", + KexKRB5: "Kerberos (KRB5)", + KexNULL: "NULL", + KexPSK: "Pre-Shared Keys (PSK)", + KexRSA: "RSA", + KexSRP: "Secure Remote Password (SRP)", +} diff --git a/pkg/httptls/links.go b/pkg/httptls/links.go new file mode 100644 index 0000000..483fa63 --- /dev/null +++ b/pkg/httptls/links.go @@ -0,0 +1,33 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +const ( + // Links to more information + Link3DES = "https://sweet32.info" + LinkCBC = "https://www.isg.rhul.ac.uk/tls/Lucky13.html" + LinkCSAWSALB = "https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html" + LinkCSCloudflare = "https://developers.cloudflare.com/ssl/edge-certificates/additional-options/cipher-suites/supported-cipher-suites/" + LinkCSInfo = "https://ciphersuite.info/cs/%s" + LinkDeprecateLegacyTLS = "https://datatracker.ietf.org/doc/html/rfc8996" + LinkECH = "https://blog.cloudflare.com/announcing-encrypted-client-hello/" + LinkExport = "https://freakattack.com" + LinkMD5 = "https://www.schneier.com/blog/archives/2008/12/forging_ssl_cer.html" + LinkNISTDSS = "https://csrc.nist.gov/pubs/fips/186-5/final" + LinkObsoleteKEX = "https://datatracker.ietf.org/doc/html/draft-ietf-tls-deprecate-obsolete-kex" + LinkRC2 = "https://www.schneier.com/wp-content/uploads/2016/02/paper-relatedkey.pdf" + LinkRC4 = "https://datatracker.ietf.org/doc/html/rfc7465" + LinkSHA1 = "https://shattered.io" +) diff --git a/pkg/httptls/problems.go b/pkg/httptls/problems.go new file mode 100644 index 0000000..9083bd4 --- /dev/null +++ b/pkg/httptls/problems.go @@ -0,0 +1,79 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type ( + Problem int + + ProblemData struct { + // Type is a string representation of the classification of the problem. + Type string `json:"type,omitempty"` + + // A friendly description of the problem. + Description string `json:"description,omitempty"` + + // A set of URLs with more information about this problem. + URLs []string `json:"urls,omitempty"` + } +) + +const ( + // Problem types + ProblemNonEphemeral Problem = iota + Problem3DES + ProblemCBC + ProblemRC4 + ProblemRSA + ProblemSHA1 + ProblemTLSVersion +) + +var ( + ProblemList = map[Problem]string{ + ProblemNonEphemeral: "Ephemeral exchange algorithms are more secure because they clean-up leftover data. " + + "Non-ephemeral exchange algorithms (like this one) leave leftover data behind, which can allow an " + + "attacker to gain access to the encryption keys.", + Problem3DES: "Though Triple-DES (3DES) has not yet been broken, it suffers from several vulnerabilities " + + "(known as 'Lucky 13').", + ProblemCBC: "The CBC encryption algorithm suffers from a handful of vulnerabilites (known as 'BEAST'). " + + "GCM encryption should be preferred over CBC.", + ProblemRC4: "The IETF has officially prohibited RC4 for use in TLS in RFC-7465.", + ProblemRSA: "While not a vulnerability, RSA authentication with keys longer than 3072 bits may experience " + + "heavy performance issues. This can lead to denial-of-service style attacks.", + ProblemSHA1: "The Secure Hash Algorithm 1 (SHA-1) was cracked in 2017", + ProblemTLSVersion: "The IETF has officially deprecated TLS versions 1.0 and 1.1 in RFC-8996. There are " + + "known vulnerabilities in this TLS versions.", + } + + ProblemTypeList = map[Problem]string{ + ProblemNonEphemeral: "Non-Ephemeral", + Problem3DES: "Triple-DES", + ProblemCBC: "CBC", + ProblemRC4: "RC4", + ProblemRSA: "RSA Authentication", + ProblemSHA1: "SHA-1", + ProblemTLSVersion: "Legacy TLS", + } + + ProblemURLList = map[Problem][]string{ + ProblemNonEphemeral: {LinkCSAWSALB, LinkCSCloudflare, LinkObsoleteKEX}, + Problem3DES: {LinkCSAWSALB, LinkCSCloudflare, Link3DES}, + ProblemCBC: {LinkCSAWSALB, LinkCSCloudflare, LinkCBC}, + ProblemRC4: {LinkCSAWSALB, LinkCSCloudflare, LinkRC4}, + ProblemRSA: {LinkCSAWSALB, LinkCSCloudflare}, + ProblemSHA1: {LinkCSAWSALB, LinkCSCloudflare, LinkSHA1}, + ProblemTLSVersion: {LinkCSAWSALB, LinkCSCloudflare, LinkDeprecateLegacyTLS}, + } +) diff --git a/pkg/httptls/signatures.go b/pkg/httptls/signatures.go new file mode 100644 index 0000000..340d86f --- /dev/null +++ b/pkg/httptls/signatures.go @@ -0,0 +1,48 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +type Signature int + +const ( + // Signature algorithms + SigAnonymous Signature = 0x0000 + SigRSA Signature = 0x0001 + SigDSA Signature = 0x0002 + SigECDSA Signature = 0x0003 + // 0x0004-0x0006 Reserved + SigED25519 Signature = 0x0007 + SigED448 Signature = 0x0008 + // 0x0009-0x003F Reserved + SigGOST256 Signature = 0x0040 + SigGOST512 Signature = 0x0041 + // 0x0042-0x00DF Reserved + // 0x00E0-0x00FF Reserved for Private Use + + // The following are not assigned real values from the IANA. + SigNULL Signature = 0x0100 +) + +var AuthenticationList = map[Signature]string{ + SigAnonymous: "Anonymous", + SigRSA: "RSA", + SigDSA: "NIST Digital Signature (DSA)", + SigECDSA: "Elliptic Curve Digital Signature (ECDSA)", + SigED25519: "Edwards-curve Digital Signature (ED25519)", + SigED448: "Edwards-curve Digital Signature (ED448)", + SigGOST256: "Russian GOST 256-bit", + SigGOST512: "Russian GOST 512-bit", + SigNULL: "NULL", +} diff --git a/pkg/httptls/structs.go b/pkg/httptls/structs.go new file mode 100644 index 0000000..5ccca63 --- /dev/null +++ b/pkg/httptls/structs.go @@ -0,0 +1,61 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +import ( + "encoding/json" + "fmt" +) + +type ( + TLSConnection struct { + // Version represents the version of TLS. + Version string `json:"version"` + + // CipherSuite represents the cipher suites that the connection advertises. + CipherSuites []CipherData `json:"cipherSuites"` + + // ECH represents whether or not the server supports Encrypted Client Hello. + ECH bool `json:"ech"` + } +) + +func (c *CipherData) Populate() { + c.Strength = StrengthList[c.strength] + c.KeyExchange = KeyExchangeList[c.keyExchange] + c.Authentication = AuthenticationList[c.authentication] + c.EncryptionAlgo = EncryptionAlgoList[c.encryptionAlgo] + c.Hash = HashList[c.hash] + + for i := range c.problems { + p := c.problems[i] + + c.Problems = append(c.Problems, ProblemData{ + Type: ProblemTypeList[p], + Description: ProblemList[p], + URLs: append(ProblemURLList[p], fmt.Sprintf(LinkCSInfo, c.IANAName)), + }) + } +} + +func (t *TLSConnection) ToJSON() (string, error) { + for i := range t.CipherSuites { + t.CipherSuites[i].Populate() + } + + b, err := json.Marshal(t) + + return string(b), err +} diff --git a/pkg/httptls/tls_versions.go b/pkg/httptls/tls_versions.go new file mode 100644 index 0000000..4a178fb --- /dev/null +++ b/pkg/httptls/tls_versions.go @@ -0,0 +1,24 @@ +// Copyright 2024, Northwood Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package httptls + +var TLSVersion = map[uint16]string{ + 0x0002: "SSL v2", + 0x0300: "SSL v3", + 0x0301: "TLS 1.0", + 0x0302: "TLS 1.1", + 0x0303: "TLS 1.2", + 0x0304: "TLS 1.3", +} diff --git a/pkg/httptls/tmp.go b/pkg/httptls/tmp.go new file mode 100644 index 0000000..aa9c7f7 --- /dev/null +++ b/pkg/httptls/tmp.go @@ -0,0 +1,3067 @@ + 0x0017: { + IANAName: "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptRC440, + hash: HashMD5, + }, + 0x001B: { + IANAName: "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "ADH-DES-CBC3-SHA", + GNUTLSName: "TLS_DH_ANON_3DES_EDE_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0034: { + IANAName: "TLS_DH_anon_WITH_AES_128_CBC_SHA", + OpenSSLName: "ADH-AES128-SHA", + GNUTLSName: "TLS_DH_ANON_AES_128_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x006C: { + IANAName: "TLS_DH_anon_WITH_AES_128_CBC_SHA256", + OpenSSLName: "ADH-AES128-SHA256", + GNUTLSName: "TLS_DH_ANON_AES_128_CBC_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0x00A6: { + IANAName: "TLS_DH_anon_WITH_AES_128_GCM_SHA256", + OpenSSLName: "ADH-AES128-GCM-SHA256", + GNUTLSName: "TLS_DH_ANON_AES_128_GCM_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x003A: { + IANAName: "TLS_DH_anon_WITH_AES_256_CBC_SHA", + OpenSSLName: "ADH-AES256-SHA", + GNUTLSName: "TLS_DH_ANON_AES_256_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x006D: { + IANAName: "TLS_DH_anon_WITH_AES_256_CBC_SHA256", + OpenSSLName: "ADH-AES256-SHA256", + GNUTLSName: "TLS_DH_ANON_AES_256_CBC_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA256, + }, + 0x00A7: { + IANAName: "TLS_DH_anon_WITH_AES_256_GCM_SHA384", + OpenSSLName: "ADH-AES256-GCM-SHA384", + GNUTLSName: "TLS_DH_ANON_AES_256_GCM_SHA384", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC046: { + IANAName: "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC05A: { + IANAName: "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC047: { + IANAName: "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC05B: { + IANAName: "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0x0046: { + IANAName: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA", + OpenSSLName: "ADH-CAMELLIA128-SHA", + GNUTLSName: "TLS_DH_ANON_CAMELLIA_128_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA1, + }, + 0x00BF: { + IANAName: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "ADH-CAMELLIA128-SHA256", + GNUTLSName: "TLS_DH_ANON_CAMELLIA_128_CBC_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC084: { + IANAName: "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_DH_ANON_CAMELLIA_128_GCM_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0x0089: { + IANAName: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA", + OpenSSLName: "ADH-CAMELLIA256-SHA", + GNUTLSName: "TLS_DH_ANON_CAMELLIA_256_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA1, + }, + 0x00C5: { + IANAName: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256", + OpenSSLName: "ADH-CAMELLIA256-SHA256", + GNUTLSName: "TLS_DH_ANON_CAMELLIA_256_CBC_SHA256", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA256, + }, + 0xC085: { + IANAName: "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_DH_ANON_CAMELLIA_256_GCM_SHA384", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0x001A: { + IANAName: "TLS_DH_anon_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x0018: { + IANAName: "TLS_DH_anon_WITH_RC4_128_MD5", + GNUTLSName: "TLS_DH_ANON_ARCFOUR_128_MD5", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptRC4128, + hash: HashMD5, + }, + 0x009B: { + IANAName: "TLS_DH_anon_WITH_SEED_CBC_SHA", + OpenSSLName: "ADH-SEED-SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: SigAnonymous, + encryptionAlgo: EncryptSEEDCBC, + hash: HashSHA1, + }, + 0x000B: { + IANAName: "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptDES40CBC, + hash: HashSHA1, + }, + 0x000D: { + IANAName: "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0030: { + IANAName: "TLS_DH_DSS_WITH_AES_128_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x003E: { + IANAName: "TLS_DH_DSS_WITH_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0x00A4: { + IANAName: "TLS_DH_DSS_WITH_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0036: { + IANAName: "TLS_DH_DSS_WITH_AES_256_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x0068: { + IANAName: "TLS_DH_DSS_WITH_AES_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA256, + }, + 0x00A5: { + IANAName: "TLS_DH_DSS_WITH_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC03E: { + IANAName: "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC058: { + IANAName: "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC03F: { + IANAName: "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC059: { + IANAName: "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0x0042: { + IANAName: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA1, + }, + 0x00BB: { + IANAName: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC082: { + IANAName: "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0x0085: { + IANAName: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA1, + }, + 0x00C1: { + IANAName: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA256, + }, + 0xC083: { + IANAName: "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0x000C: { + IANAName: "TLS_DH_DSS_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x0097: { + IANAName: "TLS_DH_DSS_WITH_SEED_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "DSS", + encryptionAlgo: EncryptSEEDCBC, + hash: HashSHA1, + }, + 0x0011: { + IANAName: "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptDES40CBC, + hash: HashSHA1, + }, + 0x0013: { + IANAName: "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "DHE-DSS-DES-CBC3-SHA", + GNUTLSName: "TLS_DHE_DSS_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0032: { + IANAName: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA", + OpenSSLName: "DHE-DSS-AES128-SHA", + GNUTLSName: "TLS_DHE_DSS_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x0040: { + IANAName: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256", + OpenSSLName: "DHE-DSS-AES128-SHA256", + GNUTLSName: "TLS_DHE_DSS_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0x00A2: { + IANAName: "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256", + OpenSSLName: "DHE-DSS-AES128-GCM-SHA256", + GNUTLSName: "TLS_DHE_DSS_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0038: { + IANAName: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA", + OpenSSLName: "DHE-DSS-AES256-SHA", + GNUTLSName: "TLS_DHE_DSS_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x006A: { + IANAName: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256", + OpenSSLName: "DHE-DSS-AES256-SHA256", + GNUTLSName: "TLS_DHE_DSS_AES_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA256, + }, + 0x00A3: { + IANAName: "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384", + OpenSSLName: "DHE-DSS-AES256-GCM-SHA384", + GNUTLSName: "TLS_DHE_DSS_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC042: { + IANAName: "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC056: { + IANAName: "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC043: { + IANAName: "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC057: { + IANAName: "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0x0044: { + IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA", + OpenSSLName: "DHE-DSS-CAMELLIA128-SHA", + GNUTLSName: "TLS_DHE_DSS_CAMELLIA_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA1, + }, + 0x00BD: { + IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "DHE-DSS-CAMELLIA128-SHA256", + GNUTLSName: "TLS_DHE_DSS_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC080: { + IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_DHE_DSS_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0x0087: { + IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA", + OpenSSLName: "DHE-DSS-CAMELLIA256-SHA", + GNUTLSName: "TLS_DHE_DSS_CAMELLIA_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA1, + }, + 0x00C3: { + IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256", + OpenSSLName: "DHE-DSS-CAMELLIA256-SHA256", + GNUTLSName: "TLS_DHE_DSS_CAMELLIA_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA256, + }, + 0xC081: { + IANAName: "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_DHE_DSS_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0x0012: { + IANAName: "TLS_DHE_DSS_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x0099: { + IANAName: "TLS_DHE_DSS_WITH_SEED_CBC_SHA", + OpenSSLName: "DHE-DSS-SEED-SHA", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "DSS", + encryptionAlgo: EncryptSEEDCBC, + hash: HashSHA1, + }, + 0x008F: { + IANAName: "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "DHE-PSK-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_DHE_PSK_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0090: { + IANAName: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA", + OpenSSLName: "DHE-PSK-AES128-CBC-SHA", + GNUTLSName: "TLS_DHE_PSK_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x00B2: { + IANAName: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256", + OpenSSLName: "DHE-PSK-AES128-CBC-SHA256", + GNUTLSName: "TLS_DHE_PSK_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC0A6: { + IANAName: "TLS_DHE_PSK_WITH_AES_128_CCM", + OpenSSLName: "DHE-PSK-AES128-CCM", + GNUTLSName: "TLS_DHE_PSK_AES_128_CCM", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0x00AA: { + IANAName: "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256", + OpenSSLName: "DHE-PSK-AES128-GCM-SHA256", + GNUTLSName: "TLS_DHE_PSK_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0091: { + IANAName: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA", + OpenSSLName: "DHE-PSK-AES256-CBC-SHA", + GNUTLSName: "TLS_DHE_PSK_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x00B3: { + IANAName: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384", + OpenSSLName: "DHE-PSK-AES256-CBC-SHA384", + GNUTLSName: "TLS_DHE_PSK_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xC0A7: { + IANAName: "TLS_DHE_PSK_WITH_AES_256_CCM", + OpenSSLName: "DHE-PSK-AES256-CCM", + GNUTLSName: "TLS_DHE_PSK_AES_256_CCM", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256CCM, + hash: HashSHA256, + }, + 0x00AB: { + IANAName: "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384", + OpenSSLName: "DHE-PSK-AES256-GCM-SHA384", + GNUTLSName: "TLS_DHE_PSK_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC066: { + IANAName: "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC06C: { + IANAName: "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC067: { + IANAName: "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC06D: { + IANAName: "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC096: { + IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "DHE-PSK-CAMELLIA128-SHA256", + GNUTLSName: "TLS_DHE_PSK_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC090: { + IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_DHE_PSK_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC097: { + IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", + OpenSSLName: "DHE-PSK-CAMELLIA256-SHA384", + GNUTLSName: "TLS_DHE_PSK_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC091: { + IANAName: "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_DHE_PSK_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xCCAD: { + IANAName: "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "DHE-PSK-CHACHA20-POLY1305", + GNUTLSName: "TLS_DHE_PSK_CHACHA20_POLY1305", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0x002D: { + IANAName: "TLS_DHE_PSK_WITH_NULL_SHA", + OpenSSLName: "DHE-PSK-NULL-SHA", + GNUTLSName: "TLS_DHE_PSK_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0x00B4: { + IANAName: "TLS_DHE_PSK_WITH_NULL_SHA256", + OpenSSLName: "DHE-PSK-NULL-SHA256", + GNUTLSName: "TLS_DHE_PSK_NULL_SHA256", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA256, + }, + 0x00B5: { + IANAName: "TLS_DHE_PSK_WITH_NULL_SHA384", + OpenSSLName: "DHE-PSK-NULL-SHA384", + GNUTLSName: "TLS_DHE_PSK_NULL_SHA384", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA384, + }, + 0x008E: { + IANAName: "TLS_DHE_PSK_WITH_RC4_128_SHA", + GNUTLSName: "TLS_DHE_PSK_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0x0014: { + IANAName: "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptDES40CBC, + hash: HashSHA1, + }, + 0x0016: { + IANAName: "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "DHE-RSA-DES-CBC3-SHA", + GNUTLSName: "TLS_DHE_RSA_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0033: { + IANAName: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "DHE-RSA-AES128-SHA", + GNUTLSName: "TLS_DHE_RSA_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x0067: { + IANAName: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "DHE-RSA-AES128-SHA256", + GNUTLSName: "TLS_DHE_RSA_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC09E: { + IANAName: "TLS_DHE_RSA_WITH_AES_128_CCM", + OpenSSLName: "DHE-RSA-AES128-CCM", + GNUTLSName: "TLS_DHE_RSA_AES_128_CCM", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0xC0A2: { + IANAName: "TLS_DHE_RSA_WITH_AES_128_CCM_8", + OpenSSLName: "DHE-RSA-AES128-CCM8", + GNUTLSName: "TLS_DHE_RSA_AES_128_CCM_8", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + }, + 0x009E: { + IANAName: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "DHE-RSA-AES128-GCM-SHA256", + GNUTLSName: "TLS_DHE_RSA_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0039: { + IANAName: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "DHE-RSA-AES256-SHA", + GNUTLSName: "TLS_DHE_RSA_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x006B: { + IANAName: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", + OpenSSLName: "DHE-RSA-AES256-SHA256", + GNUTLSName: "TLS_DHE_RSA_AES_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA256, + }, + 0xC09F: { + IANAName: "TLS_DHE_RSA_WITH_AES_256_CCM", + OpenSSLName: "DHE-RSA-AES256-CCM", + GNUTLSName: "TLS_DHE_RSA_AES_256_CCM", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256CCM, + hash: HashSHA256, + }, + 0xC0A3: { + IANAName: "TLS_DHE_RSA_WITH_AES_256_CCM_8", + OpenSSLName: "DHE-RSA-AES256-CCM8", + GNUTLSName: "TLS_DHE_RSA_AES_256_CCM_8", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256CCM8, + hash: HashSHA256, + }, + 0x009F: { + IANAName: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "DHE-RSA-AES256-GCM-SHA384", + GNUTLSName: "TLS_DHE_RSA_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC044: { + IANAName: "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC052: { + IANAName: "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC045: { + IANAName: "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC053: { + IANAName: "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0x0045: { + IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA", + OpenSSLName: "DHE-RSA-CAMELLIA128-SHA", + GNUTLSName: "TLS_DHE_RSA_CAMELLIA_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA1, + }, + 0x00BE: { + IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "DHE-RSA-CAMELLIA128-SHA256", + GNUTLSName: "TLS_DHE_RSA_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC07C: { + IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_DHE_RSA_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0x0088: { + IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA", + OpenSSLName: "DHE-RSA-CAMELLIA256-SHA", + GNUTLSName: "TLS_DHE_RSA_CAMELLIA_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA1, + }, + 0x00C4: { + IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256", + OpenSSLName: "DHE-RSA-CAMELLIA256-SHA256", + GNUTLSName: "TLS_DHE_RSA_CAMELLIA_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA256, + }, + 0xC07D: { + IANAName: "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_DHE_RSA_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xCCAA: { + IANAName: "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "DHE-RSA-CHACHA20-POLY1305", + GNUTLSName: "TLS_DHE_RSA_CHACHA20_POLY1305", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0x0015: { + IANAName: "TLS_DHE_RSA_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x009A: { + IANAName: "TLS_DHE_RSA_WITH_SEED_CBC_SHA", + OpenSSLName: "DHE-RSA-SEED-SHA", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "RSA", + encryptionAlgo: EncryptSEEDCBC, + hash: HashSHA1, + }, + 0x000E: { + IANAName: "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptDES40CBC, + hash: HashSHA1, + }, + 0x0010: { + IANAName: "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0031: { + IANAName: "TLS_DH_RSA_WITH_AES_128_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x003F: { + IANAName: "TLS_DH_RSA_WITH_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0x00A0: { + IANAName: "TLS_DH_RSA_WITH_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0037: { + IANAName: "TLS_DH_RSA_WITH_AES_256_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x0069: { + IANAName: "TLS_DH_RSA_WITH_AES_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA256, + }, + 0x00A1: { + IANAName: "TLS_DH_RSA_WITH_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC040: { + IANAName: "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC054: { + IANAName: "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC041: { + IANAName: "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC055: { + IANAName: "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0x0043: { + IANAName: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA1, + }, + 0x00BC: { + IANAName: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC07E: { + IANAName: "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0x0086: { + IANAName: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA1, + }, + 0x00C2: { + IANAName: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA256, + }, + 0xC07F: { + IANAName: "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0x000F: { + IANAName: "TLS_DH_RSA_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x0098: { + IANAName: "TLS_DH_RSA_WITH_SEED_CBC_SHA", + strength: StrengthWeak, + keyExchange: KexDH, + authentication: "RSA", + encryptionAlgo: EncryptSEEDCBC, + hash: HashSHA1, + }, + 0xC0B2: { + IANAName: "TLS_ECCPWD_WITH_AES_128_CCM_SHA256", + strength: StrengthSecure, + keyExchange: "ECCPWD", + authentication: "ECCPWD", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0xC0B0: { + IANAName: "TLS_ECCPWD_WITH_AES_128_GCM_SHA256", + strength: StrengthRecommended, + keyExchange: "ECCPWD", + authentication: "ECCPWD", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0xC0B3: { + IANAName: "TLS_ECCPWD_WITH_AES_256_CCM_SHA384", + strength: StrengthSecure, + keyExchange: "ECCPWD", + authentication: "ECCPWD", + encryptionAlgo: EncryptAES256CCM, + hash: HashSHA384, + }, + 0xC0B1: { + IANAName: "TLS_ECCPWD_WITH_AES_256_GCM_SHA384", + strength: StrengthRecommended, + keyExchange: "ECCPWD", + authentication: "ECCPWD", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC017: { + IANAName: "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "AECDH-DES-CBC3-SHA", + GNUTLSName: "TLS_ECDH_ANON_3DES_EDE_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: SigAnonymous, + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC018: { + IANAName: "TLS_ECDH_anon_WITH_AES_128_CBC_SHA", + OpenSSLName: "AECDH-AES128-SHA", + GNUTLSName: "TLS_ECDH_ANON_AES_128_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: SigAnonymous, + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC019: { + IANAName: "TLS_ECDH_anon_WITH_AES_256_CBC_SHA", + OpenSSLName: "AECDH-AES256-SHA", + GNUTLSName: "TLS_ECDH_ANON_AES_256_CBC_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: SigAnonymous, + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC015: { + IANAName: "TLS_ECDH_anon_WITH_NULL_SHA", + OpenSSLName: "AECDH-NULL-SHA", + GNUTLSName: "TLS_ECDH_ANON_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: SigAnonymous, + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0xC016: { + IANAName: "TLS_ECDH_anon_WITH_RC4_128_SHA", + GNUTLSName: "TLS_ECDH_ANON_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: SigAnonymous, + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC003: { + IANAName: "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC004: { + IANAName: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC025: { + IANAName: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC02D: { + IANAName: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0xC005: { + IANAName: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC026: { + IANAName: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xC02E: { + IANAName: "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC04A: { + IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC05E: { + IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC04B: { + IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC05F: { + IANAName: "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC074: { + IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC088: { + IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC075: { + IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC089: { + IANAName: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xC001: { + IANAName: "TLS_ECDH_ECDSA_WITH_NULL_SHA", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0xC002: { + IANAName: "TLS_ECDH_ECDSA_WITH_RC4_128_SHA", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: "ECDSA", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC008: { + IANAName: "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "ECDHE-ECDSA-DES-CBC3-SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC009: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "ECDHE-ECDSA-AES128-SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC023: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "ECDHE-ECDSA-AES128-SHA256", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC0AC: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM", + OpenSSLName: "ECDHE-ECDSA-AES128-CCM", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_CCM", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0xC0AE: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8", + OpenSSLName: "ECDHE-ECDSA-AES128-CCM8", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_CCM_8", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + }, + 0xC02B: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "ECDHE-ECDSA-AES128-GCM-SHA256", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_128_GCM_SHA256", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0xC00A: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "ECDHE-ECDSA-AES256-SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC024: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", + OpenSSLName: "ECDHE-ECDSA-AES256-SHA384", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xC0AD: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM", + OpenSSLName: "ECDHE-ECDSA-AES256-CCM", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_CCM", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256CCM, + hash: HashSHA256, + }, + 0xC0AF: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8", + OpenSSLName: "ECDHE-ECDSA-AES256-CCM8", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_CCM_8", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256CCM8, + hash: HashSHA256, + }, + 0xC02C: { + IANAName: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "ECDHE-ECDSA-AES256-GCM-SHA384", + GNUTLSName: "TLS_ECDHE_ECDSA_AES_256_GCM_SHA384", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC048: { + IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC05C: { + IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC049: { + IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC05D: { + IANAName: "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC072: { + IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "ECDHE-ECDSA-CAMELLIA128-SHA256", + GNUTLSName: "TLS_ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC086: { + IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC073: { + IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", + OpenSSLName: "ECDHE-ECDSA-CAMELLIA256-SHA384", + GNUTLSName: "TLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC087: { + IANAName: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xCCA9: { + IANAName: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "ECDHE-ECDSA-CHACHA20-POLY1305", + GNUTLSName: "TLS_ECDHE_ECDSA_CHACHA20_POLY1305", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0xC006: { + IANAName: "TLS_ECDHE_ECDSA_WITH_NULL_SHA", + OpenSSLName: "ECDHE-ECDSA-NULL-SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0xC007: { + IANAName: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", + GNUTLSName: "TLS_ECDHE_ECDSA_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "ECDSA", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC034: { + IANAName: "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "ECDHE-PSK-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_ECDHE_PSK_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC035: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA", + OpenSSLName: "ECDHE-PSK-AES128-CBC-SHA", + GNUTLSName: "TLS_ECDHE_PSK_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC037: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256", + OpenSSLName: "ECDHE-PSK-AES128-CBC-SHA256", + GNUTLSName: "TLS_ECDHE_PSK_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xD003: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + }, + 0xD005: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0xD001: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0xC036: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA", + OpenSSLName: "ECDHE-PSK-AES256-CBC-SHA", + GNUTLSName: "TLS_ECDHE_PSK_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC038: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384", + OpenSSLName: "ECDHE-PSK-AES256-CBC-SHA384", + GNUTLSName: "TLS_ECDHE_PSK_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xD002: { + IANAName: "TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC070: { + IANAName: "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC071: { + IANAName: "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC09A: { + IANAName: "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "ECDHE-PSK-CAMELLIA128-SHA256", + GNUTLSName: "TLS_ECDHE_PSK_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC09B: { + IANAName: "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", + OpenSSLName: "ECDHE-PSK-CAMELLIA256-SHA384", + GNUTLSName: "TLS_ECDHE_PSK_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xCCAC: { + IANAName: "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "ECDHE-PSK-CHACHA20-POLY1305", + GNUTLSName: "TLS_ECDHE_PSK_CHACHA20_POLY1305", + strength: StrengthRecommended, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0xC039: { + IANAName: "TLS_ECDHE_PSK_WITH_NULL_SHA", + OpenSSLName: "ECDHE-PSK-NULL-SHA", + GNUTLSName: "TLS_ECDHE_PSK_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0xC03A: { + IANAName: "TLS_ECDHE_PSK_WITH_NULL_SHA256", + OpenSSLName: "ECDHE-PSK-NULL-SHA256", + GNUTLSName: "TLS_ECDHE_PSK_NULL_SHA256", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA256, + }, + 0xC03B: { + IANAName: "TLS_ECDHE_PSK_WITH_NULL_SHA384", + OpenSSLName: "ECDHE-PSK-NULL-SHA384", + GNUTLSName: "TLS_ECDHE_PSK_NULL_SHA384", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA384, + }, + 0xC033: { + IANAName: "TLS_ECDHE_PSK_WITH_RC4_128_SHA", + GNUTLSName: "TLS_ECDHE_PSK_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "PSK", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC012: { + IANAName: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "ECDHE-RSA-DES-CBC3-SHA", + GNUTLSName: "TLS_ECDHE_RSA_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC013: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "ECDHE-RSA-AES128-SHA", + GNUTLSName: "TLS_ECDHE_RSA_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC027: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "ECDHE-RSA-AES128-SHA256", + GNUTLSName: "TLS_ECDHE_RSA_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC02F: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "ECDHE-RSA-AES128-GCM-SHA256", + GNUTLSName: "TLS_ECDHE_RSA_AES_128_GCM_SHA256", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0xC014: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "ECDHE-RSA-AES256-SHA", + GNUTLSName: "TLS_ECDHE_RSA_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC028: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", + OpenSSLName: "ECDHE-RSA-AES256-SHA384", + GNUTLSName: "TLS_ECDHE_RSA_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xC030: { + IANAName: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "ECDHE-RSA-AES256-GCM-SHA384", + GNUTLSName: "TLS_ECDHE_RSA_AES_256_GCM_SHA384", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC04C: { + IANAName: "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC060: { + IANAName: "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC04D: { + IANAName: "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC061: { + IANAName: "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC076: { + IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "ECDHE-RSA-CAMELLIA128-SHA256", + GNUTLSName: "TLS_ECDHE_RSA_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC08A: { + IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_ECDHE_RSA_CAMELLIA_128_GCM_SHA256", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC077: { + IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384", + OpenSSLName: "ECDHE-RSA-CAMELLIA256-SHA384", + GNUTLSName: "TLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC08B: { + IANAName: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_ECDHE_RSA_CAMELLIA_256_GCM_SHA384", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xCCA8: { + IANAName: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "ECDHE-RSA-CHACHA20-POLY1305", + GNUTLSName: "TLS_ECDHE_RSA_CHACHA20_POLY1305", + strength: StrengthSecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0xC010: { + IANAName: "TLS_ECDHE_RSA_WITH_NULL_SHA", + OpenSSLName: "ECDHE-RSA-NULL-SHA", + GNUTLSName: "TLS_ECDHE_RSA_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0xC011: { + IANAName: "TLS_ECDHE_RSA_WITH_RC4_128_SHA", + GNUTLSName: "TLS_ECDHE_RSA_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "RSA", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC00D: { + IANAName: "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC00E: { + IANAName: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC029: { + IANAName: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC031: { + IANAName: "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0xC00F: { + IANAName: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC02A: { + IANAName: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xC032: { + IANAName: "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC04E: { + IANAName: "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC062: { + IANAName: "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC04F: { + IANAName: "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC063: { + IANAName: "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC078: { + IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC08C: { + IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC079: { + IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC08D: { + IANAName: "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xC00B: { + IANAName: "TLS_ECDH_RSA_WITH_NULL_SHA", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0xC00C: { + IANAName: "TLS_ECDH_RSA_WITH_RC4_128_SHA", + strength: StrengthInsecure, + keyExchange: "ECDH", + authentication: "RSA", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC102: { + IANAName: "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT", + strength: StrengthInsecure, + keyExchange: "GOSTR341112 256", + authentication: "GOSTR341012", + encryptionAlgo: Encrypt28147CNT, + hash: HashGOST, + }, + 0xC100: { + IANAName: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC", + strength: StrengthInsecure, + keyExchange: "GOSTR341112 256", + authentication: "GOSTR341012", + encryptionAlgo: EncryptKUZNYECHIKCTR, + hash: HashGOST, + }, + 0xC103: { + IANAName: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "-", + encryptionAlgo: EncryptKUZNYECHIKMGML, + hash: HashNone, + }, + 0xC105: { + IANAName: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "-", + encryptionAlgo: EncryptKUZNYECHIKMGMS, + hash: HashNone, + }, + 0xC101: { + IANAName: "TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC", + strength: StrengthInsecure, + keyExchange: "GOSTR341112 256", + authentication: "GOSTR341012", + encryptionAlgo: EncryptMAGMACTR, + hash: HashGOST, + }, + 0xC104: { + IANAName: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_L", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "-", + encryptionAlgo: EncryptMAGMAMGML, + hash: HashNone, + }, + 0xC106: { + IANAName: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_S", + strength: StrengthInsecure, + keyExchange: "ECDHE", + authentication: "-", + encryptionAlgo: EncryptMAGMAMGMS, + hash: HashNone, + }, + 0x0029: { + IANAName: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptDESCBC40, + hash: HashMD5, + }, + 0x0026: { + IANAName: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptDESCBC40, + hash: HashSHA1, + }, + 0x002A: { + IANAName: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptRC2CBC40, + hash: HashMD5, + }, + 0x0027: { + IANAName: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptRC2CBC40, + hash: HashSHA1, + }, + 0x002B: { + IANAName: "TLS_KRB5_EXPORT_WITH_RC4_40_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptRC440, + hash: HashMD5, + }, + 0x0028: { + IANAName: "TLS_KRB5_EXPORT_WITH_RC4_40_SHA", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptRC440, + hash: HashSHA1, + }, + 0x0023: { + IANAName: "TLS_KRB5_WITH_3DES_EDE_CBC_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashMD5, + }, + 0x001F: { + IANAName: "TLS_KRB5_WITH_3DES_EDE_CBC_SHA", + strength: StrengthWeak, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0022: { + IANAName: "TLS_KRB5_WITH_DES_CBC_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptDESCBC, + hash: HashMD5, + }, + 0x001E: { + IANAName: "TLS_KRB5_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x0025: { + IANAName: "TLS_KRB5_WITH_IDEA_CBC_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptIDEACBC, + hash: HashMD5, + }, + 0x0021: { + IANAName: "TLS_KRB5_WITH_IDEA_CBC_SHA", + strength: StrengthWeak, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptIDEACBC, + hash: HashSHA1, + }, + 0x0024: { + IANAName: "TLS_KRB5_WITH_RC4_128_MD5", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptRC4128, + hash: HashMD5, + }, + 0x0020: { + IANAName: "TLS_KRB5_WITH_RC4_128_SHA", + strength: StrengthInsecure, + keyExchange: "KRB5", + authentication: "KRB5", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0xC0AA: { + IANAName: "TLS_PSK_DHE_WITH_AES_128_CCM_8", + OpenSSLName: "DHE-PSK-AES128-CCM8", + GNUTLSName: "TLS_DHE_PSK_AES_128_CCM_8", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + }, + 0xC0AB: { + IANAName: "TLS_PSK_DHE_WITH_AES_256_CCM_8", + OpenSSLName: "DHE-PSK-AES256-CCM8", + GNUTLSName: "TLS_DHE_PSK_AES_256_CCM_8", + strength: StrengthWeak, + keyExchange: "DHE", + authentication: "PSK", + encryptionAlgo: EncryptAES256CCM8, + hash: HashSHA256, + }, + 0x008B: { + IANAName: "TLS_PSK_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "PSK-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_PSK_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x008C: { + IANAName: "TLS_PSK_WITH_AES_128_CBC_SHA", + OpenSSLName: "PSK-AES128-CBC-SHA", + GNUTLSName: "TLS_PSK_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x00AE: { + IANAName: "TLS_PSK_WITH_AES_128_CBC_SHA256", + OpenSSLName: "PSK-AES128-CBC-SHA256", + GNUTLSName: "TLS_PSK_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC0A4: { + IANAName: "TLS_PSK_WITH_AES_128_CCM", + OpenSSLName: "PSK-AES128-CCM", + GNUTLSName: "TLS_PSK_AES_128_CCM", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0xC0A8: { + IANAName: "TLS_PSK_WITH_AES_128_CCM_8", + OpenSSLName: "PSK-AES128-CCM8", + GNUTLSName: "TLS_PSK_AES_128_CCM_8", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + }, + 0x00A8: { + IANAName: "TLS_PSK_WITH_AES_128_GCM_SHA256", + OpenSSLName: "PSK-AES128-GCM-SHA256", + GNUTLSName: "TLS_PSK_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x008D: { + IANAName: "TLS_PSK_WITH_AES_256_CBC_SHA", + OpenSSLName: "PSK-AES256-CBC-SHA", + GNUTLSName: "TLS_PSK_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x00AF: { + IANAName: "TLS_PSK_WITH_AES_256_CBC_SHA384", + OpenSSLName: "PSK-AES256-CBC-SHA384", + GNUTLSName: "TLS_PSK_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0xC0A5: { + IANAName: "TLS_PSK_WITH_AES_256_CCM", + OpenSSLName: "PSK-AES256-CCM", + GNUTLSName: "TLS_PSK_AES_256_CCM", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES256CCM, + hash: HashSHA256, + }, + 0xC0A9: { + IANAName: "TLS_PSK_WITH_AES_256_CCM_8", + OpenSSLName: "PSK-AES256-CCM8", + GNUTLSName: "TLS_PSK_AES_256_CCM_8", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES256CCM8, + hash: HashSHA256, + }, + 0x00A9: { + IANAName: "TLS_PSK_WITH_AES_256_GCM_SHA384", + OpenSSLName: "PSK-AES256-GCM-SHA384", + GNUTLSName: "TLS_PSK_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC064: { + IANAName: "TLS_PSK_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC06A: { + IANAName: "TLS_PSK_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC065: { + IANAName: "TLS_PSK_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC06B: { + IANAName: "TLS_PSK_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC094: { + IANAName: "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "PSK-CAMELLIA128-SHA256", + GNUTLSName: "TLS_PSK_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC08E: { + IANAName: "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_PSK_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC095: { + IANAName: "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384", + OpenSSLName: "PSK-CAMELLIA256-SHA384", + GNUTLSName: "TLS_PSK_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC08F: { + IANAName: "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_PSK_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xCCAB: { + IANAName: "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "PSK-CHACHA20-POLY1305", + GNUTLSName: "TLS_PSK_CHACHA20_POLY1305", + strength: StrengthWeak, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0x002C: { + IANAName: "TLS_PSK_WITH_NULL_SHA", + OpenSSLName: "PSK-NULL-SHA", + GNUTLSName: "TLS_PSK_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0x00B0: { + IANAName: "TLS_PSK_WITH_NULL_SHA256", + OpenSSLName: "PSK-NULL-SHA256", + GNUTLSName: "TLS_PSK_NULL_SHA256", + strength: StrengthInsecure, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA256, + }, + 0x00B1: { + IANAName: "TLS_PSK_WITH_NULL_SHA384", + OpenSSLName: "PSK-NULL-SHA384", + GNUTLSName: "TLS_PSK_NULL_SHA384", + strength: StrengthInsecure, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA384, + }, + 0x008A: { + IANAName: "TLS_PSK_WITH_RC4_128_SHA", + GNUTLSName: "TLS_PSK_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "PSK", + authentication: "PSK", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0x0008: { + IANAName: "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptDES40CBC, + hash: HashSHA1, + }, + 0x0006: { + IANAName: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptRC2CBC40, + hash: HashMD5, + }, + 0x0003: { + IANAName: "TLS_RSA_EXPORT_WITH_RC4_40_MD5", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptRC440, + hash: HashMD5, + }, + 0x0093: { + IANAName: "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "RSA-PSK-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_RSA_PSK_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x0094: { + IANAName: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA", + OpenSSLName: "RSA-PSK-AES128-CBC-SHA", + GNUTLSName: "TLS_RSA_PSK_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x00B6: { + IANAName: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256", + OpenSSLName: "RSA-PSK-AES128-CBC-SHA256", + GNUTLSName: "TLS_RSA_PSK_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0x00AC: { + IANAName: "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256", + OpenSSLName: "RSA-PSK-AES128-GCM-SHA256", + GNUTLSName: "TLS_RSA_PSK_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0095: { + IANAName: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA", + OpenSSLName: "RSA-PSK-AES256-CBC-SHA", + GNUTLSName: "TLS_RSA_PSK_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x00B7: { + IANAName: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384", + OpenSSLName: "RSA-PSK-AES256-CBC-SHA384", + GNUTLSName: "TLS_RSA_PSK_AES_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA384, + }, + 0x00AD: { + IANAName: "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384", + OpenSSLName: "RSA-PSK-AES256-GCM-SHA384", + GNUTLSName: "TLS_RSA_PSK_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC068: { + IANAName: "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC06E: { + IANAName: "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC069: { + IANAName: "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC06F: { + IANAName: "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0xC098: { + IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "RSA-PSK-CAMELLIA128-SHA256", + GNUTLSName: "TLS_RSA_PSK_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC092: { + IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_RSA_PSK_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0xC099: { + IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384", + OpenSSLName: "RSA-PSK-CAMELLIA256-SHA384", + GNUTLSName: "TLS_RSA_PSK_CAMELLIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA384, + }, + 0xC093: { + IANAName: "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_RSA_PSK_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0xCCAE: { + IANAName: "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256", + OpenSSLName: "RSA-PSK-CHACHA20-POLY1305", + GNUTLSName: "TLS_RSA_PSK_CHACHA20_POLY1305", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptChaChaPoly, + hash: HashSHA256, + }, + 0x002E: { + IANAName: "TLS_RSA_PSK_WITH_NULL_SHA", + OpenSSLName: "RSA-PSK-NULL-SHA", + GNUTLSName: "TLS_RSA_PSK_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0x00B8: { + IANAName: "TLS_RSA_PSK_WITH_NULL_SHA256", + OpenSSLName: "RSA-PSK-NULL-SHA256", + GNUTLSName: "TLS_RSA_PSK_NULL_SHA256", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA256, + }, + 0x00B9: { + IANAName: "TLS_RSA_PSK_WITH_NULL_SHA384", + OpenSSLName: "RSA-PSK-NULL-SHA384", + GNUTLSName: "TLS_RSA_PSK_NULL_SHA384", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptNULL, + hash: HashSHA384, + }, + 0x0092: { + IANAName: "TLS_RSA_PSK_WITH_RC4_128_SHA", + GNUTLSName: "TLS_RSA_PSK_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "PSK", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0x000A: { + IANAName: "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "DES-CBC3-SHA", + GNUTLSName: "TLS_RSA_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0x002F: { + IANAName: "TLS_RSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "AES128-SHA", + GNUTLSName: "TLS_RSA_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0x003C: { + IANAName: "TLS_RSA_WITH_AES_128_CBC_SHA256", + OpenSSLName: "AES128-SHA256", + GNUTLSName: "TLS_RSA_AES_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA256, + }, + 0xC09C: { + IANAName: "TLS_RSA_WITH_AES_128_CCM", + OpenSSLName: "AES128-CCM", + GNUTLSName: "TLS_RSA_AES_128_CCM", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES128CCM, + hash: HashSHA256, + }, + 0xC0A0: { + IANAName: "TLS_RSA_WITH_AES_128_CCM_8", + OpenSSLName: "AES128-CCM8", + GNUTLSName: "TLS_RSA_AES_128_CCM_8", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES128CCM8, + hash: HashSHA256, + }, + 0x009C: { + IANAName: "TLS_RSA_WITH_AES_128_GCM_SHA256", + OpenSSLName: "AES128-GCM-SHA256", + GNUTLSName: "TLS_RSA_AES_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES128GCM, + hash: HashSHA256, + }, + 0x0035: { + IANAName: "TLS_RSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "AES256-SHA", + GNUTLSName: "TLS_RSA_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0x003D: { + IANAName: "TLS_RSA_WITH_AES_256_CBC_SHA256", + OpenSSLName: "AES256-SHA256", + GNUTLSName: "TLS_RSA_AES_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA256, + }, + 0xC09D: { + IANAName: "TLS_RSA_WITH_AES_256_CCM", + OpenSSLName: "AES256-CCM", + GNUTLSName: "TLS_RSA_AES_256_CCM", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES256CCM, + hash: HashSHA256, + }, + 0xC0A1: { + IANAName: "TLS_RSA_WITH_AES_256_CCM_8", + OpenSSLName: "AES256-CCM8", + GNUTLSName: "TLS_RSA_AES_256_CCM_8", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES256CCM8, + hash: HashSHA256, + }, + 0x009D: { + IANAName: "TLS_RSA_WITH_AES_256_GCM_SHA384", + OpenSSLName: "AES256-GCM-SHA384", + GNUTLSName: "TLS_RSA_AES_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptAES256GCM, + hash: HashSHA384, + }, + 0xC03C: { + IANAName: "TLS_RSA_WITH_ARIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptARIA128CBC, + hash: HashSHA256, + }, + 0xC050: { + IANAName: "TLS_RSA_WITH_ARIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptARIA128GCM, + hash: HashSHA256, + }, + 0xC03D: { + IANAName: "TLS_RSA_WITH_ARIA_256_CBC_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptARIA256CBC, + hash: HashSHA384, + }, + 0xC051: { + IANAName: "TLS_RSA_WITH_ARIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptARIA256GCM, + hash: HashSHA384, + }, + 0x0041: { + IANAName: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA", + OpenSSLName: "CAMELLIA128-SHA", + GNUTLSName: "TLS_RSA_CAMELLIA_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA1, + }, + 0x00BA: { + IANAName: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256", + OpenSSLName: "CAMELLIA128-SHA256", + GNUTLSName: "TLS_RSA_CAMELLIA_128_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128CBC, + hash: HashSHA256, + }, + 0xC07A: { + IANAName: "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256", + GNUTLSName: "TLS_RSA_CAMELLIA_128_GCM_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA128GCM, + hash: HashSHA256, + }, + 0x0084: { + IANAName: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA", + OpenSSLName: "CAMELLIA256-SHA", + GNUTLSName: "TLS_RSA_CAMELLIA_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA1, + }, + 0x00C0: { + IANAName: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256", + OpenSSLName: "CAMELLIA256-SHA256", + GNUTLSName: "TLS_RSA_CAMELLIA_256_CBC_SHA256", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256CBC, + hash: HashSHA256, + }, + 0xC07B: { + IANAName: "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384", + GNUTLSName: "TLS_RSA_CAMELLIA_256_GCM_SHA384", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptCAMELLIA256GCM, + hash: HashSHA384, + }, + 0x0009: { + IANAName: "TLS_RSA_WITH_DES_CBC_SHA", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptDESCBC, + hash: HashSHA1, + }, + 0x0007: { + IANAName: "TLS_RSA_WITH_IDEA_CBC_SHA", + OpenSSLName: "IDEA-CBC-SHA", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptIDEACBC, + hash: HashSHA1, + }, + 0x0001: { + IANAName: "TLS_RSA_WITH_NULL_MD5", + OpenSSLName: "NULL-MD5", + GNUTLSName: "TLS_RSA_NULL_MD5", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptNULL, + hash: HashMD5, + }, + 0x0002: { + IANAName: "TLS_RSA_WITH_NULL_SHA", + OpenSSLName: "NULL-SHA", + GNUTLSName: "TLS_RSA_NULL_SHA1", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptNULL, + hash: HashSHA1, + }, + 0x003B: { + IANAName: "TLS_RSA_WITH_NULL_SHA256", + OpenSSLName: "NULL-SHA256", + GNUTLSName: "TLS_RSA_NULL_SHA256", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptNULL, + hash: HashSHA256, + }, + 0x0004: { + IANAName: "TLS_RSA_WITH_RC4_128_MD5", + GNUTLSName: "TLS_RSA_ARCFOUR_128_MD5", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptRC4128, + hash: HashMD5, + }, + 0x0005: { + IANAName: "TLS_RSA_WITH_RC4_128_SHA", + GNUTLSName: "TLS_RSA_ARCFOUR_128_SHA1", + strength: StrengthInsecure, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptRC4128, + hash: HashSHA1, + }, + 0x0096: { + IANAName: "TLS_RSA_WITH_SEED_CBC_SHA", + OpenSSLName: "SEED-SHA", + strength: StrengthWeak, + keyExchange: "RSA", + authentication: "RSA", + encryptionAlgo: EncryptSEEDCBC, + hash: HashSHA1, + }, + 0xC0B4: { + IANAName: "TLS_SHA256_SHA256", + strength: StrengthInsecure, + keyExchange: "-", + authentication: "SHA256", + encryptionAlgo: EncryptNULL, + hash: HashSHA256, + }, + 0xC0B5: { + IANAName: "TLS_SHA384_SHA384", + strength: StrengthInsecure, + keyExchange: "-", + authentication: "SHA384", + encryptionAlgo: EncryptNULL, + hash: HashSHA384, + }, + 0x00C7: { + IANAName: "TLS_SM4_CCM_SM3", + strength: StrengthInsecure, + keyExchange: "-", + authentication: "-", + encryptionAlgo: EncryptSM4CCM, + hash: HashSM3, + }, + 0x00C6: { + IANAName: "TLS_SM4_GCM_SM3", + strength: StrengthInsecure, + keyExchange: "-", + authentication: "-", + encryptionAlgo: EncryptSM4GCM, + hash: HashSM3, + }, + 0xC01C: { + IANAName: "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "SRP-DSS-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA DSS", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC01F: { + IANAName: "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA", + OpenSSLName: "SRP-DSS-AES-128-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_DSS_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA DSS", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC022: { + IANAName: "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA", + OpenSSLName: "SRP-DSS-AES-256-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_DSS_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA DSS", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC01B: { + IANAName: "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "SRP-RSA-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA RSA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC01E: { + IANAName: "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA", + OpenSSLName: "SRP-RSA-AES-128-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_RSA_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA RSA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC021: { + IANAName: "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA", + OpenSSLName: "SRP-RSA-AES-256-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_RSA_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA RSA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, + 0xC01A: { + IANAName: "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA", + OpenSSLName: "SRP-3DES-EDE-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_3DES_EDE_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA", + encryptionAlgo: Encrypt3DESEDECBC, + hash: HashSHA1, + }, + 0xC01D: { + IANAName: "TLS_SRP_SHA_WITH_AES_128_CBC_SHA", + OpenSSLName: "SRP-AES-128-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_AES_128_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA", + encryptionAlgo: EncryptAES128CBC, + hash: HashSHA1, + }, + 0xC020: { + IANAName: "TLS_SRP_SHA_WITH_AES_256_CBC_SHA", + OpenSSLName: "SRP-AES-256-CBC-SHA", + GNUTLSName: "TLS_SRP_SHA_AES_256_CBC_SHA1", + strength: StrengthWeak, + keyExchange: "SRP", + authentication: "SHA", + encryptionAlgo: EncryptAES256CBC, + hash: HashSHA1, + }, diff --git a/test.json b/test.json new file mode 100644 index 0000000..4dd84b2 --- /dev/null +++ b/test.json @@ -0,0 +1,13 @@ +{ + "domain": "https://ryanparman.com", + "ips": { + "2606:4700:3108::ac42:28d3": { + "http": { + "http1.1": true, + "http2": true, + "http3": true + }, + "tls": {} + } + } +} diff --git a/trivy-license.yaml b/trivy-license.yaml index 6ed7a2f..da6fdec 100644 --- a/trivy-license.yaml +++ b/trivy-license.yaml @@ -1,7 +1,6 @@ --- cache: backend: fs - clear: false db: download-java-only: false download-only: false @@ -15,12 +14,12 @@ db: dependency-tree: true exit-code: 0 format: table -ignore-policy: '' +ignore-policy: "" ignorefile: .trivyignore include-dev-deps: false insecure: false license: - confidencelevel: '0.9' + confidencelevel: "0.9" forbidden: - AGPL-1.0 - AGPL-3.0 @@ -170,13 +169,11 @@ list-all-pkgs: true misconfiguration: include-non-failures: false policy-bundle-repository: ghcr.io/aquasecurity/defsec:0 - reset-policy-bundle: false -output: '' +output: "" quiet: true -report: all -reset: false +report: summary scan: - compliance: '' + compliance: "" file-patterns: [] offline: false rekor-url: https://rekor.sigstore.dev diff --git a/trivy-vuln.yaml b/trivy-vuln.yaml index 124fd57..82f0118 100644 --- a/trivy-vuln.yaml +++ b/trivy-vuln.yaml @@ -1,15 +1,12 @@ --- cache: backend: fs - clear: false db: download-java-only: false download-only: false - java-repository: ghcr.io/aquasecurity/trivy-java-db java-skip-update: false light: false no-progress: false - repository: ghcr.io/aquasecurity/trivy-db skip-update: false # debug: false dependency-tree: true @@ -22,24 +19,18 @@ insecure: false list-all-pkgs: true misconfiguration: include-non-failures: false - policy-bundle-repository: ghcr.io/aquasecurity/defsec:0 - reset-policy-bundle: false output: "" quiet: true -report: all -reset: false +report: summary scan: compliance: "" file-patterns: [] offline: false - rekor-url: https://rekor.sigstore.dev - sbom-sources: [] scanners: - vuln - config - secret - skip-dirs: - - testdata + skip-dirs: [] skip-files: [] slow: false secret: diff --git a/unit-coverage.png b/unit-coverage.png new file mode 100644 index 0000000..3152bda Binary files /dev/null and b/unit-coverage.png differ diff --git a/unit-coverage.svg b/unit-coverage.svg new file mode 100644 index 0000000..5f3d276 --- /dev/null +++ b/unit-coverage.svg @@ -0,0 +1,137 @@ + + + + + + +github.com/northwood-labs/devsec-tools + + + + + + + +cmd + + + + + + + + + + + + + + + + + + + +pkg + + + + + + + +docs.go + + + + + + + +hasher.go + + + + + + + +root.go + + + + + + + +version.go + + + + + + + +hasher/hasher.go + + + + + + + +http/http.go + + + + \ No newline at end of file