1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef NET_BASE_SSL_CIPHER_SUITE_NAMES_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NET_BASE_SSL_CIPHER_SUITE_NAMES_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace net {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// SSLCipherSuiteToStrings returns three strings for a given cipher suite
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// number, the name of the key exchange algorithm, the name of the cipher and
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// the name of the MAC. The cipher suite number is the number as sent on the
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// wire and recorded at
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// http://www.iana.org/assignments/tls-parameters/tls-parameters.xml
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// If the cipher suite is unknown, the strings are set to "???".
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid SSLCipherSuiteToStrings(const char** key_exchange_str,
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                             const char** cipher_str, const char** mac_str,
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                             uint16 cipher_suite);
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// SSLCompressionToString returns the name of the compression algorithm
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// specified by |compression_method|, which is the TLS compression id.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// If the algorithm is unknown, |name| is set to "???".
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid SSLCompressionToString(const char** name, uint8 compression_method);
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
28513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// SSLVersionToString returns the name of the SSL protocol version
29513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// specified by |ssl_version|, which is defined in
30513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// net/base/ssl_connection_status_flags.h.
31513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// If the version is unknown, |name| is set to "???".
32513209b27ff55e2841eac0e4120199c23acce758Ben Murdochvoid SSLVersionToString(const char** name, int ssl_version);
33513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace net
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // NET_BASE_SSL_CIPHER_SUITE_NAMES_H_
37