44 static bool is_scsv(uint16_t suite);
51 static const std::vector<Ciphersuite>& all_known_ciphersuites();
67 bool psk_ciphersuite()
const;
72 bool ecc_ciphersuite()
const;
77 bool cbc_ciphersuite()
const;
79 bool signature_used()
const;
103 std::string
mac_algo()
const {
return m_mac_algo; }
115 size_t nonce_bytes_from_handshake()
const;
126 bool valid()
const {
return m_usable; }
131 bool operator<(
const uint16_t c)
const {
return ciphersuite_code() < c; }
137 bool is_usable()
const;
143 const char* cipher_algo,
144 size_t cipher_keylen,
145 const char* mac_algo,
149 m_ciphersuite_code(ciphersuite_code),
151 m_auth_method(auth_method),
152 m_kex_algo(kex_algo),
153 m_prf_algo(prf_algo),
154 m_nonce_format(nonce_format),
155 m_cipher_algo(cipher_algo),
156 m_mac_algo(mac_algo),
157 m_cipher_keylen(cipher_keylen),
158 m_mac_keylen(mac_keylen)
160 m_usable = is_usable();
163 uint16_t m_ciphersuite_code = 0;
169 const char* m_iana_id =
nullptr;
171 Auth_Method m_auth_method = Auth_Method::ANONYMOUS;
172 Kex_Algo m_kex_algo = Kex_Algo::STATIC_RSA;
173 KDF_Algo m_prf_algo = KDF_Algo::SHA_1;
176 const char* m_cipher_algo =
nullptr;
177 const char* m_mac_algo =
nullptr;
179 size_t m_cipher_keylen = 0;
180 size_t m_mac_keylen = 0;
182 bool m_usable =
false;