Revision control
Copy as Markdown
Other Tools
/*
* 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/types.h>
//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