Botan  1.11.15
src/lib/tls/tls_magic.h
Go to the documentation of this file.
00001 /*
00002 * SSL/TLS Protocol Constants
00003 * (C) 2004-2010 Jack Lloyd
00004 *
00005 * Botan is released under the Simplified BSD License (see license.txt)
00006 */
00007 
00008 #ifndef BOTAN_TLS_PROTOCOL_MAGIC_H__
00009 #define BOTAN_TLS_PROTOCOL_MAGIC_H__
00010 
00011 namespace Botan {
00012 
00013 namespace TLS {
00014 
00015 /**
00016 * Protocol Constants for SSL/TLS
00017 */
00018 enum Size_Limits {
00019    TLS_HEADER_SIZE    = 5,
00020    DTLS_HEADER_SIZE   = TLS_HEADER_SIZE + 8,
00021 
00022    MAX_PLAINTEXT_SIZE = 16*1024,
00023    MAX_COMPRESSED_SIZE = MAX_PLAINTEXT_SIZE + 1024,
00024    MAX_CIPHERTEXT_SIZE = MAX_COMPRESSED_SIZE + 1024,
00025 };
00026 
00027 enum Connection_Side { CLIENT = 1, SERVER = 2 };
00028 
00029 enum Record_Type {
00030    CHANGE_CIPHER_SPEC = 20,
00031    ALERT              = 21,
00032    HANDSHAKE          = 22,
00033    APPLICATION_DATA   = 23,
00034    HEARTBEAT          = 24,
00035 
00036    NO_RECORD          = 256
00037 };
00038 
00039 enum Handshake_Type {
00040    HELLO_REQUEST        = 0,
00041    CLIENT_HELLO         = 1,
00042    SERVER_HELLO         = 2,
00043    HELLO_VERIFY_REQUEST = 3,
00044    NEW_SESSION_TICKET   = 4, // RFC 5077
00045    CERTIFICATE          = 11,
00046    SERVER_KEX           = 12,
00047    CERTIFICATE_REQUEST  = 13,
00048    SERVER_HELLO_DONE    = 14,
00049    CERTIFICATE_VERIFY   = 15,
00050    CLIENT_KEX           = 16,
00051    FINISHED             = 20,
00052 
00053    CERTIFICATE_URL      = 21,
00054    CERTIFICATE_STATUS   = 22,
00055 
00056    NEXT_PROTOCOL        = 67,
00057 
00058    HANDSHAKE_CCS        = 254, // Not a wire value
00059    HANDSHAKE_NONE       = 255  // Null value
00060 };
00061 
00062 enum Compression_Method {
00063    NO_COMPRESSION       = 0x00,
00064    DEFLATE_COMPRESSION  = 0x01
00065 };
00066 
00067 }
00068 
00069 }
00070 
00071 #endif