Botan  1.10.9
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 
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
Version_Code
Definition: tls_magic.h:22