Botan: src/ssl/tls_session_key.h Source File

Botan 1.10.17

tls_session_key.h
Go to the documentation of this file.
1 /*
2 * TLS Session Key
3 * (C) 2004-2006 Jack Lloyd
4 *
5 * Released under the terms of the Botan license
6 */
7
8 #ifndef BOTAN_TLS_SESSION_KEYS_H__
9 #define BOTAN_TLS_SESSION_KEYS_H__
10
11 #include <botan/tls_suites.h>
12 #include <botan/tls_exceptn.h>
13 #include <botan/symkey.h>
14
15 namespace Botan {
16
17 /**
18 * TLS Session Keys
19 */
20 class BOTAN_DLL SessionKeys
21 {
22 public:
23 SymmetricKey client_cipher_key() const;
24 SymmetricKey server_cipher_key() const;
25
26 SymmetricKey client_mac_key() const;
27 SymmetricKey server_mac_key() const;
28
29 InitializationVector client_iv() const;
30 InitializationVector server_iv() const;
31
32 SecureVector<byte> master_secret() const;
33
34 SessionKeys() {}
35 SessionKeys(const CipherSuite&, Version_Code, const MemoryRegion<byte>&,
36 const MemoryRegion<byte>&, const MemoryRegion<byte>&);
37 private:
38 SymmetricKey ssl3_keygen(size_t, const MemoryRegion<byte>&,
39 const MemoryRegion<byte>&,
40 const MemoryRegion<byte>&);
41 SymmetricKey tls1_keygen(size_t, const MemoryRegion<byte>&,
42 const MemoryRegion<byte>&,
43 const MemoryRegion<byte>&);
44
45 SecureVector<byte> master_sec;
46 SymmetricKey c_cipher, s_cipher, c_mac, s_mac;
47 InitializationVector c_iv, s_iv;
48 };
49
50 }
51
52 #endif
Botan::OctetString
Definition: symkey.h:19
Botan::SessionKeys::SessionKeys
SessionKeys()
Definition: tls_session_key.h:34
Botan::SessionKeys
Definition: tls_session_key.h:20
Botan::Version_Code
Version_Code
Definition: tls_magic.h:22
Botan::MemoryRegion< byte >
Botan
Definition: algo_base.h:14
Botan::CipherSuite
Definition: tls_suites.h:20
Botan::SecureVector< byte >