/* * SSL/TLS Protocol Constants * (C) 2004-2010 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ #ifndef BOTAN_TLS_PROTOCOL_MAGIC_H_ #define BOTAN_TLS_PROTOCOL_MAGIC_H_ #include //BOTAN_FUTURE_INTERNAL_HEADER(tls_magic.h) namespace Botan { namespace TLS { /** * Protocol Constants for SSL/TLS */ enum Size_Limits { TLS_HEADER_SIZE = 5, DTLS_HEADER_SIZE = TLS_HEADER_SIZE + 8, MAX_PLAINTEXT_SIZE = 16*1024, MAX_COMPRESSED_SIZE = MAX_PLAINTEXT_SIZE + 1024, MAX_CIPHERTEXT_SIZE = MAX_COMPRESSED_SIZE + 1024, }; // This will become an enum class in a future major release enum Connection_Side { CLIENT = 1, SERVER = 2 }; // This will become an enum class in a future major release enum Record_Type { CHANGE_CIPHER_SPEC = 20, ALERT = 21, HANDSHAKE = 22, APPLICATION_DATA = 23, NO_RECORD = 256 }; // This will become an enum class in a future major release enum Handshake_Type { HELLO_REQUEST = 0, CLIENT_HELLO = 1, SERVER_HELLO = 2, HELLO_VERIFY_REQUEST = 3, NEW_SESSION_TICKET = 4, // RFC 5077 CERTIFICATE = 11, SERVER_KEX = 12, CERTIFICATE_REQUEST = 13, SERVER_HELLO_DONE = 14, CERTIFICATE_VERIFY = 15, CLIENT_KEX = 16, FINISHED = 20, CERTIFICATE_URL = 21, CERTIFICATE_STATUS = 22, HANDSHAKE_CCS = 254, // Not a wire value HANDSHAKE_NONE = 255 // Null value }; const char* handshake_type_to_string(Handshake_Type t); } } #endif