Статус документа
Статус документа

Р 1323565.1.020-2018 Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.2)

     6.2 Формат сообщений протокола Handshake

Каждое сообщение протокола Handshake содержит специальный заголовок, состоящий из четырех байтов. Первый байт содержит код типа сообщения, три следующих байта - длину сообщения:

enum {

hello_request(0), client_hellо(1), server_hello(2),

certificate(11), certificate_request(13),

server_hello_done(14), certificate_verify(15) ,

client_key_exchange(16), finished(20), (255)

} HandshakeType;

struct {

HandshakeType msg_type;

/*handshake type */

uint24 length;

/*bytes in message */

select (HandshakeType) {

case hello_request:

HelloRequest;

case client_hello:

ClientHello;

case server_hello:

ServerHello;

case certificate:

Certificate;

case certificate_request:

CertificateRequest;

case server_hello_done:

ServerHelloDone;

case certificate_verify:

CertificateVerify;

case client_key_exchange:

ClientKeyExchange;

case finished:

Finished;

} body;

} Handshake;

Сообщения протокола Handshake, описанные ниже, приведены в том порядке, в котором они должны следовать для обеспечения корректной работы протокола. Единственным исключением является сообщение запроса приветствия (HelloRequest), которое может быть послано сервером в любой момент, но которое должно быть проигнорировано клиентом, если оно получено во время выполнения протокола Handshake.