/* * TLS Session Key * (C) 2004-2006 Jack Lloyd * * Released under the terms of the Botan license */ #ifndef BOTAN_TLS_SESSION_KEYS_H__ #define BOTAN_TLS_SESSION_KEYS_H__ #include #include #include namespace Botan { /** * TLS Session Keys */ class BOTAN_DLL SessionKeys { public: SymmetricKey client_cipher_key() const; SymmetricKey server_cipher_key() const; SymmetricKey client_mac_key() const; SymmetricKey server_mac_key() const; InitializationVector client_iv() const; InitializationVector server_iv() const; SecureVector master_secret() const; SessionKeys() {} SessionKeys(const CipherSuite&, Version_Code, const MemoryRegion&, const MemoryRegion&, const MemoryRegion&); private: SymmetricKey ssl3_keygen(u32bit, const MemoryRegion&, const MemoryRegion&, const MemoryRegion&); SymmetricKey tls1_keygen(u32bit, const MemoryRegion&, const MemoryRegion&, const MemoryRegion&); SecureVector master_sec; SymmetricKey c_cipher, s_cipher, c_mac, s_mac; InitializationVector c_iv, s_iv; }; } #endif