Каждое сообщение протокола Alert содержит информацию о пересылаемом оповещении:
struct {
AlertLevel level;
AlertDescription description;
} Alert;
Поле level (уровень оповещения) задается 1 байтом и может принимать следующие значения:
- warning: оповещения с таким уровнем не требуют немедленного прекращения соединения в общем случае. При получении данного оповещения сторона взаимодействия может принять решение о продолжении работы или о закрытии соединения. В последнем случае она должна послать ответное оповещение с уровнем fatal;
- fatal: оповещения с таким уровнем должны приводить к немедленному прекращению соединения. В этом случае другие соединения, относящиеся к данной сессии, могут продолжать функционировать, однако идентификатор сессии обязан быть аннулирован (то есть исключен из кэша ранее созданных сессий), чтобы предотвратить возможность создания нового соединения, использующего параметры данной сессии.
enum {
warning (1),
fatal (2), (255)
} AlertLevel;
Поле description (описание оповещения) задается 1 байтом, соответствующим определенному типу оповещения, описанному в структуре AlertDescription:
enum {
close_notify (0),
unexpected_message (10),
bad_record_mac (20),
record_overfow (22),
handshake_failure (40),
bad_certificate (42),
unsupported_certificate (43),
certificate_revoked (44),
certificate_expired (45),
certificate_unknown (46),
illegal_parameter (47),
unknown_ca (48),
access_denied (49),
decode_error (50),