summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9189.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc9189.txt')
-rw-r--r--doc/rfc/rfc9189.txt4340
1 files changed, 4340 insertions, 0 deletions
diff --git a/doc/rfc/rfc9189.txt b/doc/rfc/rfc9189.txt
new file mode 100644
index 0000000..a10c5d1
--- /dev/null
+++ b/doc/rfc/rfc9189.txt
@@ -0,0 +1,4340 @@
+
+
+
+
+Independent Submission S. Smyshlyaev, Ed.
+Request for Comments: 9189 CryptoPro
+Category: Informational D. Belyavskiy
+ISSN: 2070-1721 Cryptocom
+ E. Alekseev
+ CryptoPro
+ March 2022
+
+
+ GOST Cipher Suites for Transport Layer Security (TLS) Protocol Version
+ 1.2
+
+Abstract
+
+ This document specifies three new cipher suites, two new signature
+ algorithms, seven new supported groups, and two new certificate types
+ for the Transport Layer Security (TLS) protocol version 1.2 to
+ support the Russian cryptographic standard algorithms (called "GOST"
+ algorithms). This document specifies a profile of TLS 1.2 with GOST
+ algorithms so that implementers can produce interoperable
+ implementations.
+
+ This specification facilitates implementations that aim to support
+ the GOST algorithms. This document does not imply IETF endorsement
+ of the cipher suites, signature algorithms, supported groups, and
+ certificate types.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This is a contribution to the RFC Series, independently of any other
+ RFC stream. The RFC Editor has chosen to publish this document at
+ its discretion and makes no statement about its value for
+ implementation or deployment. Documents approved for publication by
+ the RFC Editor are not candidates for any level of Internet Standard;
+ see Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9189.
+
+Copyright Notice
+
+ Copyright (c) 2022 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Conventions Used in This Document
+ 3. Basic Terms and Definitions
+ 4. Cipher Suite Definitions
+ 4.1. Record Payload Protection
+ 4.1.1. CTR_OMAC
+ 4.1.2. CNT_IMIT
+ 4.2. Key Exchange and Authentication
+ 4.2.1. Hello Messages
+ 4.2.2. Server Certificate
+ 4.2.3. CertificateRequest
+ 4.2.4. ClientKeyExchange
+ 4.2.4.1. CTR_OMAC
+ 4.2.4.2. CNT_IMIT
+ 4.2.5. CertificateVerify
+ 4.2.6. Finished
+ 4.3. Cryptographic Algorithms
+ 4.3.1. Block Cipher
+ 4.3.2. MAC Algorithm
+ 4.3.3. Encryption Algorithm
+ 4.3.4. PRF and HASH Algorithms
+ 4.3.5. SNMAX Parameter
+ 5. New Values for the TLS SignatureAlgorithm Registry
+ 6. New Values for the TLS Supported Groups Registry
+ 7. New Values for the TLS ClientCertificateType Identifiers
+ Registry
+ 8. Additional Algorithms
+ 8.1. TLSTREE
+ 8.1.1. Key Tree Parameters
+ 8.2. Key Export and Key Import Algorithms
+ 8.2.1. KExp15 and KImp15 Algorithms
+ 8.2.2. KExp28147 and KImp28147 Algorithms
+ 8.3. Key Exchange Generation Algorithms
+ 8.3.1. KEG Algorithm
+ 8.3.2. KEG_28147 Algorithm
+ 8.4. gostIMIT28147
+ 9. IANA Considerations
+ 10. Historical Considerations
+ 11. Security Considerations
+ 12. References
+ 12.1. Normative References
+ 12.2. Informative References
+ Appendix A. Test Examples
+ A.1. Test Examples for CTR_OMAC Cipher Suites
+ A.1.1. TLSTREE Examples
+ A.1.1.1. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC Cipher
+ Suite
+ A.1.1.2. TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC Cipher
+ Suite
+ A.1.2. Record Examples
+ A.1.2.1. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC Cipher
+ Suite
+ A.1.2.2. TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC Cipher
+ Suite
+ A.1.3. Handshake Examples
+ A.1.3.1. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC Cipher
+ Suite
+ A.1.3.2. TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC Cipher
+ Suite
+ A.2. Test Examples for CNT_IMIT Cipher Suites
+ A.2.1. Record Examples
+ A.2.2. Handshake Examples
+ Contributors
+ Authors' Addresses
+
+1. Introduction
+
+ This document specifies three new cipher suites, two new signature
+ algorithms, seven new supported groups, and two new certificate types
+ for the Transport Layer Security (TLS) protocol version 1.2 [RFC5246]
+ (note that [RFC5246] has been obsoleted by [RFC8446] ) to support the
+ set of Russian cryptographic standard algorithms (called "GOST"
+ algorithms). This document specifies a profile of TLS 1.2 with GOST
+ algorithms so that implementers can produce interoperable
+ implementations. The profile of TLS 1.2 with GOST algorithms uses
+ the hash algorithm GOST R 34.11-2012 [RFC6986], the signature
+ algorithm GOST R 34.10-2012 [RFC7091], and two types of cipher
+ suites: the CTR_OMAC and the CNT_IMIT.
+
+ The CTR_OMAC cipher suites use the GOST R 34.12-2015 (see [RFC7801]
+ and [RFC8891]) block ciphers.
+
+ The CNT_IMIT cipher suite uses the GOST 28147-89 [RFC5830] block
+ cipher.
+
+ This document specifies the profile of the TLS protocol version 1.2
+ with GOST algorithms. The profile of the TLS protocol version 1.3
+ [RFC8446] with GOST algorithms is specified in a separate document
+ [DraftGostTLS13].
+
+ This specification facilitates implementations that aim to support
+ the GOST algorithms. This document does not imply IETF endorsement
+ of the cipher suites, signature algorithms, supported groups, and
+ certificate types.
+
+2. Conventions Used in This Document
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in BCP
+ 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+3. Basic Terms and Definitions
+
+ This document follows the terminology from [RFC8446bis] for
+ "preliminary secret" and "extended_main_secret".
+
+ This document uses the following terms and definitions for the sets
+ and operations on the elements of these sets:
+
+ B_t the set of byte strings of length t, t >= 0. For t = 0,
+ the B_t set consists of a single empty string of zero
+ length. If A is an element of B_t, then A = (a_1, a_2,
+ ... , a_t), where a_1, a_2, ... , a_t are in {0, ... ,
+ 255}.
+
+ B* the set of all byte strings of a finite length (hereinafter
+ referred to as "strings"), including the empty string.
+
+ A[i..j] the string A[i..j] = (a_i, a_{i+1}, ... , a_j) in
+ B_{j-i+1}, where A = (a_1, ... , a_t) in B_t and
+ 1<=i<=j<=t.
+
+ L(A) the length of the byte string A in bytes.
+
+ A | C concatenation of strings A and C both belonging to B*,
+ i.e., a string in B_{L(A)+L(C)}, where the left substring
+ in B_L(A) is equal to A and the right substring in B_L(C)
+ is equal to C.
+
+ A XOR C bitwise exclusive-or of byte strings A and C both belonging
+ to B_t (both are of length t bytes), i.e., a string in B_t
+ such that if A = (a_1, a_2, ... , a_t) and C = (c_1, c_2,
+ ... , c_t), then A XOR C = (a_1 (xor) c_1, a_2 (xor) c_2,
+ ... , a_t (xor) c_t), where (xor) is bitwise exclusive-or
+ of bytes.
+
+ i & j bitwise AND of unsigned integers i and j.
+
+ STR_t the transformation that maps an integer i = 256^(t-1) * i_1
+ + ... + 256 * i_{t-1} + i_t into the byte string STR_t(i) =
+ (i_1, ... , i_t) in B_t (the interpretation of the integer
+ as a byte string in big-endian format).
+
+ str_t the transformation that maps an integer i = 256^(t-1) * i_t
+ + ... + 256 * i_2 + i_1 into the byte string str_t(i) =
+ (i_1, ... , i_t) in B_t (the interpretation of the integer
+ as a byte string in little-endian format).
+
+ INT the transformation that maps a string a = (a_1, ... , a_t)
+ in B_t into the integer INT(a) = 256^(t-1) * a_1 + ... +
+ 256 * a_{t-1} + a_t (the interpretation of the byte string
+ in big-endian format as an integer).
+
+ int the transformation that maps a string a = (a_1, ... , a_t)
+ in B_t into the integer int(a) = 256^(t-1) * a_t + ... +
+ 256 * a_2 + a_1 (the interpretation of the byte string in
+ little-endian format as an integer).
+
+ k the length of the block cipher key in bytes.
+
+ n the length of the block cipher block in bytes.
+
+ Q_c the public key stored in the client's certificate.
+
+ d_c the private key that corresponds to the Q_c key.
+
+ Q_s the public key stored in the server's certificate.
+
+ d_s the private key that corresponds to the Q_s key.
+
+ q_s an order of a cyclic subgroup of the elliptic curve points
+ group containing point Q_s.
+
+ P_s the distinguished generator of the subgroup of order q_s
+ that belongs to the same curve as Q_s.
+
+ r_c the random string contained in the ClientHello.random field
+ (see [RFC5246]).
+
+ r_s the random string contained in the ServerHello.random field
+ (see [RFC5246]).
+
+4. Cipher Suite Definitions
+
+ This document specifies the CTR_OMAC cipher suites and the CNT_IMIT
+ cipher suite.
+
+ The CTR_OMAC cipher suites have the following values:
+
+ TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC = {0xC1, 0x00};
+ TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC = {0xC1, 0x01}.
+
+ The CNT_IMIT cipher suite has the following value:
+
+ TLS_GOSTR341112_256_WITH_28147_CNT_IMIT = {0xC1, 0x02}.
+
+4.1. Record Payload Protection
+
+ The profile of TLS 1.2 with GOST algorithms requires that the
+ compression not be used.
+
+ All of the cipher suites described in this document use such modes of
+ operation (see Section 4.3.3) that protect the records in the same
+ way as if they were protected by a stream cipher. The TLSCiphertext
+ structure for the CTR_OMAC and CNT_IMIT cipher suites is specified in
+ accordance with the standard stream cipher case (see Section 6.2.3.1
+ of [RFC5246]):
+
+ struct {
+ ContentType type;
+ ProtocolVersion version;
+ uint16 length;
+ GenericStreamCipher fragment;
+ } TLSCiphertext;
+
+ where TLSCiphertext.fragment is generated in accordance with
+ Section 4.1.1 when the CTR_OMAC cipher suites are used and
+ Section 4.1.2 when the CNT_IMIT cipher suite is used.
+
+ The connection key material is a key material that consists of the
+ sender_write_key (either the client_write_key or the
+ server_write_key), the sender_write_MAC_key (either the
+ client_write_MAC_key or the server_write_MAC_key), and the
+ sender_write_IV (either the client_write_IV or the server_write_IV)
+ parameters that are generated in accordance with Section 6.3 of
+ [RFC5246].
+
+ The record key material is a key material that is generated from the
+ connection key material and is used to protect a record with a
+ certain sequence number. Note that with some cipher suites defined
+ in this document, the record key material can be equal to the
+ connection key material.
+
+ In this section, the TLSCiphertext.fragment generation is described
+ for one particular endpoint (server or client) with the corresponding
+ connection key material and record key material.
+
+4.1.1. CTR_OMAC
+
+ In the CTR_OMAC cipher suites, the record key material differs from
+ the connection key material, and for the seqnum sequence number
+ consists of:
+
+ K_ENC_seqnum in B_k;
+
+ K_MAC_seqnum in B_k; and
+
+ IV_seqnum in B_{n/2}.
+
+ The K_ENC_seqnum and K_MAC_seqnum values are calculated using the
+ TLSTREE function defined in Section 8.1, the connection key material,
+ and the seqnum sequence number . IV_seqnum is calculated by adding
+ the seqnum value to sender_write_IV modulo 2^((n/2)*8):
+
+ K_ENC_seqnum = TLSTREE(sender_write_key, seqnum);
+
+ K_MAC_seqnum = TLSTREE(sender_write_MAC_key, seqnum); and
+
+ IV_seqnum = STR_{n/2}((INT(sender_write_IV) + seqnum)
+ mod 2^({(n/2)*8}).
+
+ The TLSCiphertext.fragment that corresponds to the seqnum sequence
+ number is calculated as follows:
+
+ 1. The MACValue_seqnum value is generated using the Message
+ Authentication Code (MAC) algorithm (see Section 4.3.2) similar
+ to Section 6.2.3.1 of [RFC5246], except the sender_write_MAC_key
+ is replaced by the K_MAC_seqnum key:
+
+ MACValue_seqnum = MAC(K_MAC_seqnum, STR_8(seqnum) | type_seqnum |
+ version_seqnum | length_seqnum | fragment_seqnum),
+
+ where type_seqnum, version_seqnum, length_seqnum, and
+ fragment_seqnum are the TLSCompressed.type,
+ TLSCompressed.version, TLSCompressed.length, and
+ TLSCompressed.fragment values of the record with the seqnum
+ sequence number.
+
+ 2. The entire data with the MACValue is encrypted with the ENC
+ stream cipher (see Section 4.3.3):
+
+ ENCValue_seqnum = ENC(K_ENC_seqnum, IV_seqnum, fragment_seqnum |
+ MACValue_seqnum),
+
+ where fragment_seqnum is the TLSCompressed.fragment value of the
+ record with the seqnum sequence number.
+
+ 3. The fields of the GenericStreamCipher structure (see
+ Section 6.2.3.1 of [RFC5246]) for the TLSCiphertext.fragment
+ value are defined by the ENCValue_seqnum value:
+
+ TLSCiphertext.fragment.content =
+ ENCValue_seqnum[1..length_seqnum],
+
+ TLSCiphertext.fragment.MAC = ENCValue_seqnum[length_seqnum +
+ 1..length_seqnum + mac_length],
+
+ where length_seqnum is the TLSCompressed.length value of the
+ record with the seqnum sequence number and mac_length is equal to
+ 16 for the TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC cipher
+ suite and 8 for the TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC
+ cipher suite.
+
+ Note that the CTR_OMAC cipher suites use the authenticate-then-
+ encrypt method (see Appendix F.4 of [RFC5246]). Since these ciphers
+ are functioning as stream ciphers, the authenticate-then-encrypt
+ method is secure, and as specified by [RFC7366], the server that
+ selects the CTR_OMAC ciphers MUST NOT send an encrypt_then_mac
+ extension to the client.
+
+4.1.2. CNT_IMIT
+
+ In the CNT_IMIT cipher suite, the record key material is equal to the
+ connection key material and consists of:
+
+ sender_write_key in B_k;
+
+ sender_write_MAC_key in B_k; and
+
+ sender_write_IV in B_n.
+
+ The TLSCiphertext.fragment that corresponds to the seqnum sequence
+ number is calculated as follows:
+
+ 1. The MACValue_seqnum value is generated by the MAC algorithm (see
+ Section 4.3.2) as follows:
+
+ MACValue_seqnum = MAC(sender_write_MAC_key, STR_8(0) | type_0 |
+ version_0 | length_0 | fragment_0 | ... | STR_8(seqnum) |
+ type_seqnum | version_seqnum | length_seqnum | fragment_seqnum),
+
+ where type_i, version_i, length_i, fragment_i, and i in {0, ... ,
+ seqnum} are the TLSCompressed.type, TLSCompressed.version,
+ TLSCompressed.length, and TLSCompressed.fragment values of the
+ record with the i sequence number.
+
+ Due to the use of the mode based on Cipher Block Chaining MAC
+ (CBC-MAC) (see Section 4.3.2), producing the MACValue_seqnum
+ value does not mean processing all previous records. It is
+ enough to store only an intermediate internal state of the MAC
+ algorithm.
+
+ 2. The entire data with the MACValue is encrypted with the ENC
+ stream cipher (see Section 4.3.3):
+
+ ENCValue_0 | ... | ENCValue_seqnum = ENC(sender_write_key,
+ sender_write_IV, fragment_0 | MACValue_0 | ... | fragment_seqnum |
+ MACValue_seqnum),
+
+ where the length of the byte string ENCValue_i in bytes is equal
+ to the length of the byte string (fragment_i | MACValue_i) in
+ bytes and i in {0, ... , seqnum}.
+
+ Due to the use of the stream cipher (see Section 4.3.3),
+ producing the ENCValue_seqnum value does not mean processing all
+ previous records. It is enough to store only an intermediate
+ internal state of the ENC stream cipher.
+
+ 3. The fields of the GenericStreamCipher structure (see
+ Section 6.2.3.1 of [RFC5246]) for the TLSCiphertext.fragment
+ value are defined by the ENCValue_seqnum value:
+
+ TLSCiphertext.fragment.content =
+ ENCValue_seqnum[1..length_seqnum],
+
+ TLSCiphertext.fragment.MAC = ENCValue_seqnum[length_seqnum +
+ 1..length_seqnum + mac_length],
+
+ where length_seqnum is the TLSCompressed.length value of the
+ record with the seqnum sequence number, and mac_length is equal
+ to 4.
+
+ Note that the CNT_IMIT cipher suite uses the authenticate-then-
+ encrypt method (see Appendix F.4 of [RFC5246]). Since this cipher is
+ functioning as a stream cipher, the authenticate-then-encrypt method
+ is secure, and as specified by [RFC7366], the server that selects the
+ CNT_IMIT cipher MUST NOT send an encrypt_then_mac extension to the
+ client.
+
+4.2. Key Exchange and Authentication
+
+ The cipher suites defined in this document use a key encapsulation
+ mechanism based on Diffie-Hellman to share the TLS preliminary
+ secret.
+
+
+ Client Server
+
+ ClientHello -------->
+ ServerHello
+ Certificate
+ CertificateRequest*
+ <-------- ServerHelloDone
+ Certificate*
+ ClientKeyExchange
+ CertificateVerify*
+ [ChangeCipherSpec]
+ Finished -------->
+ [ChangeCipherSpec]
+ <-------- Finished
+ Application Data <-------> Application Data
+
+ Figure 1: Message Flow for a Full Handshake
+
+ Notes for Figure 1:
+
+ 1. "*" indicates optional messages that are sent for the client
+ authentication.
+
+ 2. To help avoid pipeline stalls, ChangeCipherSpec is an independent
+ TLS protocol content type and is not actually a TLS handshake
+ message.
+
+ Figure 1 shows all messages involved in the TLS key establishment
+ protocol (full handshake). A ServerKeyExchange MUST NOT be sent (the
+ server's certificate contains enough data to allow the client to
+ exchange the preliminary secret).
+
+ The server side of the channel is always authenticated; the client
+ side is optionally authenticated. The server is authenticated by
+ proving that it knows the preliminary secret that is encrypted with
+ the public key Q_s from the server's certificate. The client is
+ authenticated via its signature over the handshake transcript.
+
+ In general, the key exchange process for both the CTR_OMAC and
+ CNT_IMIT cipher suites consists of the following steps:
+
+ 1. The client generates the ephemeral key pair (d_eph, Q_eph) that
+ corresponds to the server's public key Q_s stored in its
+ certificate.
+
+ 2. The client generates the preliminary secret PS. The PS value is
+ chosen from B_32 at random.
+
+ 3. Using d_eph and Q_s, the client generates the export key material
+ (see Sections 4.2.4.1 and 4.2.4.2) for the particular key export
+ algorithm (see Sections 8.2.1 and 8.2.2) to generate the export
+ representation PSExp of the PS value.
+
+ 4. The client sends its ephemeral public key Q_eph and PSExp value
+ in the ClientKeyExchange message.
+
+ 5. Using its private key d_s, the server generates the import key
+ material (see Sections 4.2.4.1 and 4.2.4.2) for the particular
+ key import algorithm (see Sections 8.2.1 and 8.2.2) to extract
+ the preliminary secret PS from the export representation PSExp.
+
+ This section specifies the data structures and computations used by
+ the profile of TLS 1.2 with GOST algorithms. The specifications for
+ the ClientHello, ServerHello, Server Certificate, CertificateRequest,
+ ClientKeyExchange, CertificateVerify, and Finished handshake messages
+ are described in further detail below.
+
+4.2.1. Hello Messages
+
+ The ClientHello message is generated in accordance with
+ Section 7.4.1.2 of [RFC5246] and must meet the following
+ requirements:
+
+ * The ClientHello.compression_methods field MUST contain exactly one
+ byte, set to zero, which corresponds to the "null" compression
+ method.
+
+ * The ClientHello.extensions field MUST contain the
+ signature_algorithms extension (see [RFC5246]).
+
+ If the negotiated cipher suite is one of CTR_OMAC/CTR_IMIT and the
+ signature_algorithms extension in the ClientHello message does not
+ contain the values defined in Section 5, the server MUST either
+ abort the connection or ignore this extension and behave as if the
+ client had sent the signature_algorithms extension with the values
+ {8, 64} and {8, 65}.
+
+ The ServerHello message is generated in accordance with
+ Section 7.4.1.3 of [RFC5246] and must meet the following
+ requirements:
+
+ * The ServerHello.compression_method field MUST contain exactly one
+ byte, set to zero, which corresponds to the "null" compression
+ method.
+
+ * The ServerHello.extensions field MUST NOT contain the
+ encrypt_then_mac extension (see [RFC7366]).
+
+4.2.2. Server Certificate
+
+ This message is used to authentically convey the server's public key
+ Q_s to the client and is generated in accordance with Section 7.4.2
+ of [RFC5246].
+
+ Upon receiving this message, the client validates the certificate
+ chain, extracts the server's public key, and checks that the key type
+ is appropriate for the negotiated key exchange algorithm. (A
+ possible reason for a fatal handshake failure is that the client's
+ capabilities for handling elliptic curves and point formats are
+ exceeded).
+
+4.2.3. CertificateRequest
+
+ This message is sent by the server when requesting client
+ authentication and is generated in accordance with Section 7.4.4 of
+ [RFC5246].
+
+ If the CTR_OMAC or CNT_IMIT cipher suite is negotiated, the
+ CertificateRequest message MUST meet the following requirements:
+
+ * the CertificateRequest.supported_signature_algorithm field MUST
+ contain only signature/hash algorithm pairs with the values {8,
+ 64} or {8, 65} defined in Section 5;
+
+ * the CertificateRequest.certificate_types field MUST contain only
+ the gost_sign256 (67) or gost_sign512 (68) values defined in
+ Section 7.
+
+4.2.4. ClientKeyExchange
+
+ The ClientKeyExchange message is defined as follows:
+
+ enum { vko_kdf_gost, vko_gost } KeyExchangeAlgorithm;
+
+ struct {
+ select (KeyExchangeAlgorithm) {
+ case vko_kdf_gost: GostKeyTransport;
+ case vko_gost: TLSGostKeyTransportBlob;
+ } exchange_keys;
+ } ClientKeyExchange;
+
+ The body of the ClientKeyExchange message consists of a
+ GostKeyTransport/TLSGostKeyTransportBlob structure that contains an
+ export representation of the preliminary secret PS.
+
+ The GostKeyTransport structure corresponds to the CTR_OMAC cipher
+ suites and is described in Section 4.2.4.1, and the
+ TLSGostKeyTransportBlob structure corresponds to the CNT_IMIT cipher
+ suite and is described in Section 4.2.4.2.
+
+ The DER encoding rules are used to encode the GostKeyTransport and
+ the TLSGostKeyTransportBlob structures.
+
+4.2.4.1. CTR_OMAC
+
+ In the CTR_OMAC cipher suites, the body of the ClientKeyExchange
+ message consists of the GostKeyTransport structure that is defined
+ below.
+
+ The client generates the ClientKeyExchange message in accordance with
+ the following steps:
+
+ 1. Generates the ephemeral key pair (Q_eph, d_eph), where:
+
+ d_eph is chosen from {1, ... , q_s - 1} at random;
+
+ Q_eph = d_eph * P_s.
+
+ 2. Generates the preliminary secret PS, where PS is chosen from B_32
+ at random.
+
+ 3. Generates export keys (K_EXP_MAC and K_EXP_ENC) using the KEG
+ algorithm defined in Section 8.3.1:
+
+ H = HASH(r_c | r_s);
+
+ K_EXP_MAC | K_EXP_ENC = KEG(d_eph, Q_s, H).
+
+ 4. Generates an export representation PSExp of the preliminary
+ secret PS using the KExp15 algorithm defined in Section 8.2.1:
+
+ IV = H[25..24 + n / 2];
+
+ PSExp = KExp15(PS, K_EXP_MAC, K_EXP_ENC, IV).
+
+ 5. Generates the ClientKeyExchange message using the
+ GostKeyTransport structure that is defined as follows:
+
+ GostKeyTransport ::= SEQUENCE {
+ keyExp OCTET STRING,
+ ephemeralPublicKey SubjectPublicKeyInfo,
+ ukm OCTET STRING OPTIONAL
+ }
+
+ SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+ }
+ AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY OPTIONAL
+ }
+
+ where the keyExp field contains the PSExp value, the
+ ephemeralPublicKey field contains the Q_eph value, and the ukm
+ field MUST be ignored by the server.
+
+ Upon receiving the ClientKeyExchange message, the server process is
+ as follows.
+
+ 1. The following three conditions are checked. If any of these
+ checks fail, then the server MUST abort the handshake with an
+ alert.
+
+ * Q_eph belongs to the same curve as server public key Q_s;
+
+ * Q_eph is not equal to zero point;
+
+ * q_s * Q_eph is equal to zero point.
+
+ 2. The export keys (K_EXP_MAC and K_EXP_ENC) are generated using the
+ KEG algorithm defined in Section 8.3.1:
+
+ H = HASH(r_c | r_s);
+
+ K_EXP_MAC | K_EXP_ENC = KEG(d_s, Q_eph, H).
+
+ 3. The preliminary secret PS is extracted from the export
+ representation PSExp using the KImp15 algorithm defined in
+ Section 8.2.1:
+
+ IV = H[25..24 + n / 2];
+
+ PS = KImp15(PSExp, K_EXP_MAC, K_EXP_ENC, IV).
+
+4.2.4.2. CNT_IMIT
+
+ In the CNT_IMIT cipher suite, the body of the ClientKeyExchange
+ message consists of a TLSGostKeyTransportBlob structure that is
+ defined below.
+
+ The client generates the ClientKeyExchange message in accordance with
+ the following steps:
+
+ 1. The ephemeral key pair (Q_eph, d_eph) is generated, where:
+
+ d_eph is chosen from {1, ... , q_s - 1} at random;
+
+ Q_eph = d_eph * P_s.
+
+ 2. The preliminary secret PS is generated, where PS is chosen from
+ B_32 at random.
+
+ 3. The export key (K_EXP) is generated using the KEG_28147 algorithm
+ defined in Section 8.3.2:
+
+ H = HASH(r_c | r_s);
+
+ K_EXP = KEG_28147(d_eph, Q_s, H).
+
+ 4. An export representation PSExp of the preliminary secret PS using
+ the KExp28147 algorithm defined in Section 8.2.2 is generated:
+
+ PSExp = IV | CEK_ENC | CEK_MAC = KExp28147(PS, K_EXP, H[1..8]).
+
+ 5. The ClientKeyExchange message is generated using the
+ TLSGostKeyTransportBlob structure that is defined as follows:
+
+ TLSGostKeyTransportBlob ::= SEQUENCE {
+ keyBlob GostR3410-KeyTransport
+ }
+ GostR3410-KeyTransport ::= SEQUENCE {
+ sessionEncryptedKey Gost28147-89-EncryptedKey,
+ transportParameters [0] IMPLICIT GostR3410-
+ TransportParameters OPTIONAL
+ }
+ Gost28147-89-EncryptedKey ::= SEQUENCE {
+ encryptedKey Gost28147-89-Key,
+ maskKey [0] IMPLICIT Gost28147-89-Key OPTIONAL,
+ macKey Gost28147-89-MAC
+ }
+ GostR3410-TransportParameters ::= SEQUENCE {
+ encryptionParamSet OBJECT IDENTIFIER,
+ ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo
+ OPTIONAL,
+ ukm OCTET STRING
+ }
+
+ where GostR3410-KeyTransport, Gost28147-89-EncryptedKey, and
+ GostR3410-TransportParameters are defined according to
+ Section 4.2.1 of [RFC4490].
+
+ In the context of this document, the
+ GostR3410-KeyTransport.transportParameters field is always used, the
+ Gost28147-89-EncryptedKey.maskKey field is omitted, and the
+ GostR3410-KeyTransport.transportParameters.ephemeralPublicKey field
+ is always used.
+
+ The Gost28147-89-EncryptedKey.encryptedKey field contains the CEK_ENC
+ value, the Gost28147-89-EncryptedKey.macKey field contains the
+ CEK_MAC value, and the GostR3410-TransportParameters.ukm field
+ contains the initialization vector (IV) value.
+
+ The keyBlob.transportParameters.ephemeralPublicKey field contains the
+ client ephemeral public key Q_eph. The encryptionParamSet contains
+ the value 1.2.643.7.1.2.5.1.1, which corresponds to the id-tc26-gost-
+ 28147-param-Z parameters set defined in [RFC7836].
+
+ Upon receiving the ClientKeyExchange message, the server process is
+ as follows.
+
+ 1. The following three conditions are checked. If either of these
+ checks fails, then the server MUST abort the handshake with an
+ alert.
+
+ * Q_eph belongs to the same curve as server public key Q_s;
+
+ * Q_eph is not equal to zero point;
+
+ * q_s * Q_eph is equal to zero point.
+
+ 2. The export key (K_EXP) is generated using the KEG_28147 algorithm
+ defined in Section 8.3.2:
+
+ H = HASH(r_c | r_s);
+
+ K_EXP = KEG_28147(d_s, Q_eph, H).
+
+ 3. The preliminary secret PS is extracted from the export
+ representation PSExp using the KImp28147 algorithm defined in
+ Section 8.2.2:
+
+ PS = KImp28147(PSExp, K_EXP, H[1..8]).
+
+4.2.5. CertificateVerify
+
+ The client generates the value sgn as follows:
+
+ sgn = SIGN_{d_c}(handshake_messages) = str_l(r) | str_l(s)
+
+ where SIGN_{d_c} is the GOST R 34.10-2012 [RFC7091] signature
+ algorithm, d_c is a client long-term private key that corresponds to
+ the client long-term public key Q_c from the client's certificate, l
+ = 32 for the gostr34102012_256 value of the SignatureAndHashAlgorithm
+ field, and l = 64 for the gostr34102012_512 value of the
+ SignatureAndHashAlgorithm field.
+
+ Here, "handshake_messages" refers to all handshake messages sent or
+ received, starting at ClientHello and up to CertificateVerify without
+ the last message; it includes the type and length fields of the
+ handshake messages.
+
+ The TLS CertificateVerify message is specified as follows:
+
+ struct {
+ SignatureAndHashAlgorithm algorithm;
+ opaque signature<0..2^16-1>;
+ } CertificateVerify;
+
+ where the SignatureAndHashAlgorithm structure is specified in
+ Section 5, and the CertificateVerify.signature field contains the sgn
+ value.
+
+4.2.6. Finished
+
+ The TLS Finished message is generated in accordance with
+ Section 7.4.9 of [RFC5246].
+
+ The verify_data_length value is equal to 32 for the CTR_OMAC cipher
+ suites and is equal to 12 for the CNT_IMIT cipher suite. The
+ pseudorandom function (PRF) is defined in Section 4.3.4.
+
+4.3. Cryptographic Algorithms
+
+4.3.1. Block Cipher
+
+ The cipher suite TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC MUST
+ use Kuznyechik [RFC7801] as a base block cipher for the encryption
+ and MAC algorithm. The block length n is 16 bytes, and the key
+ length k is 32 bytes.
+
+ The cipher suite TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC MUST use
+ Magma [RFC8891] as a base block cipher for the encryption and MAC
+ algorithm. The block length n is 8 bytes, and the key length k is 32
+ bytes.
+
+ The cipher suite TLS_GOSTR341112_256_WITH_28147_CNT_IMIT MUST use
+ GOST 28147-89 as a base block cipher [RFC5830] with the set of
+ parameters id-tc26-gost-28147-param-Z defined in [RFC7836]. The
+ block length n is 8 bytes, and the key length k is 32 bytes.
+
+4.3.2. MAC Algorithm
+
+ The CTR_OMAC cipher suites use the One-Key MAC (OMAC) construction
+ defined in [GOST3413-2015], which is the same as the Cipher-Based MAC
+ (CMAC) mode defined in [CMAC] where the Kuznyechik or Magma block
+ cipher (see Section 4.3.1) is used instead of the AES block cipher
+ (see [IK2003] for more detail) as the MAC function. The resulting
+ MAC length is equal to the block length, and the MAC key length is 32
+ bytes.
+
+ The CNT_IMIT cipher suite uses the MAC function gostIMIT28147 defined
+ in Section 8.4 with the initialization vector IV = IV0, where IV0 in
+ B_8 is a string of all zeros, with the CryptoPro Key Meshing
+ algorithm defined in [RFC4357]. The resulting MAC length is 4 bytes,
+ and the MAC key length is 32 bytes.
+
+4.3.3. Encryption Algorithm
+
+ The CTR_OMAC cipher suites use the block cipher in the CTR-ACPKM
+ encryption mode defined in [RFC8645] as the ENC function. The
+ section size N is 4 KB for the
+ TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC cipher suite and 1 KB
+ for the TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC cipher suite.
+
+ The CNT_IMIT cipher suite uses the block cipher in counter encryption
+ mode (CNT) defined in Section 6 of [RFC5830], with the CryptoPro key
+ meshing algorithm defined in [RFC4357] as the ENC function.
+
+ Note that the counter modes used in cipher suites described in this
+ document act as stream ciphers.
+
+4.3.4. PRF and HASH Algorithms
+
+ The PRF for all the cipher suites defined in this document is the
+ PRF_TLS_GOSTR3411_2012_256 function defined in [RFC7836].
+
+ The hash function HASH for all the cipher suites defined in this
+ document is the GOST R 34.11-2012 [RFC6986] hash algorithm with a
+ 32-byte (256-bit) hash code.
+
+4.3.5. SNMAX Parameter
+
+ The SNMAX parameter defines the maximal value of the seqnum sequence
+ number during one TLS 1.2 connection and is defined as follows:
+
+ +=================================================+==========+
+ | Cipher Suites | SNMAX |
+ +=================================================+==========+
+ | TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC | SNMAX = |
+ | TLS_GOSTR341112_256_WITH_28147_CNT_IMIT | 2^64 - 1 |
+ +-------------------------------------------------+----------+
+ | TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC | SNMAX = |
+ | | 2^32 - 1 |
+ +-------------------------------------------------+----------+
+
+ Table 1
+
+5. New Values for the TLS SignatureAlgorithm Registry
+
+ The signature/hash algorithm pairs are used to indicate to the
+ server/client which algorithms can be used in digital signatures and
+ are defined by the SignatureAndHashAlgorithm structure (see
+ Section 7.4.1.4.1 of [RFC5246]).
+
+ This document defines new values for the "TLS SignatureAlgorithm"
+ registry that can be used in the SignatureAndHashAlgorithm.signature
+ field for the particular signature/hash algorithm pair:
+
+ enum {
+ gostr34102012_256(64),
+ gostr34102012_512(65),
+ } SignatureAlgorithm;
+
+ where the gostr34102012_256 and gostr34102012_512 values correspond
+ to the GOST R 34.10-2012 [RFC7091] signature algorithm with a 32-byte
+ (256-bit) and 64-byte (512-bit) key length, respectively.
+
+ According to [RFC7091], the GOST R 34.10-2012 signature algorithm
+ with a 32-byte (256-bit) or 64-byte (512-bit) key length uses the
+ GOST R 34.11-2012 [RFC6986] hash algorithm with a 32-byte (256-bit)
+ or 64-byte (512-bit) hash code, respectively (the hash algorithm is
+ intrinsic to the signature algorithm). Therefore, if the
+ SignatureAndHashAlgorithm.signature field of a particular hash/
+ signature pair listed in the Signature Algorithms Extension is equal
+ to the 64 (gostr34102012_256) or 65 (gostr34102012_512) value, the
+ SignatureAndHashAlgorithm.hash field of this pair MUST contain the
+ "Intrinsic" value 8 (see [RFC8422]).
+
+ So, to represent gostr34102012_256 and gostr34102012_512 in the
+ signature_algorithms extension, the value shall be (8,64) and (8,65),
+ respectively.
+
+6. New Values for the TLS Supported Groups Registry
+
+ The Supported Groups Extension indicates the set of elliptic curves
+ supported by the client and is defined in [RFC8422] and [RFC7919].
+
+ This document defines new values for the "TLS Supported Groups"
+ registry:
+
+ enum {
+ GC256A(34), GC256B(35), GC256C(36), GC256D(37),
+ GC512A(38), GC512B(39), GC512C(40),
+ } NamedGroup;
+
+ where the values correspond to the following curves:
+
+ +=============+========================================+===========+
+ | Description | Curve Identifier Value | Reference |
+ +=============+========================================+===========+
+ | GC256A | id-tc26-gost-3410-2012-256-paramSetA | [RFC7836] |
+ +-------------+----------------------------------------+-----------+
+ | GC256B | id-GostR3410-2001-CryptoPro-A-ParamSet | [RFC4357] |
+ +-------------+----------------------------------------+-----------+
+ | GC256C | id-GostR3410-2001-CryptoPro-B-ParamSet | [RFC4357] |
+ +-------------+----------------------------------------+-----------+
+ | GC256D | id-GostR3410-2001-CryptoPro-C-ParamSet | [RFC4357] |
+ +-------------+----------------------------------------+-----------+
+ | GC512A | id-tc26-gost-3410-12-512-paramSetA | [RFC7836] |
+ +-------------+----------------------------------------+-----------+
+ | GC512B | id-tc26-gost-3410-12-512-paramSetB | [RFC7836] |
+ +-------------+----------------------------------------+-----------+
+ | GC512C | id-tc26-gost-3410-2012-512-paramSetC | [RFC7836] |
+ +-------------+----------------------------------------+-----------+
+
+ Table 2
+
+7. New Values for the TLS ClientCertificateType Identifiers Registry
+
+ The ClientCertificateType field of the CertificateRequest message
+ contains a list of certificate types that the client may offer and is
+ defined in Section 7.4.4 of [RFC5246].
+
+ This document defines new values for the "TLS ClientCertificateType
+ Identifiers" registry:
+
+ enum {
+ gost_sign256(67),
+ gost_sign512(68),
+ } ClientCertificateType;
+
+ To use the gost_sign256 or gost_sign512 authentication mechanism, the
+ client MUST possess a certificate containing a GOST R
+ 34.10-2012-capable public key that corresponds to the 32-byte
+ (256-bit) or 64-byte (512-bit) signature key, respectively.
+
+ The client proves possession of the private key corresponding to the
+ certified key by including a signature in the CertificateVerify
+ message as described in Section 4.2.5.
+
+8. Additional Algorithms
+
+ The cipher suites specified in this document rely on some additional
+ algorithms, specified below; the use of these algorithms is not
+ confined to the use in TLS specified in this document.
+
+8.1. TLSTREE
+
+ The TLSTREE function is defined as follows:
+
+ TLSTREE(K_root, i) = KDF_3(KDF_2(KDF_1(K_root, STR_8(i & C_1)),
+ STR_8(i & C_2)), STR_8(i & C_3)),
+
+ where
+
+ * K_root in B_32;
+
+ * i in {0, 1, ... , 2^64 - 1};
+
+ * C_1, C_2, C_3 are constants defined by the particular cipher suite
+ (see Section 8.1.1);
+
+ * KDF_j(K, D), j = 1, 2, 3, K in B_32, D in B_8, is the key
+ derivation function based on the KDF_GOSTR3411_2012_256 function
+ defined in [RFC7836]:
+
+ KDF_1(K, D) = KDF_GOSTR3411_2012_256(K, "level1", D);
+
+ KDF_2(K, D) = KDF_GOSTR3411_2012_256(K, "level2", D); and
+
+ KDF_3(K, D) = KDF_GOSTR3411_2012_256(K, "level3", D).
+
+8.1.1. Key Tree Parameters
+
+ The CTR_OMAC cipher suites use the TLSTREE function for the rekeying
+ approach. The constants for it are defined as in the table below.
+
+ +============================================+======================+
+ |Cipher Suites |C_1, C_2, C_3 |
+ +============================================+======================+
+ |TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC|C_1=0xFFFFFFFF00000000|
+ | |C_2=0xFFFFFFFFFFF80000|
+ | |C_3=0xFFFFFFFFFFFFFFC0|
+ +--------------------------------------------+----------------------+
+ |TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC |C_1=0xFFFFFFC000000000|
+ | |C_2=0xFFFFFFFFFE000000|
+ | |C_3=0xFFFFFFFFFFFFF000|
+ +--------------------------------------------+----------------------+
+
+ Table 3
+
+8.2. Key Export and Key Import Algorithms
+
+8.2.1. KExp15 and KImp15 Algorithms
+
+ Algorithms KExp15 and KImp15 use the block cipher determined by the
+ particular cipher suite.
+
+ The KExp15 key export algorithm is defined as follows:
+
+ +------------------------------------------------------------+
+ | KExp15(S, K_Exp_MAC, K_Exp_ENC, IV) |
+ |------------------------------------------------------------|
+ | Input: |
+ | - secret S to be exported, S in B*, |
+ | - key K_Exp_MAC in B_k, |
+ | - key K_Exp_ENC in B_k, |
+ | - IV in B_{n/2} |
+ | Output: |
+ | - export representation SExp in B_{L(S)+n} |
+ |------------------------------------------------------------|
+ | 1. CEK_MAC = OMAC(K_Exp_MAC, IV | S), CEK_MAC in B_n |
+ | 2. SExp = CTR-Encrypt(K_Exp_ENC, IV, S | CEK_MAC) |
+ | 3. return SExp |
+ +------------------------------------------------------------+
+
+ where the OMAC function is defined in [MODES] and the CTR-Encrypt(K,
+ IV, S) function denotes the encryption of message S on key K and
+ nonce IV in the CTR mode with s = n (see [MODES]).
+
+ The KImp15 key import algorithm is defined as follows:
+
+ +-------------------------------------------------------------------+
+ | KImp15(SExp, K_Exp_MAC, K_Exp_ENC, IV) |
+ |-------------------------------------------------------------------|
+ | Input: |
+ | - export representation SExp in B* |
+ | - key K_Exp_MAC in B_k, |
+ | - key K_Exp_ENC in B_k, |
+ | - IV in B_{n/2} |
+ | Output: |
+ | - secret S in B_{L(SExp)-n} or FAIL |
+ |-------------------------------------------------------------------|
+ | 1. S | CEK_MAC = CTR-Decrypt(K_Exp_ENC, IV, SExp), CEK_MAC in B_n|
+ | 2. If CEK_MAC = OMAC(K_Exp_MAC, IV | S) |
+ | then return S; else return FAIL |
+ +-------------------------------------------------------------------+
+
+ where the OMAC function is defined in [MODES] and the CTR-Decrypt(K,
+ IV, S) function denotes the decryption of message S on key K and
+ nonce IV in the CTR mode (see [MODES]).
+
+ The keys K_Exp_MAC and K_Exp_ENC MUST be independent. For every pair
+ of keys (K_Exp_ENC, K_Exp_MAC), the IV values MUST be unique. For
+ the import of a key with the KImp15 algorithm, the IV value may be
+ sent with the export key representation.
+
+8.2.2. KExp28147 and KImp28147 Algorithms
+
+ The KExp28147 key export algorithm is defined as follows:
+
+ +----------------------------------------------------------------+
+ | KExp28147(S, K, IV) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - secret S to be exported, S in B_32, |
+ | - key K in B_32, |
+ | - IV in B_8. |
+ | Output: |
+ | - export representation SExp in B_44 |
+ |----------------------------------------------------------------|
+ | 1. CEK_MAC = gost28147IMIT(IV, K, S), CEK_MAC in B_4 |
+ | 2. CEK_ENC = ECB-Encrypt(K, S), CEK_ENC in B_32 |
+ | 3. return SExp = IV | CEK_ENC | CEK_MAC |
+ +----------------------------------------------------------------+
+
+ where the gost28147IMIT function is defined in Section 8.4 and the
+ ECB-Encrypt(K, S) function denotes the encryption of message S on key
+ K with the block cipher GOST 28147-89 in the electronic codebook
+ (ECB) mode (see [RFC5830]).
+
+ The KImp28147 key import algorithm is defined as follows:
+
+ +----------------------------------------------------------------+
+ | KImp28147(SExp, K, IV) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - export representation SExp in B_44, |
+ | - key K in B_32, |
+ | - IV in B_8. |
+ | Output: |
+ | - imported secret S in B_32 or FAIL |
+ |----------------------------------------------------------------|
+ | 1. extract from SExp |
+ | IV' = SExp[1..8], |
+ | CEK_ENC = SExp[9..40], |
+ | CEK_MAC = SExp[41..44] |
+ | 2. if IV' != IV then return FAIL; else |
+ | 3. S = ECB-Decrypt(K, CEK_ENC), S in B_32 |
+ | 4. If CEK_MAC = gost28147IMIT(IV, K, S) |
+ | then return S; else return FAIL |
+ +----------------------------------------------------------------+
+
+ where the gost28147IMIT function is defined in Section 8.4 and the
+ ECB-Decrypt(CEK_ENC, M) function denotes the decryption of ciphertext
+ CEK_ENC on key K with a block cipher GOST 28147-89 in the ECB mode
+ (see [RFC5830]).
+
+8.3. Key Exchange Generation Algorithms
+
+8.3.1. KEG Algorithm
+
+ The KEG algorithm is defined as follows:
+
+ +----------------------------------------------------------------+
+ | KEG(d, Q, H) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - private key d, |
+ | - public key Q, |
+ | - H in B_32. |
+ | Output: |
+ | - key material K in B_64. |
+ |----------------------------------------------------------------|
+ | 1. If q * Q is not equal to zero point |
+ | return FAIL |
+ | 2. If 2^254 < q < 2^256 |
+ | return KEG_256(d, Q, H) |
+ | 3. If 2^508 < q < 2^512 |
+ | return KEG_512(d, Q, H) |
+ | 4. return FAIL |
+ +----------------------------------------------------------------+
+
+ where q is an order of a cyclic subgroup of elliptic curve points
+ group containing point Q, d in {1, ... , q - 1}.
+
+ The KEG_256 algorithm is defined as follows:
+
+ +----------------------------------------------------------------+
+ | KEG_256(d, Q, H) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - private key d, |
+ | - public key Q, |
+ | - H in B_32. |
+ | Output: |
+ | - key material K in B_64. |
+ |----------------------------------------------------------------|
+ | 1. r = INT(H[1..16]) |
+ | 2. If r = 0 |
+ | UKM = 1; else UKM = r |
+ | 3. K_EXP = VKO_256(d, Q, UKM) |
+ | 4. seed = H[17..24] |
+ | 5. return KDFTREE_256(K_EXP, "kdf tree", seed, 1) |
+ +----------------------------------------------------------------+
+
+ where VKO_256 is the function VKO_GOSTR3410_2012_256 defined in
+ [RFC7836] and KDFTREE_256 is the KDF_TREE_GOSTR3411_2012_256 function
+ defined in [RFC7836] with the parameter L equal to 512.
+
+ The KEG_512 algorithm is defined as follows:
+
+ +----------------------------------------------------------------+
+ | KEG_512(d, Q, H) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - private key d, |
+ | - public key Q, |
+ | - H in B_32. |
+ | Output: |
+ | - key material K in B_64. |
+ |----------------------------------------------------------------|
+ | 1. r = INT(H[1..16]) |
+ | 2. If r = 0 |
+ | UKM = 1; else UKM = r |
+ | 3. return VKO_512(d, Q, UKM) |
+ +----------------------------------------------------------------+
+
+ where VKO_512 is the VKO_GOSTR3410_2012_512 function defined in
+ [RFC7836].
+
+8.3.2. KEG_28147 Algorithm
+
+ The KEG_28147 algorithm is defined as follows:
+
+ +----------------------------------------------------------------+
+ | KEG_28147(d, Q, H) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - private key d, |
+ | - public key Q, |
+ | - H in B_32. |
+ | Output: |
+ | - key material K in B_32. |
+ |----------------------------------------------------------------|
+ | 1. If q * Q is not equal to zero point |
+ | return FAIL |
+ | 2. UKM = H[1..8] |
+ | 3. R = VKO_256(d, Q, int(UKM)) |
+ | 4. return K = CPDivers(UKM, R) |
+ +----------------------------------------------------------------+
+
+ where the VKO_256 function is equal to the VKO_GOSTR3410_2012_256
+ function defined in [RFC7836] and the CPDivers function corresponds
+ to the CryptoPro KEK Diversification Algorithm defined in [RFC4357],
+ which takes as input the User Keying Material (UKM) value and the key
+ value.
+
+8.4. gostIMIT28147
+
+ gost28147IMIT(IV, K, M) is a MAC algorithm with a 4-byte output and
+ is defined as follows:
+
+ +----------------------------------------------------------------+
+ | gost28147IMIT(IV, K, M) |
+ |----------------------------------------------------------------|
+ | Input: |
+ | - initial value IV in B_8, |
+ | - key K in B_32, |
+ | - message M in B*. |
+ | Output: |
+ | - MAC value T in B_4. |
+ |----------------------------------------------------------------|
+ | 1. M' = PAD(M) |
+ | 2. M' = M'_0 | ... | M'_r, L(M'_i) = 8, i in {0, ... , r} |
+ | 3. M'' = (M'_0 XOR IV) | M'_1 | ... | M'_r |
+ | 4. return T = MAC28147(K, M'') |
+ +----------------------------------------------------------------+
+
+ where the PAD function is the padding function that adds m zero bytes
+ to the end of the message, m is the smallest, non-negative solution
+ to the equation (L(M) + m) mod 8 = 0, and the MAC28147 function
+ corresponds to the MAC generation mode defined in [RFC5830] with a
+ 4-byte length output.
+
+9. IANA Considerations
+
+ IANA has added the following values to the "TLS Cipher Suites"
+ registry:
+
+ +=========+==========================+=======+============+=========+
+ |Value | Description |DTLS-OK|Recommended |Reference|
+ +=========+==========================+=======+============+=========+
+ |0xC1,0x00| TLS_GOSTR341112_256_ |N |N |RFC 9189 |
+ | | WITH_KUZNYECHIK_CTR_OMAC | | | |
+ +---------+--------------------------+-------+------------+---------+
+ |0xC1,0x01| TLS_GOSTR341112_256_ |N |N |RFC 9189 |
+ | | WITH_MAGMA_CTR_OMAC | | | |
+ +---------+--------------------------+-------+------------+---------+
+ |0xC1,0x02| TLS_GOSTR341112_256_ |N |N |RFC 9189 |
+ | | WITH_28147_CNT_IMIT | | | |
+ +---------+--------------------------+-------+------------+---------+
+
+ Table 4
+
+ IANA has added the following values to the "TLS SignatureAlgorithm"
+ registry:
+
+ +=======+===================+=========+===========+
+ | Value | Description | DTLS-OK | Reference |
+ +=======+===================+=========+===========+
+ | 64 | gostr34102012_256 | Y | RFC 9189 |
+ +-------+-------------------+---------+-----------+
+ | 65 | gostr34102012_512 | Y | RFC 9189 |
+ +-------+-------------------+---------+-----------+
+
+ Table 5
+
+ IANA has added the following values to the "TLS SignatureScheme"
+ registry:
+
+ +========+=======================+=============+===========+
+ | Value | Description | Recommended | Reference |
+ +========+=======================+=============+===========+
+ | 0x0840 | Reserved for backward | N | RFC 9189 |
+ | | compatibility | | |
+ +--------+-----------------------+-------------+-----------+
+ | 0x0841 | Reserved for backward | N | RFC 9189 |
+ | | compatibility | | |
+ +--------+-----------------------+-------------+-----------+
+
+ Table 6
+
+ IANA has also added the following footnote to values 64 and 65 in the
+ "TLS SignatureAlgorithm" registry:
+
+ | These values were allocated from the Reserved state due to a
+ | misunderstanding of the difference between Reserved and
+ | Unallocated that went undetected for a long time. Additional
+ | allocations from the Reserved state are not expected, and the TLS
+ | SignatureScheme registry is suitable for use for new allocations
+ | instead of this registry.
+
+ IANA has added the following values to the "TLS Supported Groups"
+ registry:
+
+ +=======+=============+=========+=============+===========+
+ | Value | Description | DTLS-OK | Recommended | Reference |
+ +=======+=============+=========+=============+===========+
+ | 34 | GC256A | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+ | 35 | GC256B | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+ | 36 | GC256C | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+ | 37 | GC256D | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+ | 38 | GC512A | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+ | 39 | GC512B | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+ | 40 | GC512C | Y | N | RFC 9189 |
+ +-------+-------------+---------+-------------+-----------+
+
+ Table 7
+
+ IANA has added the following values to the "TLS ClientCertificateType
+ Identifiers" registry:
+
+ +-------+--------------+---------+-----------+
+ | Value | Description | DTLS-OK | Reference |
+ +-------+--------------+---------+-----------+
+ | 67 | gost_sign256 | Y | RFC 9189 |
+ +-------+--------------+---------+-----------+
+ | 68 | gost_sign512 | Y | RFC 9189 |
+ +-------+--------------+---------+-----------+
+
+ Table 8
+
+10. Historical Considerations
+
+ Note that prior to the existence of this document, implementations
+ could use only the values from the "Private Use" space in order to
+ use the GOST-based algorithms. So some old implementations can still
+ use the old value {0xFF, 0x85} instead of the {0xC1, 0x02} value to
+ indicate the TLS_GOSTR341112_256_WITH_28147_CNT_IMIT cipher suite;
+ the old value 0xEE instead of the values 64, 8, and 67 (to indicate
+ the gostr34102012_256 signature algorithm, the Intrinsic hash
+ algorithm, and the gost_sign256 certificate type, respectively); the
+ old value 0xEF instead of the values 65, 8, and 68 (to indicate the
+ gostr34102012_512 signature algorithm, the Intrinsic hash algorithm,
+ and the gost_sign512 certificate type, respectively).
+
+ Due to historical reasons, in addition to the curve identifier values
+ listed in Table 2, there exist some extra identifier values that
+ correspond to the curves GC256B, GC256C, and GC256D as follows (see
+ [RFC4357] and [R-1323565.1.024-2019]).
+
+ +=============+==============================================+
+ | Description | Curve Identifier Values |
+ +=============+==============================================+
+ | GC256B | id-GostR3410_2001-CryptoPro-XchA-ParamSet |
+ | | id-tc26-gost-3410-2012-256-paramSetB |
+ +-------------+----------------------------------------------+
+ | GC256C | id-tc26-gost-3410-2012-256-paramSetC |
+ +-------------+----------------------------------------------+
+ | GC256D | id-GostR3410-2001-CryptoPro-XchB-ParamSet |
+ | | id-tc26-gost-3410-2012-256-paramSetD |
+ +-------------+----------------------------------------------+
+
+ Table 9
+
+ The client should be prepared to handle any of these correctly if the
+ corresponding group is included in the supported_groups extension
+ (see [RFC8422] and [RFC7919]).
+
+11. Security Considerations
+
+ The cipher suites defined in this document do not provide Perfect
+ Forward Secrecy.
+
+ The authenticate-then-encrypt method is crucial for the CNT_IMIT
+ cipher suite. Encryption of the MAC value is conducted to reduce the
+ possibility of forgery to guessing. Here, the probability of a guess
+ is approximately equal to 2^-32, which is acceptable in some
+ practical cases.
+
+12. References
+
+12.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC4357] Popov, V., Kurepkin, I., and S. Leontiev, "Additional
+ Cryptographic Algorithms for Use with GOST 28147-89, GOST
+ R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
+ Algorithms", RFC 4357, DOI 10.17487/RFC4357, January 2006,
+ <https://www.rfc-editor.org/info/rfc4357>.
+
+ [RFC4490] Leontiev, S., Ed. and G. Chudov, Ed., "Using the GOST
+ 28147-89, GOST R 34.11-94, GOST R 34.10-94, and GOST R
+ 34.10-2001 Algorithms with Cryptographic Message Syntax
+ (CMS)", RFC 4490, DOI 10.17487/RFC4490, May 2006,
+ <https://www.rfc-editor.org/info/rfc4490>.
+
+ [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
+ (TLS) Protocol Version 1.2", RFC 5246,
+ DOI 10.17487/RFC5246, August 2008,
+ <https://www.rfc-editor.org/info/rfc5246>.
+
+ [RFC5746] Rescorla, E., Ray, M., Dispensa, S., and N. Oskov,
+ "Transport Layer Security (TLS) Renegotiation Indication
+ Extension", RFC 5746, DOI 10.17487/RFC5746, February 2010,
+ <https://www.rfc-editor.org/info/rfc5746>.
+
+ [RFC5830] Dolmatov, V., Ed., "GOST 28147-89: Encryption, Decryption,
+ and Message Authentication Code (MAC) Algorithms",
+ RFC 5830, DOI 10.17487/RFC5830, March 2010,
+ <https://www.rfc-editor.org/info/rfc5830>.
+
+ [RFC6986] Dolmatov, V., Ed. and A. Degtyarev, "GOST R 34.11-2012:
+ Hash Function", RFC 6986, DOI 10.17487/RFC6986, August
+ 2013, <https://www.rfc-editor.org/info/rfc6986>.
+
+ [RFC7091] Dolmatov, V., Ed. and A. Degtyarev, "GOST R 34.10-2012:
+ Digital Signature Algorithm", RFC 7091,
+ DOI 10.17487/RFC7091, December 2013,
+ <https://www.rfc-editor.org/info/rfc7091>.
+
+ [RFC7366] Gutmann, P., "Encrypt-then-MAC for Transport Layer
+ Security (TLS) and Datagram Transport Layer Security
+ (DTLS)", RFC 7366, DOI 10.17487/RFC7366, September 2014,
+ <https://www.rfc-editor.org/info/rfc7366>.
+
+ [RFC7627] Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A.,
+ Langley, A., and M. Ray, "Transport Layer Security (TLS)
+ Session Hash and Extended Master Secret Extension",
+ RFC 7627, DOI 10.17487/RFC7627, September 2015,
+ <https://www.rfc-editor.org/info/rfc7627>.
+
+ [RFC7801] Dolmatov, V., Ed., "GOST R 34.12-2015: Block Cipher
+ "Kuznyechik"", RFC 7801, DOI 10.17487/RFC7801, March 2016,
+ <https://www.rfc-editor.org/info/rfc7801>.
+
+ [RFC7836] Smyshlyaev, S., Ed., Alekseev, E., Oshkin, I., Popov, V.,
+ Leontiev, S., Podobaev, V., and D. Belyavsky, "Guidelines
+ on the Cryptographic Algorithms to Accompany the Usage of
+ Standards GOST R 34.10-2012 and GOST R 34.11-2012",
+ RFC 7836, DOI 10.17487/RFC7836, March 2016,
+ <https://www.rfc-editor.org/info/rfc7836>.
+
+ [RFC7919] Gillmor, D., "Negotiated Finite Field Diffie-Hellman
+ Ephemeral Parameters for Transport Layer Security (TLS)",
+ RFC 7919, DOI 10.17487/RFC7919, August 2016,
+ <https://www.rfc-editor.org/info/rfc7919>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8422] Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, "Elliptic
+ Curve Cryptography (ECC) Cipher Suites for Transport Layer
+ Security (TLS) Versions 1.2 and Earlier", RFC 8422,
+ DOI 10.17487/RFC8422, August 2018,
+ <https://www.rfc-editor.org/info/rfc8422>.
+
+ [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
+ Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
+ <https://www.rfc-editor.org/info/rfc8446>.
+
+ [RFC8645] Smyshlyaev, S., Ed., "Re-keying Mechanisms for Symmetric
+ Keys", RFC 8645, DOI 10.17487/RFC8645, August 2019,
+ <https://www.rfc-editor.org/info/rfc8645>.
+
+ [RFC8891] Dolmatov, V., Ed. and D. Baryshkov, "GOST R 34.12-2015:
+ Block Cipher "Magma"", RFC 8891, DOI 10.17487/RFC8891,
+ September 2020, <https://www.rfc-editor.org/info/rfc8891>.
+
+12.2. Informative References
+
+ [CMAC] Dworkin, M., "Recommendation for Block Cipher Modes of
+ Operation: The CMAC Mode for Authentication", NIST Special
+ Publication 800-38B, DOI 10.6028/NIST.SP.800-38B, October
+ 2016, <https://www.nist.gov/publications/recommendation-
+ block-cipher-modes-operation-cmac-mode-authentication-0>.
+
+ [DraftGostTLS13]
+ Smyshlyaev, S., Alekseev, E., Griboedova, E., Babueva, A.,
+ and L. Nikiforova, "GOST Cipher Suites for Transport Layer
+ Security (TLS) Protocol Version 1.3", Work in Progress,
+ Internet-Draft, draft-smyshlyaev-tls13-gost-suites-05, 10
+ December 2021, <https://datatracker.ietf.org/doc/html/
+ draft-smyshlyaev-tls13-gost-suites-05>.
+
+ [GOST3413-2015]
+ Federal Agency on Technical Regulating and Metrology,
+ "Information technology. Cryptographic data security.
+ Modes of operation for block ciphers", GOST R 34.13-2015,
+ 2015.
+
+ [IK2003] Iwata, T. and K. Kurosawa, "OMAC: One-Key CBC MAC", FSE
+ 2003, Lecture Notes in Computer Science, Vol. 2887,
+ DOI 10.1007/978-3-540-39887-5_11, 2003,
+ <https://doi.org/10.1007/978-3-540-39887-5_11>.
+
+ [MODES] Dworkin, M., "Recommendation for Block Cipher Modes of
+ Operation: Methods and Techniques", NIST Special
+ Publication 800-38A, DOI 10.6028/NIST.SP.800-38A, December
+ 2001, <https://csrc.nist.gov/publications/detail/sp/800-
+ 38a/final>.
+
+ [R-1323565.1.024-2019]
+ Federal Agency on Technical Regulating and Metrology,
+ "Information technology. Cryptographic data security.
+ Elliptic curve parameters for the cryptographic algorithms
+ and protocols", R 1323565.1.024-2019, January 2019.
+
+ [RFC8446bis]
+ Rescorla, E., "The Transport Layer Security (TLS) Protocol
+ Version 1.3", Work in Progress, Internet-Draft, draft-
+ ietf-tls-rfc8446bis-04, 7 March 2022,
+ <https://datatracker.ietf.org/doc/html/draft-ietf-tls-
+ rfc8446bis-04>.
+
+Appendix A. Test Examples
+
+A.1. Test Examples for CTR_OMAC Cipher Suites
+
+A.1.1. TLSTREE Examples
+
+A.1.1.1. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC Cipher Suite
+
+ TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC
+ ***********************************************
+ Root Key K_root:
+ 00 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A
+ 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00
+
+ seqnum = 0
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ seqnum = 4095
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ seqnum = 4096
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ FB 30 EE 53 CF CF 89 D7 48 FC 0C 72 EF 16 0B 8B
+ 53 CB BB FD 03 12 82 B0 26 21 4A B2 E0 77 58 FF
+
+ seqnum = 33554431
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ B8 5B 36 DC 22 82 32 6B C0 35 C5 72 DC 93 F1 8D
+ 83 AA 01 74 F3 94 20 9A 51 3B B3 74 DC 09 35 AE
+
+ seqnum = 33554432
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 3F EA 59 38 DA 2B F8 DD C4 7E C1 DC 55 61 89 66
+ 79 02 BE 42 0D F4 C3 7D AF 21 75 3B CB 1D C7 F3
+
+ The resulting key from Divers_3:
+ 0F D7 C0 9E FD F8 E8 15 73 EE CC F8 6E 4B 95 E3
+ AF 7F 34 DA B1 17 7C FD 7D B9 7B 6D A9 06 40 8A
+
+ seqnum = 274877906943
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ AB F3 A5 37 98 3A 1B 98 40 06 6D E6 8A 49 BF 25
+ 97 7E E5 C3 F5 2D 33 3E 3C 22 0F 1D 15 C5 08 93
+
+ The resulting key from Divers_3:
+ 48 0F 99 72 BA F2 5D 4C 36 9A 96 AF 91 BC A4 55
+ 3F 79 D8 F0 C5 61 8B 19 FD 44 CF DC 57 FA 37 33
+
+ seqnum = 274877906944
+ First-level key from Divers_1:
+ 15 60 0D 9E 8F A6 85 54 CF 15 2D C7 4F BC 42 51
+ 17 B0 3E 09 76 BB 28 EA 98 24 C3 B7 0F 28 CB D8
+
+ Second-level key from Divers_2:
+ 6C C2 8E B0 93 24 72 12 5C 7A D3 F8 09 73 B3 C8
+ C4 13 7D A5 73 BC 17 1A 24 ED D4 A3 71 F1 F8 73
+
+ The resulting key from Divers_3:
+ 25 28 C1 C6 A8 F0 92 7B F2 BE 27 BB 78 D2 7F 21
+ 46 D6 55 93 B0 C7 17 3A 06 CB 9D 88 DF 92 32 65
+
+A.1.1.2. TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC Cipher Suite
+
+ TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC
+ ***********************************************
+ Root Key K_root:
+ 00 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A
+ 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00
+
+ seqnum = 0
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ seqnum = 63
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ seqnum = 64
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ AE BE 1E F4 18 71 3B F0 44 B9 FC D9 E5 72 D4 37
+ FB 38 B5 D8 29 56 7A 6F 79 18 39 6D 9F 4E 09 6B
+
+ seqnum = 524287
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ 51 37 D5 C4 A6 E6 BE 42 C4 40 D1 0A 95 EE A0 7F
+ 08 9E 74 0D 38 90 EB 52 65 2C 0C B9 3F 20 7B B4
+
+ The resulting key from Divers_3:
+ 6F 18 D4 00 3E A2 CB 30 F5 FE C1 93 A2 34 F0 7D
+ 7C 43 94 98 7F 50 75 8D E2 2B 22 0D 8A 10 51 06
+
+ seqnum = 524288
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ F6 59 EB 85 EE BD 2A 8D CC 1B B3 F7 C6 00 57 FF
+ 6D 33 B6 0F 74 65 DD 42 B5 11 2C F3 A6 B1 AB 66
+
+ The resulting key from Divers_3:
+ E5 4B 16 41 5B 3B 66 3E 78 0B 06 2D 24 F7 36 C4
+ 49 54 63 C3 A8 91 E1 FA 46 F7 AE 99 FF F9 F3 78
+
+ seqnum = 4294967295
+ First-level key from Divers_1:
+ F3 55 89 F0 9B F8 01 B1 CA 11 42 73 B9 5F D6 C1
+ 39 2E 78 F9 FB 81 4D A0 5A 7C CA 08 9E C8 65 42
+
+ Second-level key from Divers_2:
+ F4 BC 10 1A BB 68 86 2A 8C E3 1E A0 0D DF A7 FE
+ B8 29 10 F1 24 F4 B1 E2 9E A8 3B E0 06 C2 26 8D
+
+ The resulting key from Divers_3:
+ CF 60 09 04 C7 1E 7B 88 A4 9A C8 E2 45 77 4B 3D
+ BE ED FB 81 DE 9A 0E 2F 4E 46 C3 56 07 BC 2F 04
+
+ seqnum = 4294967296
+ First-level key from Divers_1:
+ 55 CC 95 E0 D1 FB 54 85 AF 8E F6 9A CD 72 B2 32
+ 79 7C D2 E8 5D 86 CD FD 1D E5 5B D1 FA 14 37 78
+
+ Second-level key from Divers_2:
+ 72 16 91 E1 01 C4 28 96 A6 40 AE 18 3F BB 44 5B
+ 76 37 9C 57 E1 FD 8A 7D 49 A6 23 E4 23 8C 0E 1D
+
+ The resulting key from Divers_3:
+ 16 18 0B 24 64 54 00 B8 36 14 38 37 D8 6A AC 93
+ 95 2A E3 EB 82 44 D5 EC 2A B0 2C FF 30 78 11 38
+
+A.1.2. Record Examples
+
+A.1.2.1. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC Cipher Suite
+
+ TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC
+ ********************************************************
+ It is assumed that the following keys were established
+ during handshake:
+
+ - MAC key:
+ 00000: 00 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A
+ 00010: 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00
+ - Encryption key:
+ 00000: 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 11
+ 00010: 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 11 22
+ - IV:
+ 00000: 00 00 00 00
+ ---------------------------------------------------------
+ seqnum = 0
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00
+
+ TLSPlaintext:
+ 00000: 17 03 03 00 07 00 00 00 00 00 00 00
+
+ K_MAC_0:
+ 00000: 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 00010: 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ MAC value:
+ 00000: F3 3E B6 89 6F EC E2 86
+
+ K_ENC_0:
+ 00000: 58 AF BE 9A 4C 31 98 AA AB AA 26 92 C4 19 F1 79
+ 00010: 7C 9B 92 DE B3 CC 74 46 B3 63 57 71 13 F0 FB 56
+
+ IV_0:
+ 00000: 00 00 00 00
+
+ TLSCiphertext:
+ 00000: 17 03 03 00 0F 9B 42 0D A8 6F AF 36 7F 05 14 43
+ 00010: CE 9C 10 72
+ ---------------------------------------------------------
+ seqnum = 4095
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 003D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 003E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 003F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ TLSPlaintext:
+ 00000: 17 03 03 04 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 003D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 003E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 003F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00400: 00 00 00 00 00
+
+ K_MAC_4095:
+ 00000: 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 00010: 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ MAC value:
+ 00000: 58 D3 BB 60 8F BC 98 B8
+
+ K_ENC_4095:
+ 00000: 58 AF BE 9A 4C 31 98 AA AB AA 26 92 C4 19 F1 79
+ 00010: 7C 9B 92 DE B3 CC 74 46 B3 63 57 71 13 F0 FB 56
+
+ IV_4095:
+ 00000: 00 00 0F FF
+
+ TLSCiphertext:
+ 00000: 17 03 03 04 08 B7 11 43 8B 16 20 1F 3C 49 33 95
+ 00010: 21 C9 C8 CA 75 66 D4 C2 0F D3 3E 58 1F 80 07 DC
+ 00020: 76 04 3E 2B 35 C8 E8 4B B2 55 08 27 66 13 59 6F
+ . . .
+ 003D0: E7 77 70 BF 45 17 E1 F8 DD 1B 2C 05 64 AD 68 FC
+ 003E0: 4A 88 9A 48 B8 B1 FF 0E A4 E1 BB 70 4D 56 A4 75
+ 003F0: 2F 51 A5 82 CC 54 1A 80 8F 8C 8B 62 97 68 88 C8
+ 00400: 10 59 DE 41 27 63 A3 E0 99 9A CD DA 77
+
+ ---------------------------------------------------------
+ seqnum = 4096
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 007D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 007E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 007F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ TLSPlaintext:
+ 00000: 17 03 03 08 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 007D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 007E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 007F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00800: 00 00 00 00 00
+
+ K_MAC_4096:
+ 00000: FB 30 EE 53 CF CF 89 D7 48 FC 0C 72 EF 16 0B 8B
+ 00010: 53 CB BB FD 03 12 82 B0 26 21 4A B2 E0 77 58 FF
+
+ MAC value:
+ 00000: 50 55 A2 6A BE 19 63 81
+
+ K_ENC_4096:
+ 00000: ED F2 FD 02 47 71 60 23 83 09 00 2D 1D 57 DF 9F
+ 00010: D2 ED 18 D6 45 66 C7 6F 4B F0 3D 3A BF 7B BB 1E
+
+ IV_4096:
+ 00000: 00 00 10 00
+
+ TLSCiphertext:
+ 00000: 17 03 03 08 08 99 95 26 07 03 47 1D ED A2 E6 55
+ 00010: B6 B3 93 83 5E 33 8B 1E D0 0E DD 22 47 A2 FB 88
+ 00020: FB B7 A8 94 80 62 08 8A F3 2C AE B6 AA 2C 4F 2A
+ . . .
+ 007D0: 7F 0B 24 61 E7 5F E1 06 34 B8 4D C5 70 35 72 5A
+ 007E0: CA 4F 0C BC A9 B0 6C B9 F7 6F BD 2F 80 46 2B 8D
+ 007F0: 77 5E BD 41 6F 63 41 39 AC 89 C2 ED 3D F1 9F E2
+ 00800: 4E F8 C0 5A A8 90 93 1B 01 86 FD 7D DF
+
+A.1.2.2. TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC Cipher Suite
+
+ TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC
+ ***********************************************
+ It is assumed that the following keys were established
+ during handshake:
+
+ - MAC key:
+ 00000: 00 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A
+ 00010: 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00
+ - Encryption key:
+ 00000: 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 11
+ 00010: 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 11 22
+ - IV:
+ 00000: 00 00 00 00 00 00 00 00
+
+ ---------------------------------------------------------
+ seqnum = 0
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ TLSPlaintext:
+ 00000: 17 03 03 00 0F 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00
+
+ K_MAC_0:
+ 00000: 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 00010: 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ MAC value:
+ 00000: FD 17 19 DD 95 08 37 EB 7C 7B B8 F5 00 37 99 81
+
+ K_ENC_0:
+ 00000: 58 AF BE 9A 4C 31 98 AA AB AA 26 92 C4 19 F1 79
+ 00010: 7C 9B 92 DE B3 CC 74 46 B3 63 57 71 13 F0 FB 56
+
+ IV_0:
+ 00000: 00 00 00 00 00 00 00 00
+
+ TLSCiphertext:
+ 00000: 17 03 03 00 1F 4D 1A 30 52 36 57 3B FF C1 4E 46
+ 00010: DC BE 74 6D B6 C9 9A 17 5A 81 C4 71 1E 2F 84 C3
+ 00020: 92 C5 40 7C
+
+ ---------------------------------------------------------
+ seqnum = 63
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 00FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ TLSPlaintext:
+ 00000: 17 03 03 10 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 00FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 01000: 00 00 00 00 00
+
+ K_MAC_63:
+ 00000: 19 A7 6E D3 0F 4D 6D 1F 5B 72 63 EC 49 1A D8 38
+ 00010: 17 C0 B5 7D 8A 03 56 12 71 40 FB 4F 74 25 49 4D
+
+ MAC value:
+ 00000: 98 46 27 61 D0 26 24 4A 2C 0B 7D 1B CC CB E7 B0
+
+ K_ENC_63:
+ 00000: 58 AF BE 9A 4C 31 98 AA AB AA 26 92 C4 19 F1 79
+ 00010: 7C 9B 92 DE B3 CC 74 46 B3 63 57 71 13 F0 FB 56
+
+ IV_63:
+ 00000: 00 00 00 00 00 00 00 3F
+
+ TLSCiphertext:
+ 00000: 17 03 03 10 10 12 93 51 D2 6E 14 07 13 A2 1B 37
+ 00010: 68 24 A2 23 17 CD C0 D8 8E 01 CF A3 FE 21 41 5F
+ 00020: 5C 5E 05 86 9C CF 38 A5 1B C2 E0 ED 68 94 46 A8
+ . . .
+ 00FE0: 19 AD 99 8C 06 25 21 E6 7B 63 59 A4 F5 C8 16 F9
+ 00FF0: 47 6B A7 13 26 82 BB A8 CE 0B ED AD 65 E4 20 A2
+ 01000: 97 B6 E2 C6 1F A4 06 D9 B8 CA 36 FD 9F CD 3A EE
+ 01010: 24 78 F4 D1 96
+
+ ---------------------------------------------------------
+ seqnum = 64
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 01FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 01FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 01FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ TLSPlaintext:
+ 00000: 17 03 03 20 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ . . .
+ 01FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 01FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 01FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 02000: 00 00 00 00 00
+
+ K_MAC_64:
+ 00000: AE BE 1E F4 18 71 3B F0 44 B9 FC D9 E5 72 D4 37
+ 00010: FB 38 B5 D8 29 56 7A 6F 79 18 39 6D 9F 4E 09 6B
+
+ MAC value:
+ 00000: EA C3 97 87 84 2B 1D BD 60 80 CC 3F BF AE 5C 2F
+
+ K_ENC_64:
+ 00000: 64 F5 5A FC 37 A1 74 D9 53 3E 70 8B CD 14 FA 4A
+ 00010: EE C3 7B C0 E3 2B A4 99 01 B4 66 9E 96 A6 3D 96
+
+ IV_64:
+ 00000: 00 00 00 00 00 00 00 40
+
+ TLSCiphertext:
+ 00000: 17 03 03 20 10 E6 66 BB 98 AC 5B 0F 39 31 D8 55
+ 00010: 1B 93 36 85 96 EE F0 EB A8 26 9C B8 BD AA E7 EB
+ 00020: 80 C8 30 D7 5A B7 D4 6C 25 06 DC 8B 83 E1 F2 D3
+ . . .
+ 01FE0: B3 02 67 2C CB 02 86 CD 40 48 FB D5 38 1A 65 55
+ 01FF0: 26 11 25 51 01 4F A8 ED F5 C2 1B 7D 1D B3 9D 6B
+ 02000: AD EC 0D 7C 07 05 34 8B 5C 55 6C 4D 50 81 69 1A
+ 02010: A9 EC 36 F8 B5
+
+A.1.3. Handshake Examples
+
+ The ClientHello.extensions and the ServerHello.extensions fields
+ contain the extended_main_secret extension (see [RFC7627]) and the
+ renegotiation_info extension (see [RFC5746]) in the following
+ examples.
+
+A.1.3.1. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC Cipher Suite
+
+ Server certificate curve OID:
+ id-GostR3410-2001-CryptoPro-A-ParamSet, "1.2.643.2.2.35.1"
+
+
+ Server public key Q_s:
+ x = 0x6531D4A72E655BFC9DFB94293B260702
+ 82FABF10D5C49B7366148C60E0BF8167
+
+ y = 0x37F8CC71DC5D917FC4A66F7826E72750
+ 8270B4FFC266C26CD4363E77B553A5B8
+
+ Server private key d_s:
+ 0x5F308355DFD6A8ACAEE0837B100A3B1F
+ 6D63FB29B78EF27D3967757F0527144C
+
+
+ ---------------------------Client---------------------------
+
+ ClientHello message:
+ msg_type: 01
+ length: 000040
+ body:
+ client_version:
+ major: 03
+ minor: 03
+ random: 933EA21EC3802A561550EC78D6ED51AC
+ 2439D7E749C31BC3A3456165889684CA
+ session_id:
+ length: 00
+ vector: --
+ cipher_suites:
+ length: 0004
+ vector:
+ CipherSuite: C100
+ CipherSuite: C101
+ compression_methods:
+ length: 01
+ vector:
+ CompressionMethod: 00
+ extensions:
+ length: 0013
+ vector:
+ Extension: /* signature_algorithms */
+ extension_type: 000D
+ extension_data:
+ length: 0006
+ vector:
+ supported_signature_algorithms:
+ length: 0004
+ vector:
+ /* 1 pair of algorithms */
+ hash: 08
+ signature:
+ 40
+ /* 2 pair of algorithms */
+ hash: 08
+ signature:
+ 41
+ Extension: /* renegotiation_info */
+ extension_type: FF01
+ extension_data:
+ length: 0001
+ vector:
+ renegotiated_connection:
+ length: 00
+ vector: --
+ Extension: /* extended_main_secret */
+ extension_type: 0017
+ extension_data:
+ length: 0000
+ vector: --
+
+ 00000: 01 00 00 40 03 03 93 3E A2 1E C3 80 2A 56 15 50
+ 00010: EC 78 D6 ED 51 AC 24 39 D7 E7 49 C3 1B C3 A3 45
+ 00020: 61 65 88 96 84 CA 00 00 04 C1 00 C1 01 01 00 00
+ 00030: 13 00 0D 00 06 00 04 08 40 08 41 FF 01 00 01 00
+ 00040: 00 17 00 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0044
+ fragment: 010000400303933EA21EC3802A561550
+ EC78D6ED51AC2439D7E749C31BC3A345
+ 6165889684CA000004C100C101010000
+ 13000D0006000408400841FF01000100
+ 00170000
+
+ 00000: 16 03 03 00 44 01 00 00 40 03 03 93 3E A2 1E C3
+ 00010: 80 2A 56 15 50 EC 78 D6 ED 51 AC 24 39 D7 E7 49
+ 00020: C3 1B C3 A3 45 61 65 88 96 84 CA 00 00 04 C1 00
+ 00030: C1 01 01 00 00 13 00 0D 00 06 00 04 08 40 08 41
+ 00040: FF 01 00 01 00 00 17 00 00
+
+
+ ---------------------------Server---------------------------
+
+ ServerHello message:
+ msg_type: 02
+ length: 000041
+ body:
+ server_version:
+ major: 03
+ minor: 03
+ random: 933EA21E49C31BC3A3456165889684CA
+ A5576CE7924A24F58113808DBD9EF856
+ session_id:
+ length: 10
+ vector: C3802A561550EC78D6ED51AC2439D7E7
+ cipher_suite:
+ CipherSuite: C101
+ compression_method:
+ CompressionMethod: 00
+ extensions:
+ length: 0009
+ vector:
+ Extension: /* renegotiation_info */
+ extension_type: FF01
+ extension_data:
+ length: 0001
+ vector:
+ renegotiated_connection:
+ length: 00
+ vector: --
+ Extension: /* extended_main_secret */
+ extension_type: 0017
+ extension_data:
+ length: 0000
+ vector: --
+
+ 00000: 02 00 00 41 03 03 93 3E A2 1E 49 C3 1B C3 A3 45
+ 00010: 61 65 88 96 84 CA A5 57 6C E7 92 4A 24 F5 81 13
+ 00020: 80 8D BD 9E F8 56 10 C3 80 2A 56 15 50 EC 78 D6
+ 00030: ED 51 AC 24 39 D7 E7 C1 01 00 00 09 FF 01 00 01
+ 00040: 00 00 17 00 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0045
+ fragment: 020000410303933EA21E49C31BC3A345
+ 6165889684CAA5576CE7924A24F58113
+ 808DBD9EF85610C3802A561550EC78D6
+ ED51AC2439D7E7C101000009FF010001
+ 0000170000
+
+ 00000: 16 03 03 00 45 02 00 00 41 03 03 93 3E A2 1E 49
+ 00010: C3 1B C3 A3 45 61 65 88 96 84 CA A5 57 6C E7 92
+ 00020: 4A 24 F5 81 13 80 8D BD 9E F8 56 10 C3 80 2A 56
+ 00030: 15 50 EC 78 D6 ED 51 AC 24 39 D7 E7 C1 01 00 00
+ 00040: 09 FF 01 00 01 00 00 17 00 00
+
+
+ ---------------------------Server---------------------------
+
+ Certificate message:
+ msg_type: 0B
+ length: 0001DB
+ body:
+ certificate_list:
+ length: 0001D8
+ vector:
+ ASN.1Cert:
+ length: 0001D5
+ vector: 308201D13082017EA003020102020833
+ FBB2C0E9575A46300A06082A85030701
+ 010302301F311D301B06035504030C14
+ . . .
+ 797990E4B5452CF82FE1F19EE237B754
+ CBCD5078D752A28013DFFC8224AD114B
+ BD7C1BB71E480AD6EEF9857A8C99C595
+ 9053EEDFE9
+
+ 00000: 0B 00 01 DB 00 01 D8 00 01 D5 30 82 01 D1 30 82
+ 00010: 01 7E A0 03 02 01 02 02 08 33 FB B2 C0 E9 57 5A
+ 00020: 46 30 0A 06 08 2A 85 03 07 01 01 03 02 30 1F 31
+ 00030: 1D 30 1B 06 03 55 04 03 0C 14 74 65 73 74 5F 73
+ 00040: 65 6C 66 73 69 67 6E 65 64 5F 63 65 72 74 30 1E
+ 00050: 17 0D 31 39 30 36 32 37 31 35 32 34 30 38 5A 17
+ 00060: 0D 32 30 31 32 31 38 31 35 33 34 30 38 5A 30 1F
+ 00070: 31 1D 30 1B 06 03 55 04 03 0C 14 74 65 73 74 5F
+ 00080: 73 65 6C 66 73 69 67 6E 65 64 5F 63 65 72 74 30
+ 00090: 66 30 1F 06 08 2A 85 03 07 01 01 01 01 30 13 06
+ 000A0: 07 2A 85 03 02 02 23 01 06 08 2A 85 03 07 01 01
+ 000B0: 02 02 03 43 00 04 40 67 81 BF E0 60 8C 14 66 73
+ 000C0: 9B C4 D5 10 BF FA 82 02 07 26 3B 29 94 FB 9D FC
+ 000D0: 5B 65 2E A7 D4 31 65 B8 A5 53 B5 77 3E 36 D4 6C
+ 000E0: C2 66 C2 FF B4 70 82 50 27 E7 26 78 6F A6 C4 7F
+ 000F0: 91 5D DC 71 CC F8 37 A3 81 96 30 81 93 30 1D 06
+ 00100: 03 55 1D 0E 04 16 04 14 E7 D0 0B B8 4D 8D 24 18
+ 00110: 29 3E 05 C1 7C E7 77 98 D4 8D 30 16 30 0E 06 03
+ 00120: 55 1D 0F 01 01 FF 04 04 03 02 01 C6 30 12 06 03
+ 00130: 55 1D 13 01 01 FF 04 08 30 06 01 01 FF 02 01 01
+ 00140: 30 4E 06 03 55 1D 23 04 47 30 45 80 14 E7 D0 0B
+ 00150: B8 4D 8D 24 18 29 3E 05 C1 7C E7 77 98 D4 8D 30
+ 00160: 16 A1 23 A4 21 30 1F 31 1D 30 1B 06 03 55 04 03
+ 00170: 0C 14 74 65 73 74 5F 73 65 6C 66 73 69 67 6E 65
+ 00180: 64 5F 63 65 72 74 82 08 33 FB B2 C0 E9 57 5A 46
+ 00190: 30 0A 06 08 2A 85 03 07 01 01 03 02 03 41 00 E2
+ 001A0: 88 44 F9 F1 C8 55 E2 DB 5B 19 79 79 90 E4 B5 45
+ 001B0: 2C F8 2F E1 F1 9E E2 37 B7 54 CB CD 50 78 D7 52
+ 001C0: A2 80 13 DF FC 82 24 AD 11 4B BD 7C 1B B7 1E 48
+ 001D0: 0A D6 EE F9 85 7A 8C 99 C5 95 90 53 EE DF E9
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 01DF
+ fragment: 0B0001DB0001D80001D5308201D13082
+ 017EA003020102020833FBB2C0E9575A
+ 46300A06082A85030701010302301F31
+ . . .
+ 8844F9F1C855E2DB5B19797990E4B545
+ 2CF82FE1F19EE237B754CBCD5078D752
+ A28013DFFC8224AD114BBD7C1BB71E48
+ 0AD6EEF9857A8C99C5959053EEDFE9
+
+ 00000: 16 03 03 01 DF 0B 00 01 DB 00 01 D8 00 01 D5 30
+ 00010: 82 01 D1 30 82 01 7E A0 03 02 01 02 02 08 33 FB
+ 00020: B2 C0 E9 57 5A 46 30 0A 06 08 2A 85 03 07 01 01
+ 00030: 03 02 30 1F 31 1D 30 1B 06 03 55 04 03 0C 14 74
+ 00040: 65 73 74 5F 73 65 6C 66 73 69 67 6E 65 64 5F 63
+ 00050: 65 72 74 30 1E 17 0D 31 39 30 36 32 37 31 35 32
+ 00060: 34 30 38 5A 17 0D 32 30 31 32 31 38 31 35 33 34
+ 00070: 30 38 5A 30 1F 31 1D 30 1B 06 03 55 04 03 0C 14
+ 00080: 74 65 73 74 5F 73 65 6C 66 73 69 67 6E 65 64 5F
+ 00090: 63 65 72 74 30 66 30 1F 06 08 2A 85 03 07 01 01
+ 000A0: 01 01 30 13 06 07 2A 85 03 02 02 23 01 06 08 2A
+ 000B0: 85 03 07 01 01 02 02 03 43 00 04 40 67 81 BF E0
+ 000C0: 60 8C 14 66 73 9B C4 D5 10 BF FA 82 02 07 26 3B
+ 000D0: 29 94 FB 9D FC 5B 65 2E A7 D4 31 65 B8 A5 53 B5
+ 000E0: 77 3E 36 D4 6C C2 66 C2 FF B4 70 82 50 27 E7 26
+ 000F0: 78 6F A6 C4 7F 91 5D DC 71 CC F8 37 A3 81 96 30
+ 00100: 81 93 30 1D 06 03 55 1D 0E 04 16 04 14 E7 D0 0B
+ 00110: B8 4D 8D 24 18 29 3E 05 C1 7C E7 77 98 D4 8D 30
+ 00120: 16 30 0E 06 03 55 1D 0F 01 01 FF 04 04 03 02 01
+ 00130: C6 30 12 06 03 55 1D 13 01 01 FF 04 08 30 06 01
+ 00140: 01 FF 02 01 01 30 4E 06 03 55 1D 23 04 47 30 45
+ 00150: 80 14 E7 D0 0B B8 4D 8D 24 18 29 3E 05 C1 7C E7
+ 00160: 77 98 D4 8D 30 16 A1 23 A4 21 30 1F 31 1D 30 1B
+ 00170: 06 03 55 04 03 0C 14 74 65 73 74 5F 73 65 6C 66
+ 00180: 73 69 67 6E 65 64 5F 63 65 72 74 82 08 33 FB B2
+ 00190: C0 E9 57 5A 46 30 0A 06 08 2A 85 03 07 01 01 03
+ 001A0: 02 03 41 00 E2 88 44 F9 F1 C8 55 E2 DB 5B 19 79
+ 001B0: 79 90 E4 B5 45 2C F8 2F E1 F1 9E E2 37 B7 54 CB
+ 001C0: CD 50 78 D7 52 A2 80 13 DF FC 82 24 AD 11 4B BD
+ 001D0: 7C 1B B7 1E 48 0A D6 EE F9 85 7A 8C 99 C5 95 90
+ 001E0: 53 EE DF E9
+
+
+ ---------------------------Server---------------------------
+
+ ServerHelloDone message:
+ msg_type: 0E
+ length: 000000
+ body: --
+
+ 00000: 0E 00 00 00
+
+ Record layer message::
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0004
+ fragment: 0E000000
+
+ 00000: 16 03 03 00 04 0E 00 00 00
+
+
+ ---------------------------Client---------------------------
+
+ PMS:
+ 00000: A5 57 6C E7 92 4A 24 F5 81 13 80 8D BD 9E F8 56
+ 00010: F5 BD C3 B1 83 CE 5D AD CA 36 A5 3A A0 77 65 1D
+
+ Random d_eph value:
+ 0xA5C77C7482373DE16CE4A6F73CCE7F78
+ 471493FF2C0709B8B706C9E8A25E6C1E
+
+ Q_eph ephemeral key:
+ x = 0xA8F36D63D262A203978F1B3B6795CDBB
+ F1AE7FB8EF7F47F1F18871C198E00793
+
+ y = 0x34CA5D6B4485640EA195435993BEB1F8
+ B016ED610496B5CC175AC2EA1F14F887
+
+ HASH (r_c | r_s):
+ 00000: C3 EF 04 28 D4 B7 A1 F4 C5 02 5F 2E 65 DD 2B 2E
+ 00010: A5 83 AE EF DB 67 C7 F4 21 4A 6A 29 8E 99 E3 25
+
+ Export key generation. r value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ Export key generation. UKM value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ seed:
+ 00000: A5 83 AE EF DB 67 C7 F4
+
+ K_EXP:
+ 00000: 1E 58 54 90 E8 65 FF D1 8F 18 D7 C0 A0 4D 0E E8
+ 00010: 4F 1A 5D 79 7C EF AD A0 1B 1E 3B 7F DB 90 E0 29
+
+ Export keys K_Exp_MAC | K_Exp_ENC used in KExp15 algorithm:
+ 00000: 2D 8B A8 C8 4C B2 32 FF 41 F1 0C 3A D9 24 13 42
+ 00010: 23 25 4F 71 E5 69 6D 3D 29 C3 E4 C9 DA A6 B2 93
+ 00020: 84 9E B6 34 0B FF AE 69 28 A3 C3 E4 FF 92 EC CB
+ 00030: 1E 8F 0C F7 A1 88 36 8E 6B 74 8E 52 EA 37 8B 0C
+
+ IV:
+ 00000: 21 4A 6A 29
+
+ PMSEXP:
+ 00000: D7 F0 F0 42 23 67 86 7B 25 FA 42 33 A9 54 F5 8B
+ 00010: DE 92 E9 C9 BB FB 88 16 C9 9F 15 E6 39 87 22 A0
+ 00020: B2 B7 BF E8 49 3E 9A 5C
+
+
+ ---------------------------Client---------------------------
+
+ ClientKeyExchange message:
+ msg_type: 10
+ length: 000095
+ body:
+ exchange_keys: 3081920428D7F0F0422367867B25FA42
+ 33A954F58BDE92E9C9BBFB8816C99F15
+ E6398722A0B2B7BFE8493E9A5C306630
+ . . .
+ EFB87FAEF1BBCD95673B1B8F9703A262
+ D2636DF3A887F8141FEAC25A17CCB596
+ 0461ED16B0F8B1BE93594395A10E6485
+ 446B5DCA34
+
+ 00000: 10 00 00 95 30 81 92 04 28 D7 F0 F0 42 23 67 86
+ 00010: 7B 25 FA 42 33 A9 54 F5 8B DE 92 E9 C9 BB FB 88
+ 00020: 16 C9 9F 15 E6 39 87 22 A0 B2 B7 BF E8 49 3E 9A
+ 00030: 5C 30 66 30 1F 06 08 2A 85 03 07 01 01 01 01 30
+ 00040: 13 06 07 2A 85 03 02 02 23 01 06 08 2A 85 03 07
+ 00050: 01 01 02 02 03 43 00 04 40 93 07 E0 98 C1 71 88
+ 00060: F1 F1 47 7F EF B8 7F AE F1 BB CD 95 67 3B 1B 8F
+ 00070: 97 03 A2 62 D2 63 6D F3 A8 87 F8 14 1F EA C2 5A
+ 00080: 17 CC B5 96 04 61 ED 16 B0 F8 B1 BE 93 59 43 95
+ 00090: A1 0E 64 85 44 6B 5D CA 34
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0099
+ fragment: 100000953081920428D7F0F042236786
+ 7B25FA4233A954F58BDE92E9C9BBFB88
+ 16C99F15E6398722A0B2B7BFE8493E9A
+ . . .
+ F1F1477FEFB87FAEF1BBCD95673B1B8F
+ 9703A262D2636DF3A887F8141FEAC25A
+ 17CCB5960461ED16B0F8B1BE93594395
+ A10E6485446B5DCA34
+
+ 00000: 16 03 03 00 99 10 00 00 95 30 81 92 04 28 D7 F0
+ 00010: F0 42 23 67 86 7B 25 FA 42 33 A9 54 F5 8B DE 92
+ 00020: E9 C9 BB FB 88 16 C9 9F 15 E6 39 87 22 A0 B2 B7
+ 00030: BF E8 49 3E 9A 5C 30 66 30 1F 06 08 2A 85 03 07
+ 00040: 01 01 01 01 30 13 06 07 2A 85 03 02 02 23 01 06
+ 00050: 08 2A 85 03 07 01 01 02 02 03 43 00 04 40 93 07
+ 00060: E0 98 C1 71 88 F1 F1 47 7F EF B8 7F AE F1 BB CD
+ 00070: 95 67 3B 1B 8F 97 03 A2 62 D2 63 6D F3 A8 87 F8
+ 00080: 14 1F EA C2 5A 17 CC B5 96 04 61 ED 16 B0 F8 B1
+ 00090: BE 93 59 43 95 A1 0E 64 85 44 6B 5D CA 34
+
+
+ ---------------------------Server---------------------------
+
+ PMSEXP extracted:
+ 00000: D7 F0 F0 42 23 67 86 7B 25 FA 42 33 A9 54 F5 8B
+ 00010: DE 92 E9 C9 BB FB 88 16 C9 9F 15 E6 39 87 22 A0
+ 00020: B2 B7 BF E8 49 3E 9A 5C
+
+ HASH(r_c | r_s):
+ 00000: C3 EF 04 28 D4 B7 A1 F4 C5 02 5F 2E 65 DD 2B 2E
+ 00010: A5 83 AE EF DB 67 C7 F4 21 4A 6A 29 8E 99 E3 25
+
+ Export key generation. r value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ Export key generation. UKM value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ seed:
+ 00000: A5 83 AE EF DB 67 C7 F4
+
+ K_EXP:
+ 00000: 1E 58 54 90 E8 65 FF D1 8F 18 D7 C0 A0 4D 0E E8
+ 00010: 4F 1A 5D 79 7C EF AD A0 1B 1E 3B 7F DB 90 E0 29
+
+ Import keys K_Imp_MAC | K_Imp_ENC used in KImp15 algorithm:
+ 00000: 2D 8B A8 C8 4C B2 32 FF 41 F1 0C 3A D9 24 13 42
+ 00010: 23 25 4F 71 E5 69 6D 3D 29 C3 E4 C9 DA A6 B2 93
+ 00020: 84 9E B6 34 0B FF AE 69 28 A3 C3 E4 FF 92 EC CB
+ 00030: 1E 8F 0C F7 A1 88 36 8E 6B 74 8E 52 EA 37 8B 0C
+
+ IV:
+ 00000: 21 4A 6A 29
+
+ PMS:
+ 00000: A5 57 6C E7 92 4A 24 F5 81 13 80 8D BD 9E F8 56
+ 00010: F5 BD C3 B1 83 CE 5D AD CA 36 A5 3A A0 77 65 1D
+
+
+ ---------------------------Client---------------------------
+
+ HASH(HM):
+ 00000: 7E 1F 59 D3 64 9D B6 09 00 EA 4F 8A 58 5A 65 7A
+ 00010: 92 77 B3 04 50 58 4C F5 43 51 19 8C DE A3 0C 49
+
+ MS:
+ 00000: FD D2 7C B4 04 AD 4E 44 49 68 4F 7C 55 90 E9 E7
+ 00010: 02 EF 41 01 93 3B 52 77 A4 A9 6D F5 00 B0 7C C3
+ 00020: 32 4F D8 A6 D9 07 CB B0 3D F3 FB 33 1F 1C 4D 0C
+
+ Client connection key material
+ K_write_MAC|K_read_MAC|K_write_ENC|K_read_ENC|IV_write|IV_read:
+ 00000: DD 4E 10 17 E3 09 1F FD 86 75 65 8A 78 00 90 09
+ 00010: 3B BE 69 EC A6 93 31 5C A8 5B E0 A6 14 3D C9 F8
+ 00020: 1D 64 D0 23 46 5F 8B EA 17 F8 12 F8 C2 D8 BF C0
+ 00030: D9 BB AB A7 B4 DF D3 A1 7C E0 E1 3B 2D 63 65 F3
+ 00040: FC 8B 34 59 CF 54 FE 44 9A 04 07 64 53 73 08 00
+ 00050: 75 10 32 55 9D 07 B6 C4 EA C6 75 48 71 BC 97 8A
+ 00060: B9 0E 2A EE 98 77 14 BB D8 F7 57 AE F7 84 FF 24
+ 00070: 47 B3 94 2E B4 3E 26 35 73 1C 4C 28 22 D0 2D 79
+ 00080: 2B 6A 81 3F 93 ED A6 FA
+
+
+ ---------------------------Server---------------------------
+
+ HASH(HM):
+ 00000: 7E 1F 59 D3 64 9D B6 09 00 EA 4F 8A 58 5A 65 7A
+ 00010: 92 77 B3 04 50 58 4C F5 43 51 19 8C DE A3 0C 49
+
+ MS:
+ 00000: FD D2 7C B4 04 AD 4E 44 49 68 4F 7C 55 90 E9 E7
+ 00010: 02 EF 41 01 93 3B 52 77 A4 A9 6D F5 00 B0 7C C3
+ 00020: 32 4F D8 A6 D9 07 CB B0 3D F3 FB 33 1F 1C 4D 0C
+
+ Server connection key material
+ K_read_MAC|K_write_MAC|K_read_ENC|K_write_ENC|IV_read|IV_write:
+ 00000: DD 4E 10 17 E3 09 1F FD 86 75 65 8A 78 00 90 09
+ 00010: 3B BE 69 EC A6 93 31 5C A8 5B E0 A6 14 3D C9 F8
+ 00020: 1D 64 D0 23 46 5F 8B EA 17 F8 12 F8 C2 D8 BF C0
+ 00030: D9 BB AB A7 B4 DF D3 A1 7C E0 E1 3B 2D 63 65 F3
+ 00040: FC 8B 34 59 CF 54 FE 44 9A 04 07 64 53 73 08 00
+ 00050: 75 10 32 55 9D 07 B6 C4 EA C6 75 48 71 BC 97 8A
+ 00060: B9 0E 2A EE 98 77 14 BB D8 F7 57 AE F7 84 FF 24
+ 00070: 47 B3 94 2E B4 3E 26 35 73 1C 4C 28 22 D0 2D 79
+ 00080: 2B 6A 81 3F 93 ED A6 FA
+
+
+ ---------------------------Client---------------------------
+
+ ChangeCipherSpec message:
+ type: 01
+
+ 00000: 01
+
+ Record layer message:
+ type: 14
+ version:
+ major: 03
+ minor: 03
+ length: 0001
+ fragment: 01
+
+ 00000: 14 03 03 00 01 01
+
+
+ ---------------------------Client---------------------------
+
+ HASH(HM):
+ 00000: 7E 1F 59 D3 64 9D B6 09 00 EA 4F 8A 58 5A 65 7A
+ 00010: 92 77 B3 04 50 58 4C F5 43 51 19 8C DE A3 0C 49
+
+ client_verify_data:
+ 00000: B4 61 C5 AD 25 EA 1E 62 B3 70 BD 1F 1B CB 16 91
+ 00010: FC CC BA 37 8B BC 13 43 BE 54 B3 8D F5 53 B7 A5
+
+
+ ---------------------------Client---------------------------
+
+ Finished message:
+ msg_type: 14
+ length: 000020
+ body:
+ verify_data: B461C5AD25EA1E62B370BD1F1BCB1691
+ FCCCBA378BBC1343BE54B38DF553B7A5
+
+ 00000: 14 00 00 20 B4 61 C5 AD 25 EA 1E 62 B3 70 BD 1F
+ 00010: 1B CB 16 91 FC CC BA 37 8B BC 13 43 BE 54 B3 8D
+ 00020: F5 53 B7 A5
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 002C
+ fragment: 0C630271D4DA39DD8D6BD040302D9B8F
+ 33D5F7B967EED155F7D65592892C03C7
+ 885C249B1225B184AB4D5DBF
+
+ 00000: 16 03 03 00 2C 0C 63 02 71 D4 DA 39 DD 8D 6B D0
+ 00010: 40 30 2D 9B 8F 33 D5 F7 B9 67 EE D1 55 F7 D6 55
+ 00020: 92 89 2C 03 C7 88 5C 24 9B 12 25 B1 84 AB 4D 5D
+ 00030: BF
+
+
+ ---------------------------Server---------------------------
+
+ ChangeCipherSpec message:
+ type: 01
+
+ 00000: 01
+
+ Record layer message:
+ type: 14
+ version:
+ major: 03
+ minor: 03
+ length: 0001
+ fragment: 01
+
+ 00000: 14 03 03 00 01 01
+
+
+ ---------------------------Server---------------------------
+
+ HASH(HM):
+ 00000: DB D7 D8 93 82 4A ED FD D5 FB 7B 75 4B 47 E1 E6
+ 00010: AF E0 77 DA E6 D1 13 63 42 07 C7 EE 0F C6 F3 B1
+
+ server_verify_data:
+ 00000: 45 39 EC 8D 0A F7 B1 A6 20 41 AB 43 4A 43 77 71
+ 00010: D3 4C 47 19 D8 6E BB FD 0F 28 C3 E9 53 55 0C D0
+
+
+ ---------------------------Server---------------------------
+
+ Finished message:
+ msg_type: 14
+ length: 000020
+ body:
+ verify_data: 4539EC8D0AF7B1A62041AB434A437771
+ D34C4719D86EBBFD0F28C3E953550CD0
+
+ 00000: 14 00 00 20 45 39 EC 8D 0A F7 B1 A6 20 41 AB 43
+ 00010: 4A 43 77 71 D3 4C 47 19 D8 6E BB FD 0F 28 C3 E9
+ 00020: 53 55 0C D0
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 002C
+ fragment: E6A94A4BF70886566A2316811E57B483
+ BB1E47950A1FF820A80DCA77A4DF9954
+ 2DAB6953F3ED03D95CCA4748
+
+ 00000: 16 03 03 00 2C E6 A9 4A 4B F7 08 86 56 6A 23 16
+ 00010: 81 1E 57 B4 83 BB 1E 47 95 0A 1F F8 20 A8 0D CA
+ 00020: 77 A4 DF 99 54 2D AB 69 53 F3 ED 03 D9 5C CA 47
+ 00030: 48
+
+
+ ---------------------------Client---------------------------
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ Record layer message:
+ type: 17
+ version:
+ major: 03
+ minor: 03
+ length: 0028
+ fragment: 38807B6E5E0C3F4F7E0DBF7758031BF0
+ 7F100C4B63ADBC75F49BCBF428572D37
+ 7CAED097336DB203
+
+ 00000: 17 03 03 00 28 38 80 7B 6E 5E 0C 3F 4F 7E 0D BF
+ 00010: 77 58 03 1B F0 7F 10 0C 4B 63 AD BC 75 F4 9B CB
+ 00020: F4 28 57 2D 37 7C AE D0 97 33 6D B2 03
+
+
+ ---------------------------Server---------------------------
+
+ Application data:
+ 00000: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ 00010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+
+ Record layer message:
+ type: 17
+ version:
+ major: 03
+ minor: 03
+ length: 0028
+ fragment: 05B869E5C979C3B9D4837B8E39D9BBEE
+ 1BBD0052D3D48340D0CDE082B33BC07F
+ 4E742D1113249AD8
+
+ 00000: 17 03 03 00 28 05 B8 69 E5 C9 79 C3 B9 D4 83 7B
+ 00010: 8E 39 D9 BB EE 1B BD 00 52 D3 D4 83 40 D0 CD E0
+ 00020: 82 B3 3B C0 7F 4E 74 2D 11 13 24 9A D8
+
+
+ ---------------------------Client---------------------------
+
+ close_notify alert:
+ Alert:
+ level: 01
+ description: 00
+
+ 00000: 01 00
+
+ Record layer message:
+ type: 15
+ version:
+ major: 03
+ minor: 03
+ length: 000A
+ fragment: 4F2A0807A0374E28C632
+
+ 00000: 15 03 03 00 0A 4F 2A 08 07 A0 37 4E 28 C6 32
+
+
+ ---------------------------Server---------------------------
+
+ close_notify alert:
+ Alert:
+ level: 01
+ description: 00
+
+ 00000: 01 00
+
+ Record layer message:
+ type: 15
+ version:
+ major: 03
+ minor: 03
+ length: 000A
+ fragment: 999468B49AC5B0DE512C
+
+ 00000: 15 03 03 00 0A 99 94 68 B4 9A C5 B0 DE 51 2C
+
+A.1.3.2. TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC Cipher Suite
+
+ Server certificate curve OID:
+ id-tc26-gost-3410-2012-512-paramSetC, "1.2.643.7.1.2.1.2.3"
+
+ Server public key Q_s:
+ x = 0xF14589DA479AD972C66563669B3FF580
+ 92E6A30A288BF447CD9FF6C3133E9724
+ 7A9706B267703C9B4E239F0D7C7E3310
+ C22D2752B35BD2E4FD39B8F11DEB833A
+
+ y = 0xF305E95B36502D4E60A1059FB20AB30B
+ FC7C95727F3A2C04B1DFDDB53B0413F2
+ 99F2DFE66A5E1CCB4101A7A01D612BE6
+ BD78E1E3B3D567EBB16ABE587A11F4EA
+
+ Server private key d_s:
+ 0x12FD7A70067479A0F66C59F9A25534AD
+ FBC7ABFD3CC72D79806F8B402601644B
+ 3005ED365A2D8989A8CCAE640D5FC08D
+ D27DFBBFE137CF528E1AC6D445192E01
+
+ Client certificate curve OID:
+ id-tc26-gost-3410-2012-256-paramSetA, "1.2.643.7.1.2.1.1.1"
+
+ Client public key Q_c:
+ x = 0x0F5DB18A9E15F324B778676025BFD7B5
+ DF066566EABAA1C51CD879F87B0B4975
+
+ y = 0x9EE5BBF18361F842D3F087DEC2943939
+ E0FA2BFB4EDEC25A8D10ABB22C48F386
+
+ Client private key d_c:
+ 0x0918AD3F7D209ABF89F1E8505DA894CE
+ E10DA09D32E72E815D9C0ADA30B5A103
+
+
+ ---------------------------Client---------------------------
+
+ ClientHello message:
+ msg_type: 01
+ length: 000040
+ body:
+ client_version:
+ major: 03
+ minor: 03
+ random: 933EA21EC3802A561550EC78D6ED51AC
+ 2439D7E749C31BC3A3456165889684CA
+ session_id:
+ length: 00
+ vector: --
+ cipher_suites:
+ length: 0004
+ vector:
+ CipherSuite: C100
+ CipherSuite: C101
+ compression_methods:
+ length: 01
+ vector:
+ CompressionMethod: 00
+ extensions:
+ length: 0013
+ vector:
+ Extension: /* signature_algorithms */
+ extension_type: 000D
+ extension_data:
+ length: 0006
+ vector:
+ supported_signature_algorithms:
+ length: 0004
+ vector:
+ /* 1 pair of algorithms */
+ hash: 08
+ signature:
+ 40
+ /* 2 pair of algorithms */
+ hash: 08
+ signature:
+ 41
+ Extension: /* renegotiation_info */
+ extension_type: FF01
+ extension_data:
+ length: 0001
+ vector:
+ renegotiated_connection:
+ length: 00
+ vector: --
+ Extension: /* extended_main_secret */
+ extension_type: 0017
+ extension_data:
+ length: 0000
+ vector: --
+
+ 00000: 01 00 00 40 03 03 93 3E A2 1E C3 80 2A 56 15 50
+ 00010: EC 78 D6 ED 51 AC 24 39 D7 E7 49 C3 1B C3 A3 45
+ 00020: 61 65 88 96 84 CA 00 00 04 C1 00 C1 01 01 00 00
+ 00030: 13 00 0D 00 06 00 04 08 40 08 41 FF 01 00 01 00
+ 00040: 00 17 00 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0044
+ fragment: 010000400303933EA21EC3802A561550
+ EC78D6ED51AC2439D7E749C31BC3A345
+ 6165889684CA000004C100C101010000
+ 13000D0006000408400841FF01000100
+ 00170000
+
+ 00000: 16 03 03 00 44 01 00 00 40 03 03 93 3E A2 1E C3
+ 00010: 80 2A 56 15 50 EC 78 D6 ED 51 AC 24 39 D7 E7 49
+ 00020: C3 1B C3 A3 45 61 65 88 96 84 CA 00 00 04 C1 00
+ 00030: C1 01 01 00 00 13 00 0D 00 06 00 04 08 40 08 41
+ 00040: FF 01 00 01 00 00 17 00 00
+
+
+ ---------------------------Server---------------------------
+
+ ServerHello message:
+ msg_type: 02
+ length: 000041
+ body:
+ server_version:
+ major: 03
+ minor: 03
+ random: 933EA21E49C31BC3A3456165889684CA
+ A5576CE7924A24F58113808DBD9EF856
+ session_id:
+ length: 10
+ vector: C3802A561550EC78D6ED51AC2439D7E7
+ cipher_suite:
+ CipherSuite: C100
+ compression_method:
+ CompressionMethod: 00
+ extensions:
+ length: 0009
+ vector:
+ Extension: /* renegotiation_info */
+ extension_type: FF01
+ extension_data:
+ length: 0001
+ vector:
+ renegotiated_connection:
+ length: 00
+ vector: --
+ Extension: /* extended_main_secret */
+ extension_type: 0017
+ extension_data:
+ length: 0000
+ vector: --
+
+ 00000: 02 00 00 41 03 03 93 3E A2 1E 49 C3 1B C3 A3 45
+ 00010: 61 65 88 96 84 CA A5 57 6C E7 92 4A 24 F5 81 13
+ 00020: 80 8D BD 9E F8 56 10 C3 80 2A 56 15 50 EC 78 D6
+ 00030: ED 51 AC 24 39 D7 E7 C1 00 00 00 09 FF 01 00 01
+ 00040: 00 00 17 00 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0045
+ fragment: 020000410303933EA21E49C31BC3A345
+ 6165889684CAA5576CE7924A24F58113
+ 808DBD9EF85610C3802A561550EC78D6
+ ED51AC2439D7E7C100000009FF010001
+ 0000170000
+
+ 00000: 16 03 03 00 45 02 00 00 41 03 03 93 3E A2 1E 49
+ 00010: C3 1B C3 A3 45 61 65 88 96 84 CA A5 57 6C E7 92
+ 00020: 4A 24 F5 81 13 80 8D BD 9E F8 56 10 C3 80 2A 56
+ 00030: 15 50 EC 78 D6 ED 51 AC 24 39 D7 E7 C1 00 00 00
+ 00040: 09 FF 01 00 01 00 00 17 00 00
+
+
+ ---------------------------Server---------------------------
+
+ Certificate message:
+ msg_type: 0B
+ length: 00024C
+ body:
+ certificate_list:
+ length: 000249
+ vector:
+ ASN.1Cert:
+ length: 000246
+ vector: 30820242308201AEA003020102020101
+ 300A06082A850307010103033042312C
+ 302A06092A864886F70D010901161D74
+ . . .
+ 371AF83C5BC58B366DFEFA7345D50317
+ 867C177AC84AC07EE8612164629AB7BD
+ C48AA0F64A741FE7298E82C5BFCE8672
+ 029F875391F7
+
+ 00000: 0B 00 02 4C 00 02 49 00 02 46 30 82 02 42 30 82
+ 00010: 01 AE A0 03 02 01 02 02 01 01 30 0A 06 08 2A 85
+ 00020: 03 07 01 01 03 03 30 42 31 2C 30 2A 06 09 2A 86
+ 00030: 48 86 F7 0D 01 09 01 16 1D 74 6C 73 31 32 5F 73
+ 00040: 65 72 76 65 72 35 31 32 43 40 63 72 79 70 74 6F
+ 00050: 70 72 6F 2E 72 75 31 12 30 10 06 03 55 04 03 13
+ 00060: 09 53 65 72 76 65 72 35 31 32 30 1E 17 0D 31 37
+ 00070: 30 35 32 35 30 39 32 35 31 38 5A 17 0D 33 30 30
+ 00080: 35 30 31 30 39 32 35 31 38 5A 30 42 31 2C 30 2A
+ 00090: 06 09 2A 86 48 86 F7 0D 01 09 01 16 1D 74 6C 73
+ 000A0: 31 32 5F 73 65 72 76 65 72 35 31 32 43 40 63 72
+ 000B0: 79 70 74 6F 70 72 6F 2E 72 75 31 12 30 10 06 03
+ 000C0: 55 04 03 13 09 53 65 72 76 65 72 35 31 32 30 81
+ 000D0: AA 30 21 06 08 2A 85 03 07 01 01 01 02 30 15 06
+ 000E0: 09 2A 85 03 07 01 02 01 02 03 06 08 2A 85 03 07
+ 000F0: 01 01 02 03 03 81 84 00 04 81 80 3A 83 EB 1D F1
+ 00100: B8 39 FD E4 D2 5B B3 52 27 2D C2 10 33 7E 7C 0D
+ 00110: 9F 23 4E 9B 3C 70 67 B2 06 97 7A 24 97 3E 13 C3
+ 00120: F6 9F CD 47 F4 8B 28 0A A3 E6 92 80 F5 3F 9B 66
+ 00130: 63 65 C6 72 D9 9A 47 DA 89 45 F1 EA F4 11 7A 58
+ 00140: BE 6A B1 EB 67 D5 B3 E3 E1 78 BD E6 2B 61 1D A0
+ 00150: A7 01 41 CB 1C 5E 6A E6 DF F2 99 F2 13 04 3B B5
+ 00160: DD DF B1 04 2C 3A 7F 72 95 7C FC 0B B3 0A B2 9F
+ 00170: 05 A1 60 4E 2D 50 36 5B E9 05 F3 A3 43 30 41 30
+ 00180: 1D 06 03 55 1D 0E 04 16 04 14 87 9C C6 5A 0F 4A
+ 00190: 89 CB 4A 58 49 DF 05 61 56 9B AA DC 11 69 30 0B
+ 001A0: 06 03 55 1D 0F 04 04 03 02 03 28 30 13 06 03 55
+ 001B0: 1D 25 04 0C 30 0A 06 08 2B 06 01 05 05 07 03 01
+ 001C0: 30 0A 06 08 2A 85 03 07 01 01 03 03 03 81 81 00
+ 001D0: 35 BE 38 51 EC B6 E9 2D 32 40 01 81 0F 8C 89 03
+ 001E0: 52 42 F4 05 46 9F 4C 4E CB 05 02 7C 57 E2 71 52
+ 001F0: 12 AF D7 CD BB 0C ED 7A 8B 4D 33 42 CC 50 1A BD
+ 00200: 99 99 75 A5 8A DE 0E 58 4F CA 35 F5 2E 45 58 B7
+ 00210: 31 1D 49 D0 A0 51 32 79 F7 39 37 1A F8 3C 5B C5
+ 00220: 8B 36 6D FE FA 73 45 D5 03 17 86 7C 17 7A C8 4A
+ 00230: C0 7E E8 61 21 64 62 9A B7 BD C4 8A A0 F6 4A 74
+ 00240: 1F E7 29 8E 82 C5 BF CE 86 72 02 9F 87 53 91 F7
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0250
+ fragment: 0B00024C000249000246308202423082
+ 01AEA003020102020101300A06082A85
+ 0307010103033042312C302A06092A86
+ . . .
+ 8B366DFEFA7345D50317867C177AC84A
+ C07EE8612164629AB7BDC48AA0F64A74
+ 1FE7298E82C5BFCE8672029F875391F7
+
+ 00000: 16 03 03 02 50 0B 00 02 4C 00 02 49 00 02 46 30
+ 00010: 82 02 42 30 82 01 AE A0 03 02 01 02 02 01 01 30
+ 00020: 0A 06 08 2A 85 03 07 01 01 03 03 30 42 31 2C 30
+ 00030: 2A 06 09 2A 86 48 86 F7 0D 01 09 01 16 1D 74 6C
+ 00040: 73 31 32 5F 73 65 72 76 65 72 35 31 32 43 40 63
+ 00050: 72 79 70 74 6F 70 72 6F 2E 72 75 31 12 30 10 06
+ 00060: 03 55 04 03 13 09 53 65 72 76 65 72 35 31 32 30
+ 00070: 1E 17 0D 31 37 30 35 32 35 30 39 32 35 31 38 5A
+ 00080: 17 0D 33 30 30 35 30 31 30 39 32 35 31 38 5A 30
+ 00090: 42 31 2C 30 2A 06 09 2A 86 48 86 F7 0D 01 09 01
+ 000A0: 16 1D 74 6C 73 31 32 5F 73 65 72 76 65 72 35 31
+ 000B0: 32 43 40 63 72 79 70 74 6F 70 72 6F 2E 72 75 31
+ 000C0: 12 30 10 06 03 55 04 03 13 09 53 65 72 76 65 72
+ 000D0: 35 31 32 30 81 AA 30 21 06 08 2A 85 03 07 01 01
+ 000E0: 01 02 30 15 06 09 2A 85 03 07 01 02 01 02 03 06
+ 000F0: 08 2A 85 03 07 01 01 02 03 03 81 84 00 04 81 80
+ 00100: 3A 83 EB 1D F1 B8 39 FD E4 D2 5B B3 52 27 2D C2
+ 00110: 10 33 7E 7C 0D 9F 23 4E 9B 3C 70 67 B2 06 97 7A
+ 00120: 24 97 3E 13 C3 F6 9F CD 47 F4 8B 28 0A A3 E6 92
+ 00130: 80 F5 3F 9B 66 63 65 C6 72 D9 9A 47 DA 89 45 F1
+ 00140: EA F4 11 7A 58 BE 6A B1 EB 67 D5 B3 E3 E1 78 BD
+ 00150: E6 2B 61 1D A0 A7 01 41 CB 1C 5E 6A E6 DF F2 99
+ 00160: F2 13 04 3B B5 DD DF B1 04 2C 3A 7F 72 95 7C FC
+ 00170: 0B B3 0A B2 9F 05 A1 60 4E 2D 50 36 5B E9 05 F3
+ 00180: A3 43 30 41 30 1D 06 03 55 1D 0E 04 16 04 14 87
+ 00190: 9C C6 5A 0F 4A 89 CB 4A 58 49 DF 05 61 56 9B AA
+ 001A0: DC 11 69 30 0B 06 03 55 1D 0F 04 04 03 02 03 28
+ 001B0: 30 13 06 03 55 1D 25 04 0C 30 0A 06 08 2B 06 01
+ 001C0: 05 05 07 03 01 30 0A 06 08 2A 85 03 07 01 01 03
+ 001D0: 03 03 81 81 00 35 BE 38 51 EC B6 E9 2D 32 40 01
+ 001E0: 81 0F 8C 89 03 52 42 F4 05 46 9F 4C 4E CB 05 02
+ 001F0: 7C 57 E2 71 52 12 AF D7 CD BB 0C ED 7A 8B 4D 33
+ 00200: 42 CC 50 1A BD 99 99 75 A5 8A DE 0E 58 4F CA 35
+ 00210: F5 2E 45 58 B7 31 1D 49 D0 A0 51 32 79 F7 39 37
+ 00220: 1A F8 3C 5B C5 8B 36 6D FE FA 73 45 D5 03 17 86
+ 00230: 7C 17 7A C8 4A C0 7E E8 61 21 64 62 9A B7 BD C4
+ 00240: 8A A0 F6 4A 74 1F E7 29 8E 82 C5 BF CE 86 72 02
+ 00250: 9F 87 53 91 F7
+
+
+ ---------------------------Server---------------------------
+
+ CertificateRequest message:
+ msg_type: 0D
+ length: 00000B
+ body:
+ certificate_types:
+ length: 02
+ vector:
+ /* gost_sign256 */
+ 43
+ /* gost_sign512 */
+ 44
+ supported_signature_algorithms:
+ length: 0004
+ vector:
+ /* 1 pair of algorithms */
+ hash: 08
+ signature: 40
+ /* 2 pair of algorithms */
+ hash: 08
+ signature: 41
+ certificate_authorities:
+ length: 0000
+ vector: --
+
+ 00000: 0D 00 00 0B 02 43 44 00 04 08 40 08 41 00 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 000F
+ fragment: 0D00000B0243440004084008410000
+
+ 00000: 16 03 03 00 0F 0D 00 00 0B 02 43 44 00 04 08 40
+ 00010: 08 41 00 00
+
+
+ ---------------------------Server---------------------------
+
+ ServerHelloDone message:
+ msg_type: 0E
+ length: 000000
+ body: --
+
+ 00000: 0E 00 00 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0004
+ fragment: 0E000000
+
+ 00000: 16 03 03 00 04 0E 00 00 00
+
+
+ ---------------------------Client---------------------------
+
+ Certificate message:
+ msg_type: 0B
+ length: 0001EA
+ body:
+ certificate_list:
+ length: 0001E7
+ vector:
+ ASN.1Cert:
+ length: 0001E4
+ vector: 308201E03082018DA003020102020101
+ 300A06082A850307010103023053312E
+ 302C06092A864886F70D010901161F74
+ . . .
+ C1CAB43AC01AFB0F3451BDC2DB188BBC
+ B77884251CDF6037BA830F4B31D5E96F
+ DC9BC1C95ABE658266C48402E070DE1F
+ 292724E8
+
+ 00000: 0B 00 01 EA 00 01 E7 00 01 E4 30 82 01 E0 30 82
+ 00010: 01 8D A0 03 02 01 02 02 01 01 30 0A 06 08 2A 85
+ 00020: 03 07 01 01 03 02 30 53 31 2E 30 2C 06 09 2A 86
+ 00030: 48 86 F7 0D 01 09 01 16 1F 74 6C 73 31 32 5F 63
+ 00040: 6C 69 65 6E 74 32 35 36 41 5F 45 40 63 72 79 70
+ 00050: 74 6F 70 72 6F 2E 72 75 31 21 30 1F 06 03 55 04
+ 00060: 03 1E 18 00 43 00 6C 00 69 00 65 00 6E 00 74 00
+ 00070: 32 00 35 00 36 00 41 00 5F 00 45 30 1E 17 0D 31
+ 00080: 37 30 35 32 35 30 39 33 31 31 38 5A 17 0D 33 30
+ 00090: 30 35 30 31 30 39 33 31 31 38 5A 30 53 31 2E 30
+ 000A0: 2C 06 09 2A 86 48 86 F7 0D 01 09 01 16 1F 74 6C
+ 000B0: 73 31 32 5F 63 6C 69 65 6E 74 32 35 36 41 5F 45
+ 000C0: 40 63 72 79 70 74 6F 70 72 6F 2E 72 75 31 21 30
+ 000D0: 1F 06 03 55 04 03 1E 18 00 43 00 6C 00 69 00 65
+ 000E0: 00 6E 00 74 00 32 00 35 00 36 00 41 00 5F 00 45
+ 000F0: 30 68 30 21 06 08 2A 85 03 07 01 01 01 01 30 15
+ 00100: 06 09 2A 85 03 07 01 02 01 01 01 06 08 2A 85 03
+ 00110: 07 01 01 02 02 03 43 00 04 40 75 49 0B 7B F8 79
+ 00120: D8 1C C5 A1 BA EA 66 65 06 DF B5 D7 BF 25 60 67
+ 00130: 78 B7 24 F3 15 9E 8A B1 5D 0F 86 F3 48 2C B2 AB
+ 00140: 10 8D 5A C2 DE 4E FB 2B FA E0 39 39 94 C2 DE 87
+ 00150: F0 D3 42 F8 61 83 F1 BB E5 9E A3 43 30 41 30 1D
+ 00160: 06 03 55 1D 0E 04 16 04 14 74 49 1E 77 30 D3 42
+ 00170: A6 28 0E 72 A1 13 9D D9 90 8B FA F1 03 30 0B 06
+ 00180: 03 55 1D 0F 04 04 03 02 07 80 30 13 06 03 55 1D
+ 00190: 25 04 0C 30 0A 06 08 2B 06 01 05 05 07 03 02 30
+ 001A0: 0A 06 08 2A 85 03 07 01 01 03 02 03 41 00 1C 2D
+ 001B0: 35 22 B4 11 02 D6 20 1F 23 50 C1 CA B4 3A C0 1A
+ 001C0: FB 0F 34 51 BD C2 DB 18 8B BC B7 78 84 25 1C DF
+ 001D0: 60 37 BA 83 0F 4B 31 D5 E9 6F DC 9B C1 C9 5A BE
+ 001E0: 65 82 66 C4 84 02 E0 70 DE 1F 29 27 24 E8
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 01EE
+ fragment: 0B0001EA0001E70001E4308201E03082
+ 018DA003020102020101300A06082A85
+ 0307010103023053312E302C06092A86
+ . . .
+ 3522B41102D6201F2350C1CAB43AC01A
+ FB0F3451BDC2DB188BBCB77884251CDF
+ 6037BA830F4B31D5E96FDC9BC1C95ABE
+ 658266C48402E070DE1F292724E8
+
+ 00000: 16 03 03 01 EE 0B 00 01 EA 00 01 E7 00 01 E4 30
+ 00010: 82 01 E0 30 82 01 8D A0 03 02 01 02 02 01 01 30
+ 00020: 0A 06 08 2A 85 03 07 01 01 03 02 30 53 31 2E 30
+ 00030: 2C 06 09 2A 86 48 86 F7 0D 01 09 01 16 1F 74 6C
+ 00040: 73 31 32 5F 63 6C 69 65 6E 74 32 35 36 41 5F 45
+ 00050: 40 63 72 79 70 74 6F 70 72 6F 2E 72 75 31 21 30
+ 00060: 1F 06 03 55 04 03 1E 18 00 43 00 6C 00 69 00 65
+ 00070: 00 6E 00 74 00 32 00 35 00 36 00 41 00 5F 00 45
+ 00080: 30 1E 17 0D 31 37 30 35 32 35 30 39 33 31 31 38
+ 00090: 5A 17 0D 33 30 30 35 30 31 30 39 33 31 31 38 5A
+ 000A0: 30 53 31 2E 30 2C 06 09 2A 86 48 86 F7 0D 01 09
+ 000B0: 01 16 1F 74 6C 73 31 32 5F 63 6C 69 65 6E 74 32
+ 000C0: 35 36 41 5F 45 40 63 72 79 70 74 6F 70 72 6F 2E
+ 000D0: 72 75 31 21 30 1F 06 03 55 04 03 1E 18 00 43 00
+ 000E0: 6C 00 69 00 65 00 6E 00 74 00 32 00 35 00 36 00
+ 000F0: 41 00 5F 00 45 30 68 30 21 06 08 2A 85 03 07 01
+ 00100: 01 01 01 30 15 06 09 2A 85 03 07 01 02 01 01 01
+ 00110: 06 08 2A 85 03 07 01 01 02 02 03 43 00 04 40 75
+ 00120: 49 0B 7B F8 79 D8 1C C5 A1 BA EA 66 65 06 DF B5
+ 00130: D7 BF 25 60 67 78 B7 24 F3 15 9E 8A B1 5D 0F 86
+ 00140: F3 48 2C B2 AB 10 8D 5A C2 DE 4E FB 2B FA E0 39
+ 00150: 39 94 C2 DE 87 F0 D3 42 F8 61 83 F1 BB E5 9E A3
+ 00160: 43 30 41 30 1D 06 03 55 1D 0E 04 16 04 14 74 49
+ 00170: 1E 77 30 D3 42 A6 28 0E 72 A1 13 9D D9 90 8B FA
+ 00180: F1 03 30 0B 06 03 55 1D 0F 04 04 03 02 07 80 30
+ 00190: 13 06 03 55 1D 25 04 0C 30 0A 06 08 2B 06 01 05
+ 001A0: 05 07 03 02 30 0A 06 08 2A 85 03 07 01 01 03 02
+ 001B0: 03 41 00 1C 2D 35 22 B4 11 02 D6 20 1F 23 50 C1
+ 001C0: CA B4 3A C0 1A FB 0F 34 51 BD C2 DB 18 8B BC B7
+ 001D0: 78 84 25 1C DF 60 37 BA 83 0F 4B 31 D5 E9 6F DC
+ 001E0: 9B C1 C9 5A BE 65 82 66 C4 84 02 E0 70 DE 1F 29
+ 001F0: 27 24 E8
+
+
+ ---------------------------Client---------------------------
+
+ PMS value:
+ 00000: A5 57 6C E7 92 4A 24 F5 81 13 80 8D BD 9E F8 56
+ 00010: F5 BD C3 B1 83 CE 5D AD CA 36 A5 3A A0 77 65 1D
+
+ Random d_eph value:
+ 0x150ACD11B66DD695AD18418FA7A2DC63
+ 6B7E29DCA24536AABC826EE3175BB1FA
+ DC3AA0D01D3092E120B0FCF7EB872F4B
+ 7E26EA17849D689222A48CF95A6E4831
+
+ Q_eph ephemeral key:
+ x = 0xC941BE5193189B476D5A0334114A3E04
+ BBE5B37C738AE40F150B334135288664
+ FEBFC5622818894A07B1F7AD60E28480
+ B4B637B90EA7D4BA980186B605D75BC6
+
+ y = 0xA154F7B93E8148652011F4FD52C9A06A
+ 6471ADB28D0A949AE26BC786DE874153
+ ABC00B35164F3214A8A83C00ECE27831
+ B093528456234EFE766224FC2A7E9ABE
+
+ HASH (r_c | r_s):
+ 00000: C3 EF 04 28 D4 B7 A1 F4 C5 02 5F 2E 65 DD 2B 2E
+ 00010: A5 83 AE EF DB 67 C7 F4 21 4A 6A 29 8E 99 E3 25
+
+ Export key generation. r value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ Export key generation. UKM value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ Export keys K_Exp_MAC | K_Exp_ENC used in KExp15 algorithm:
+ 00000: 7D AC 56 E4 8A 4D C1 70 FA A8 FC BA E2 0D B8 45
+ 00010: 45 0C CC C4 C6 32 8B DC 8D 01 15 7C EF A2 A5 F1
+ 00020: 1F 1C BA D8 86 61 66 F0 1F FA AB 01 52 E2 4B F4
+ 00030: 60 9D 5F 46 A5 C8 99 C7 87 90 0D 08 B9 FC AD 24
+
+ IV:
+ 00000: 21 4A 6A 29 8E 99 E3 25
+
+ PMSEXP:
+ 00000: 25 0D 1B 67 A2 70 AB 04 D3 F6 54 18 E1 D3 80 B4
+ 00010: CB 94 5F 0A 3D CA 51 50 0C F3 A1 BE F3 7F 76 C0
+ 00020: 73 41 A9 83 9C CF 6C BA 71 89 DA 61 EB 67 17 6C
+
+
+ ---------------------------Client---------------------------
+
+ ClientKeyExchange message:
+ msg_type: 10
+ length: 0000E2
+ body:
+ exchange_keys: 3081DF0430250D1B67A270AB04D3F654
+ 18E1D380B4CB945F0A3DCA51500CF3A1
+ BEF37F76C07341A9839CCF6CBA7189DA
+ . . .
+ 93B03178E2EC003CA8A814324F16350B
+ C0AB534187DE86C76BE29A940A8DB2AD
+ 71646AA0C952FDF411206548813EB9F7
+ 54A1
+
+ 00000: 10 00 00 E2 30 81 DF 04 30 25 0D 1B 67 A2 70 AB
+ 00010: 04 D3 F6 54 18 E1 D3 80 B4 CB 94 5F 0A 3D CA 51
+ 00020: 50 0C F3 A1 BE F3 7F 76 C0 73 41 A9 83 9C CF 6C
+ 00030: BA 71 89 DA 61 EB 67 17 6C 30 81 AA 30 21 06 08
+ 00040: 2A 85 03 07 01 01 01 02 30 15 06 09 2A 85 03 07
+ 00050: 01 02 01 02 03 06 08 2A 85 03 07 01 01 02 03 03
+ 00060: 81 84 00 04 81 80 C6 5B D7 05 B6 86 01 98 BA D4
+ 00070: A7 0E B9 37 B6 B4 80 84 E2 60 AD F7 B1 07 4A 89
+ 00080: 18 28 62 C5 BF FE 64 86 28 35 41 33 0B 15 0F E4
+ 00090: 8A 73 7C B3 E5 BB 04 3E 4A 11 34 03 5A 6D 47 9B
+ 000A0: 18 93 51 BE 41 C9 BE 9A 7E 2A FC 24 62 76 FE 4E
+ 000B0: 23 56 84 52 93 B0 31 78 E2 EC 00 3C A8 A8 14 32
+ 000C0: 4F 16 35 0B C0 AB 53 41 87 DE 86 C7 6B E2 9A 94
+ 000D0: 0A 8D B2 AD 71 64 6A A0 C9 52 FD F4 11 20 65 48
+ 000E0: 81 3E B9 F7 54 A1
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 00E6
+ fragment: 100000E23081DF0430250D1B67A270AB
+ 04D3F65418E1D380B4CB945F0A3DCA51
+ 500CF3A1BEF37F76C07341A9839CCF6C
+ . . .
+ 2356845293B03178E2EC003CA8A81432
+ 4F16350BC0AB534187DE86C76BE29A94
+ 0A8DB2AD71646AA0C952FDF411206548
+ 813EB9F754A1
+
+
+ 00000: 16 03 03 00 E6 10 00 00 E2 30 81 DF 04 30 25 0D
+ 00010: 1B 67 A2 70 AB 04 D3 F6 54 18 E1 D3 80 B4 CB 94
+ 00020: 5F 0A 3D CA 51 50 0C F3 A1 BE F3 7F 76 C0 73 41
+ 00030: A9 83 9C CF 6C BA 71 89 DA 61 EB 67 17 6C 30 81
+ 00040: AA 30 21 06 08 2A 85 03 07 01 01 01 02 30 15 06
+ 00050: 09 2A 85 03 07 01 02 01 02 03 06 08 2A 85 03 07
+ 00060: 01 01 02 03 03 81 84 00 04 81 80 C6 5B D7 05 B6
+ 00070: 86 01 98 BA D4 A7 0E B9 37 B6 B4 80 84 E2 60 AD
+ 00080: F7 B1 07 4A 89 18 28 62 C5 BF FE 64 86 28 35 41
+ 00090: 33 0B 15 0F E4 8A 73 7C B3 E5 BB 04 3E 4A 11 34
+ 000A0: 03 5A 6D 47 9B 18 93 51 BE 41 C9 BE 9A 7E 2A FC
+ 000B0: 24 62 76 FE 4E 23 56 84 52 93 B0 31 78 E2 EC 00
+ 000C0: 3C A8 A8 14 32 4F 16 35 0B C0 AB 53 41 87 DE 86
+ 000D0: C7 6B E2 9A 94 0A 8D B2 AD 71 64 6A A0 C9 52 FD
+ 000E0: F4 11 20 65 48 81 3E B9 F7 54 A1
+
+
+ ---------------------------Server---------------------------
+
+ PMSEXP extracted:
+ 00000: 25 0D 1B 67 A2 70 AB 04 D3 F6 54 18 E1 D3 80 B4
+ 00010: CB 94 5F 0A 3D CA 51 50 0C F3 A1 BE F3 7F 76 C0
+ 00020: 73 41 A9 83 9C CF 6C BA 71 89 DA 61 EB 67 17 6C
+
+ HASH(r_c | r_s):
+ 00000: C3 EF 04 28 D4 B7 A1 F4 C5 02 5F 2E 65 DD 2B 2E
+ 00010: A5 83 AE EF DB 67 C7 F4 21 4A 6A 29 8E 99 E3 25
+
+ Export key generation. r value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ Export key generation. UKM value:
+ 0xC3EF0428D4B7A1F4C5025F2E65DD2B2E
+
+ Export keys K_Exp_MAC | K_Exp_ENC used in KImp15 algorithm:
+ 00000: 7D AC 56 E4 8A 4D C1 70 FA A8 FC BA E2 0D B8 45
+ 00010: 45 0C CC C4 C6 32 8B DC 8D 01 15 7C EF A2 A5 F1
+ 00020: 1F 1C BA D8 86 61 66 F0 1F FA AB 01 52 E2 4B F4
+ 00030: 60 9D 5F 46 A5 C8 99 C7 87 90 0D 08 B9 FC AD 24
+
+ IV:
+ 00000: 21 4A 6A 29 8E 99 E3 25
+
+ PMS:
+ 00000: A5 57 6C E7 92 4A 24 F5 81 13 80 8D BD 9E F8 56
+ 00010: F5 BD C3 B1 83 CE 5D AD CA 36 A5 3A A0 77 65 1D
+
+
+ ---------------------------Client---------------------------
+
+ Random value k used in signature generation:
+ 0x163962EEA268203E7C6B3F70BF8D4A36
+ 34CE6E2CFC424687951D70ACE0B4292A
+
+ Signature value sgn_c = SIGN_d_c(HM):
+ 00000: F7 1F 43 62 45 5B C5 5B A8 9A 8F AF 01 82 88 EC
+ 00010: 00 B3 27 17 48 2E 76 24 B2 57 D9 79 7C 8F F6 02
+ 00020: E3 15 FD BD 8D E5 6D 08 54 18 04 0E 1B 61 BB F6
+ 00030: B3 01 AC 26 3D 50 03 8B 30 31 13 DB 36 17 50 3A
+
+
+ ---------------------------Client---------------------------
+
+ CertificateVerify message:
+ msg_type: 0F
+ length: 000044
+ body:
+ algorithm:
+ hash: 08
+ signature: 40
+ signature:
+ length: 0040
+ vector: F71F4362455BC55BA89A8FAF018288EC
+ 00B32717482E7624B257D9797C8FF602
+ E315FDBD8DE56D085418040E1B61BBF6
+ B301AC263D50038B303113DB3617503A
+
+ 00000: 0F 00 00 44 08 40 00 40 F7 1F 43 62 45 5B C5 5B
+ 00010: A8 9A 8F AF 01 82 88 EC 00 B3 27 17 48 2E 76 24
+ 00020: B2 57 D9 79 7C 8F F6 02 E3 15 FD BD 8D E5 6D 08
+ 00030: 54 18 04 0E 1B 61 BB F6 B3 01 AC 26 3D 50 03 8B
+ 00040: 30 31 13 DB 36 17 50 3A
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0048
+ fragment: 0F00004408400040F71F4362455BC55B
+ A89A8FAF018288EC00B32717482E7624
+ B257D9797C8FF602E315FDBD8DE56D08
+ 5418040E1B61BBF6B301AC263D50038B
+ 303113DB3617503A
+
+ 00000: 16 03 03 00 48 0F 00 00 44 08 40 00 40 F7 1F 43
+ 00010: 62 45 5B C5 5B A8 9A 8F AF 01 82 88 EC 00 B3 27
+ 00020: 17 48 2E 76 24 B2 57 D9 79 7C 8F F6 02 E3 15 FD
+ 00030: BD 8D E5 6D 08 54 18 04 0E 1B 61 BB F6 B3 01 AC
+ 00040: 26 3D 50 03 8B 30 31 13 DB 36 17 50 3A
+
+
+ ---------------------------Client---------------------------
+
+ HASH(HM):
+ 00000: 9D 64 0D D8 B2 54 6B 87 05 CC 3E 67 F3 BB 83 2F
+ 00010: 89 2A 5B D5 D4 5C A0 44 85 01 14 C2 E6 56 02 69
+
+ MS:
+ 00000: E3 18 17 B0 EC 7F 3B C9 4A 8B C4 5F 89 12 DE C5
+ 00010: 71 2A 7A 34 78 56 31 C0 4B AE 81 43 EE 17 90 B4
+ 00020: C9 D3 68 0F 6C 9D E1 70 74 58 C8 75 62 4D B6 ED
+
+ Client connection key material
+ K_write_MAC|K_read_MAC|K_write_ENC|K_read_ENC|IV_write|IV_read:
+ 00000: 50 52 5D 33 4E F7 00 6C 1D ED B8 B8 08 EA 03 CC
+ 00010: CF 1F CB 3D 33 65 F9 72 E1 7C 7C 31 4E DD 97 90
+ 00020: 6C 74 35 22 0A A1 B0 C6 DE 6A 1B 0F AC 29 B6 17
+ 00030: 9E B3 23 86 62 25 E0 7F 30 4C A1 D1 27 75 86 29
+ 00040: 7B 97 20 5D 7A 08 C2 CD 7F 60 3C 09 46 75 E6 C4
+ 00050: CC 15 F2 84 0D 9A EC 63 F0 2A FF 51 DB D5 74 D2
+ 00060: 76 6C 77 2B 83 2F CE 58 CB 4D E5 49 88 77 A6 7A
+ 00070: A4 51 40 B2 ED 52 6E 61 65 0A 28 1B 32 56 35 BC
+ 00080: CB 8E F9 4C 5B DF 5B 9F 47 48 B9 5B F1 B0 E0 BF
+
+
+ ---------------------------Server---------------------------
+
+ HASH(HM):
+ 00000: 9D 64 0D D8 B2 54 6B 87 05 CC 3E 67 F3 BB 83 2F
+ 00010: 89 2A 5B D5 D4 5C A0 44 85 01 14 C2 E6 56 02 69
+
+ MS:
+ 00000: E3 18 17 B0 EC 7F 3B C9 4A 8B C4 5F 89 12 DE C5
+ 00010: 71 2A 7A 34 78 56 31 C0 4B AE 81 43 EE 17 90 B4
+ 00020: C9 D3 68 0F 6C 9D E1 70 74 58 C8 75 62 4D B6 ED
+
+ Server connection key material
+ K_read_MAC|K_write_MAC|K_read_ENC|K_write_ENC|IV_read|IV_write:
+ 00000: 50 52 5D 33 4E F7 00 6C 1D ED B8 B8 08 EA 03 CC
+ 00010: CF 1F CB 3D 33 65 F9 72 E1 7C 7C 31 4E DD 97 90
+ 00020: 6C 74 35 22 0A A1 B0 C6 DE 6A 1B 0F AC 29 B6 17
+ 00030: 9E B3 23 86 62 25 E0 7F 30 4C A1 D1 27 75 86 29
+ 00040: 7B 97 20 5D 7A 08 C2 CD 7F 60 3C 09 46 75 E6 C4
+ 00050: CC 15 F2 84 0D 9A EC 63 F0 2A FF 51 DB D5 74 D2
+ 00060: 76 6C 77 2B 83 2F CE 58 CB 4D E5 49 88 77 A6 7A
+ 00070: A4 51 40 B2 ED 52 6E 61 65 0A 28 1B 32 56 35 BC
+ 00080: CB 8E F9 4C 5B DF 5B 9F 47 48 B9 5B F1 B0 E0 BF
+
+
+ ---------------------------Client---------------------------
+
+ ChangeCipherSpec message:
+ type: 01
+
+ 00000: 01
+
+ Record layer message:
+ type: 14
+ version:
+ major: 03
+ minor: 03
+ length: 0001
+ fragment: 01
+
+ 00000: 14 03 03 00 01 01
+
+
+ ---------------------------Client---------------------------
+
+ HASH(HM):
+ 00000: C9 A4 80 DA 29 6C DD 12 3E 9A EB 26 88 8B 86 19
+ 00010: EA 67 78 B7 23 FA A8 B2 DC 70 6A CB A5 AB AF 11
+
+ client_verify_data:
+ 00000: 98 7C 13 E6 FA 16 F3 D5 10 AE 83 00 23 58 72 27
+ 00010: 32 90 09 4C 8F C7 B5 F0 C7 D7 47 C4 27 35 F8 F1
+
+
+ ---------------------------Client---------------------------
+
+ Finished message:
+ msg_type: 14
+ length: 000020
+ body:
+ verify_data: 987C13E6FA16F3D510AE830023587227
+ 3290094C8FC7B5F0C7D747C42735F8F1
+
+ 00000: 14 00 00 20 98 7C 13 E6 FA 16 F3 D5 10 AE 83 00
+ 00010: 23 58 72 27 32 90 09 4C 8F C7 B5 F0 C7 D7 47 C4
+ 00020: 27 35 F8 F1
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0034
+ fragment: 4DC53D655EDFD1843AF69ADBDE989C0B
+ 1F0C0A1A0FD1B3F458029D8F9989FBF9
+ 6C5C42971063A9B70714F412E4F6280F
+ 7C21601B
+
+ 00000: 16 03 03 00 34 4D C5 3D 65 5E DF D1 84 3A F6 9A
+ 00010: DB DE 98 9C 0B 1F 0C 0A 1A 0F D1 B3 F4 58 02 9D
+ 00020: 8F 99 89 FB F9 6C 5C 42 97 10 63 A9 B7 07 14 F4
+ 00030: 12 E4 F6 28 0F 7C 21 60 1B
+
+
+ ---------------------------Server---------------------------
+
+ ChangeCipherSpec message:
+ type: 01
+
+ 00000: 01
+
+ Record layer message:
+ type: 14
+ version:
+ major: 03
+ minor: 03
+ length: 0001
+ fragment: 01
+
+ 00000: 14 03 03 00 01 01
+
+
+ ---------------------------Server---------------------------
+
+ HASH(HM):
+ 00000: 4A 41 4C AD 20 F8 46 D8 F5 D1 05 26 10 A5 9D ED
+ 00010: 6D 2B 1B B2 A8 9E 13 51 01 FC 9E 49 ED A8 0F B4
+
+ server_verify_data:
+ 00000: 1E 93 7D A4 77 EE 1F 23 0A 41 D6 E9 D4 14 46 B7
+ 00010: F2 1C A1 B2 E2 32 4A 55 2D 52 B3 25 5E B4 3D DF
+
+
+ ---------------------------Server---------------------------
+
+ Finished message:
+ msg_type: 14
+ length: 000020
+ body:
+ verify_data: 1E937DA477EE1F230A41D6E9D41446B7
+ F21CA1B2E2324A552D52B3255EB43DDF
+
+ 00000: 14 00 00 20 1E 93 7D A4 77 EE 1F 23 0A 41 D6 E9
+ 00010: D4 14 46 B7 F2 1C A1 B2 E2 32 4A 55 2D 52 B3 25
+ 00020: 5E B4 3D DF
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0034
+ fragment: F9887C3654B6CCC6AE7D7B18A46C663F
+ 3D1DAF30C9A853A9871077FDD5CA063B
+ 2C81BCC9D59FA6E3F5FAD9B2599BB586
+ 854A2D76
+
+ 00000: 16 03 03 00 34 F9 88 7C 36 54 B6 CC C6 AE 7D 7B
+ 00010: 18 A4 6C 66 3F 3D 1D AF 30 C9 A8 53 A9 87 10 77
+ 00020: FD D5 CA 06 3B 2C 81 BC C9 D5 9F A6 E3 F5 FA D9
+ 00030: B2 59 9B B5 86 85 4A 2D 76
+
+
+ ---------------------------Client---------------------------
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ Record layer message:
+ type: 17
+ version:
+ major: 03
+ minor: 03
+ length: 0030
+ fragment: F14F06FB8557408846080690E7A5525D
+ 1C6E9C901D24025486AB79728BF63D06
+ 5C09C27233006D65CFF0B5BA87504969
+
+ 00000: 17 03 03 00 30 F1 4F 06 FB 85 57 40 88 46 08 06
+ 00010: 90 E7 A5 52 5D 1C 6E 9C 90 1D 24 02 54 86 AB 79
+ 00020: 72 8B F6 3D 06 5C 09 C2 72 33 00 6D 65 CF F0 B5
+ 00030: BA 87 50 49 69
+
+
+ ---------------------------Server---------------------------
+
+ Application data:
+ 00000: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ 00010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+
+ Record layer message:
+ type: 17
+ version:
+ major: 03
+ minor: 03
+ length: 0030
+ fragment: 1561E52A8B6DB258746FFE18F3CDCB11
+ 1D0173AF2E5C13741C99BFF13B47CD32
+ B3CED856A9506E706A2340D5841AB114
+
+ 00000: 17 03 03 00 30 15 61 E5 2A 8B 6D B2 58 74 6F FE
+ 00010: 18 F3 CD CB 11 1D 01 73 AF 2E 5C 13 74 1C 99 BF
+ 00020: F1 3B 47 CD 32 B3 CE D8 56 A9 50 6E 70 6A 23 40
+ 00030: D5 84 1A B1 14
+
+
+ ---------------------------Client---------------------------
+
+ close_notify alert:
+ Alert:
+ level: 01
+ description: 00
+
+ 00000: 01 00
+
+ Record layer message:
+ type: 15
+ version:
+ major: 03
+ minor: 03
+ length: 0012
+ fragment: E530C164642A078CEF528CB465E9DA7E
+ AD4D
+
+ 00000: 15 03 03 00 12 E5 30 C1 64 64 2A 07 8C EF 52 8C
+ 00010: B4 65 E9 DA 7E AD 4D
+
+
+ ---------------------------Server---------------------------
+
+ close_notify alert:
+ Alert:
+ level: 01
+ description: 00
+
+ 00000: 01 00
+
+ Record layer message:
+ type: 15
+ version:
+ major: 03
+ minor: 03
+ length: 0012
+ fragment: EB62E5AB78BF2A4B678920A11027EC43
+ 0C3F
+
+ 00000: 15 03 03 00 12 EB 62 E5 AB 78 BF 2A 4B 67 89 20
+ 00010: A1 10 27 EC 43 0C 3F
+
+A.2. Test Examples for CNT_IMIT Cipher Suites
+
+A.2.1. Record Examples
+
+ It is assumed that the following keys were established
+ during handshake:
+
+ - MAC key:
+ 00000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+ 00010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+ - Encryption key:
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ - IV:
+ 00000: 00 00 00 00 00 00 00 00
+
+ ---------------------------------------------------------
+ seqnum = 0
+
+ Application data:
+ 00000: 00 00 00 00 00 00 00
+
+ Plaintext:
+ 00000: 17 03 03 00 07 00 00 00 00 00 00 00
+
+ MAC:
+ 00000: 30 01 34 a1
+
+ Ciphertext:
+ 00000: 17 03 03 00 0b 86 71 cd bf 3c 1a ae 0f 62 4b 04
+
+ ---------------------------------------------------------
+ seqnum = 1
+
+ Application data:
+
+ 00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ ....
+ 007f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ Plaintext:
+ 00000: 17 03 03 08 00 00 00 00 00 00 00 00 00 00 00 00
+ 00010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ ....
+ 007f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00804: 00 00 00 00 00
+
+ MAC:
+ 00000: f7 c3 8b 8a
+
+ Ciphertext:
+ 00000: 17 03 03 08 04 cf aa 0c b4 2f a5 a4 7a 13 3d 73
+ 00010: b9 f2 c0 b0 4f 8c a2 55 52 f8 56 bc be 6a 58 fa
+ ....
+ 007f0: 3e e2 c7 6f a2 30 a0 44 be 21 dc 8e 1a 96 f9 a8
+ 00804: 88 1f ad 83 45 96 96 84 47
+
+A.2.2. Handshake Examples
+
+ The ClientHello.extensions and the ServerHello.extensions fields
+ contain the renegotiation_info extension (see [RFC5746]) in the
+ following examples.
+
+ Server certificate curve OID:
+ id-tc26-gost-3410-12-512-paramSetA, "1.2.643.7.1.2.1.2.1"
+
+
+ Server public key Q_s:
+ x = 0x16DB0566C0278AC8204143994824236D
+ 97F36A13D5433E990B2EAC859D2E9B7A
+ E054794655389158B8242923E3841B14
+ 24FD89F221701C89D9A3BF6A9F946795
+
+ y = 0xD01E80DEC5BD23C8BC6B85F12BBB1635
+ A5AE7AD50DE24FB8FD02CB285A4AE65A
+ 7D6FBB99AAFFDA80629826F2F7F73282
+ 220444761615A06D082077C4A00FD4CF
+
+ Server private key d_s:
+ 0x5F1E83AFA2C4CB2C5633C51380E84E37
+ 4B013EE7C238330709080CE914B442D4
+ 34EB016D23FB63FEDC18B62D9DA93D26
+ B3B9CE6F663B383303BD5930ED41608B
+
+ ---------------------------Client---------------------------
+
+ ClientHello message:
+ msg_type: 01
+ length: 00003a
+ body:
+ client_version:
+ major: 03
+ minor: 03
+ random: 6A523D6880DCC2DC75CCC43CFD04B616
+ F5C3757B8077B76A9B504949FD3BFDB8
+ session_id:
+ length: 00
+ vector: --
+ cipher_suites:
+ length: 0002
+ vector:
+ CipherSuite: C102
+ compression_methods:
+ length: 01
+ vector:
+ CompressionMethod: 00
+ extensions:
+ length: 000F
+ Extension: /* signature_algorithms */
+ extension_type: 000D
+ extension_data:
+ length: 0006
+ vector:
+ supported_signature_algorithms:
+ length: 0004
+ vector:
+ /* 1 pair of algorithms */
+ hash: 08
+ signature:
+ 41
+ /* 2 pair of algorithms */
+ hash: 08
+ signature:
+ 40
+ Extension: /* renegotiation_info */
+ extension_type: FF01
+ extension_data:
+ length: 0001
+ vector:
+ renegotiated_connection:
+ length: 00
+ vector: --
+
+ 00000: 01 00 00 3A 03 03 6A 52 3D 68 80 DC C2 DC 75 CC
+ 00010: C4 3C FD 04 B6 16 F5 C3 75 7B 80 77 B7 6A 9B 50
+ 00020: 49 49 FD 3B FD B8 00 00 02 C1 02 01 00 00 0F 00
+ 00030: 0D 00 06 00 04 08 41 08 40 FF 01 00 01 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 003e
+ fragment: 0100003A03036A523D6880DCC2DC75CC
+ C43CFD04B616F5C3757B8077B76A9B50
+ 4949FD3BFDB8000002C1020100000F00
+ 0D0006000408410840FF01000100
+
+ 00000: 16 03 03 00 3E 01 00 00 3A 03 03 6A 52 3D 68 80
+ 00010: DC C2 DC 75 CC C4 3C FD 04 B6 16 F5 C3 75 7B 80
+ 00020: 77 B7 6A 9B 50 49 49 FD 3B FD B8 00 00 02 C1 02
+ 00030: 01 00 00 0F 00 0D 00 06 00 04 08 41 08 40 FF 01
+ 00040: 00 01 00
+
+
+ ---------------------------Server---------------------------
+
+ ServerHello message:
+ msg_type: 02
+ length: 00004D
+ body:
+ client_version:
+ major: 03
+ minor: 03
+ random: FE92C9516D0E1A67A04C33CD7F2C90B1
+ 5E76DCC30815C19F92A6D100915AF2DB
+ session_id:
+ length: 20
+ vector: 12AAA5E5779014711CCD6D265BDEE519
+ 1026431C83768EE5EB5A157F940BE9FB
+ cipher_suite:
+ CipherSuite: C102
+ compression_method:
+ CompressionMethod: 00
+ extensions:
+ length: 0005
+ Extension: /* renegotiation_info */
+ extension_type: FF01
+ extension_data:
+ length: 0001
+ vector:
+ renegotiated_connection:
+ length: 00
+ vector: --
+
+ 00000: 02 00 00 4D 03 03 FE 92 C9 51 6D 0E 1A 67 A0 4C
+ 00010: 33 CD 7F 2C 90 B1 5E 76 DC C3 08 15 C1 9F 92 A6
+ 00020: D1 00 91 5A F2 DB 20 12 AA A5 E5 77 90 14 71 1C
+ 00030: CD 6D 26 5B DE E5 19 10 26 43 1C 83 76 8E E5 EB
+ 00040: 5A 15 7F 94 0B E9 FB C1 02 00 00 05 FF 01 00 01
+ 00050: 00
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0051
+ fragment: 0200004D0303FE92C9516D0E1A67A04C
+ 33CD7F2C90B15E76DCC30815C19F92A6
+ D100915AF2DB2012AAA5E5779014711C
+ CD6D265BDEE5191026431C83768EE5EB
+ 5A157F940BE9FBC102000005FF010001
+ 00
+
+ 00000: 16 03 03 00 51 02 00 00 4D 03 03 FE 92 C9 51 6D
+ 00010: 0E 1A 67 A0 4C 33 CD 7F 2C 90 B1 5E 76 DC C3 08
+ 00020: 15 C1 9F 92 A6 D1 00 91 5A F2 DB 20 12 AA A5 E5
+ 00030: 77 90 14 71 1C CD 6D 26 5B DE E5 19 10 26 43 1C
+ 00040: 83 76 8E E5 EB 5A 15 7F 94 0B E9 FB C1 02 00 00
+ 00050: 05 FF 01 00 01 00
+
+
+ ---------------------------Server---------------------------
+
+ Certificate message:
+ msg_type: 0B
+ length: 000266
+ body:
+ certificate_list:
+ length: 000263
+ vector:
+ ASN.1Cert:
+ length: 000260
+ vector: 3082025C308201C8A003020102021478
+ 94DC9D920977809191642F1DAEDC26BA
+ 3B5104300A06082A8503070101030330
+ . . .
+ 6C12D51F99C98A4A9904F0EA5486FED7
+ FF66AB8EB2425E1ACEAE8A758BDF843B
+ E1A8F6FEBF673015FED7AB86533DBF20
+
+ 00000: 0B 00 02 66 00 02 63 00 02 60 30 82 02 5C 30 82
+ 00010: 01 C8 A0 03 02 01 02 02 14 78 94 DC 9D 92 09 77
+ 00020: 80 91 91 64 2F 1D AE DC 26 BA 3B 51 04 30 0A 06
+ 00030: 08 2A 85 03 07 01 01 03 03 30 19 31 17 30 15 06
+ 00040: 03 55 04 03 13 0E 43 41 20 43 65 72 74 69 66 69
+ 00050: 63 61 74 65 30 1E 17 0D 31 38 30 31 30 32 30 30
+ 00060: 30 30 31 31 5A 17 0D 32 32 30 31 30 32 30 30 30
+ 00070: 30 32 31 5A 30 21 31 1F 30 1D 06 03 55 04 03 13
+ 00080: 16 53 65 72 76 65 72 20 35 31 32 20 43 65 72 74
+ 00090: 69 66 69 63 61 74 65 30 81 AA 30 21 06 08 2A 85
+ 000a0: 03 07 01 01 01 02 30 15 06 09 2A 85 03 07 01 02
+ 000b0: 01 02 01 06 08 2A 85 03 07 01 01 02 03 03 81 84
+ 000c0: 00 04 81 80 95 67 94 9F 6A BF A3 D9 89 1C 70 21
+ 000d0: F2 89 FD 24 14 1B 84 E3 23 29 24 B8 58 91 38 55
+ 000e0: 46 79 54 E0 7A 9B 2E 9D 85 AC 2E 0B 99 3E 43 D5
+ 000f0: 13 6A F3 97 6D 23 24 48 99 43 41 20 C8 8A 27 C0
+ 00100: 66 05 DB 16 CF D4 0F A0 C4 77 20 08 6D A0 15 16
+ 00110: 76 44 04 22 82 32 F7 F7 F2 26 98 62 80 DA FF AA
+ 00120: 99 BB 6F 7D 5A E6 4A 5A 28 CB 02 FD B8 4F E2 0D
+ 00130: D5 7A AE A5 35 16 BB 2B F1 85 6B BC C8 23 BD C5
+ 00140: DE 80 1E D0 A3 81 93 30 81 90 30 0C 06 03 55 1D
+ 00150: 13 01 01 FF 04 02 30 00 30 1A 06 03 55 1D 11 04
+ 00160: 13 30 11 82 09 6C 6F 63 61 6C 68 6F 73 74 87 04
+ 00170: 7F 00 00 01 30 13 06 03 55 1D 25 04 0C 30 0A 06
+ 00180: 08 2B 06 01 05 05 07 03 01 30 0F 06 03 55 1D 0F
+ 00190: 01 01 FF 04 05 03 03 07 B0 00 30 1D 06 03 55 1D
+ 001a0: 0E 04 16 04 14 AE 46 41 1B FD B3 08 C3 39 03 47
+ 001b0: 57 57 2B 0F BF A3 6F 9A 99 30 1F 06 03 55 1D 23
+ 001c0: 04 18 30 16 80 14 7F 7B 7A 15 61 A6 F2 18 A2 E3
+ 001d0: 48 3B C6 39 D9 7F 42 DB 6D AF 30 0A 06 08 2A 85
+ 001e0: 03 07 01 01 03 03 03 81 81 00 9C 49 78 F7 1B AB
+ 001f0: 54 8A 25 6D 2A 18 7C A8 4D 72 4F E1 EF A7 E5 36
+ 00200: 67 2E 79 1F 8A 0C B6 74 1E B1 63 E2 96 37 8C 5B
+ 00210: 82 83 EE DA B4 1B A4 22 1E BC E2 05 F6 F8 79 CF
+ 00220: EB F0 AD E9 36 07 0F B2 40 E5 0D 04 37 03 7F 2A
+ 00230: EC 99 C7 CD 23 9F 6F 20 25 A8 6C 12 D5 1F 99 C9
+ 00240: 8A 4A 99 04 F0 EA 54 86 FE D7 FF 66 AB 8E B2 42
+ 00250: 5E 1A CE AE 8A 75 8B DF 84 3B E1 A8 F6 FE BF 67
+ 00260: 30 15 FE D7 AB 86 53 3D BF 20
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 026A
+ fragment: 0B0002660002630002603082025C3082
+ 01C8A00302010202147894DC9D920977
+ 809191642F1DAEDC26BA3B5104300A06
+ . . .
+ EC99C7CD239F6F2025A86C12D51F99C9
+ 8A4A9904F0EA5486FED7FF66AB8EB242
+ 5E1ACEAE8A758BDF843BE1A8F6FEBF67
+ 3015FED7AB86533DBF20
+
+ 00000: 16 03 03 02 6A 0B 00 02 66 00 02 63 00 02 60 30
+ 00010: 82 02 5C 30 82 01 C8 A0 03 02 01 02 02 14 78 94
+ 00020: DC 9D 92 09 77 80 91 91 64 2F 1D AE DC 26 BA 3B
+ 00030: 51 04 30 0A 06 08 2A 85 03 07 01 01 03 03 30 19
+ 00040: 31 17 30 15 06 03 55 04 03 13 0E 43 41 20 43 65
+ 00050: 72 74 69 66 69 63 61 74 65 30 1E 17 0D 31 38 30
+ 00060: 31 30 32 30 30 30 30 31 31 5A 17 0D 32 32 30 31
+ 00070: 30 32 30 30 30 30 32 31 5A 30 21 31 1F 30 1D 06
+ 00080: 03 55 04 03 13 16 53 65 72 76 65 72 20 35 31 32
+ 00090: 20 43 65 72 74 69 66 69 63 61 74 65 30 81 AA 30
+ 000a0: 21 06 08 2A 85 03 07 01 01 01 02 30 15 06 09 2A
+ 000b0: 85 03 07 01 02 01 02 01 06 08 2A 85 03 07 01 01
+ 000c0: 02 03 03 81 84 00 04 81 80 95 67 94 9F 6A BF A3
+ 000d0: D9 89 1C 70 21 F2 89 FD 24 14 1B 84 E3 23 29 24
+ 000e0: B8 58 91 38 55 46 79 54 E0 7A 9B 2E 9D 85 AC 2E
+ 000f0: 0B 99 3E 43 D5 13 6A F3 97 6D 23 24 48 99 43 41
+ 00100: 20 C8 8A 27 C0 66 05 DB 16 CF D4 0F A0 C4 77 20
+ 00110: 08 6D A0 15 16 76 44 04 22 82 32 F7 F7 F2 26 98
+ 00120: 62 80 DA FF AA 99 BB 6F 7D 5A E6 4A 5A 28 CB 02
+ 00130: FD B8 4F E2 0D D5 7A AE A5 35 16 BB 2B F1 85 6B
+ 00140: BC C8 23 BD C5 DE 80 1E D0 A3 81 93 30 81 90 30
+ 00150: 0C 06 03 55 1D 13 01 01 FF 04 02 30 00 30 1A 06
+ 00160: 03 55 1D 11 04 13 30 11 82 09 6C 6F 63 61 6C 68
+ 00170: 6F 73 74 87 04 7F 00 00 01 30 13 06 03 55 1D 25
+ 00180: 04 0C 30 0A 06 08 2B 06 01 05 05 07 03 01 30 0F
+ 00190: 06 03 55 1D 0F 01 01 FF 04 05 03 03 07 B0 00 30
+ 001a0: 1D 06 03 55 1D 0E 04 16 04 14 AE 46 41 1B FD B3
+ 001b0: 08 C3 39 03 47 57 57 2B 0F BF A3 6F 9A 99 30 1F
+ 001c0: 06 03 55 1D 23 04 18 30 16 80 14 7F 7B 7A 15 61
+ 001d0: A6 F2 18 A2 E3 48 3B C6 39 D9 7F 42 DB 6D AF 30
+ 001e0: 0A 06 08 2A 85 03 07 01 01 03 03 03 81 81 00 9C
+ 001f0: 49 78 F7 1B AB 54 8A 25 6D 2A 18 7C A8 4D 72 4F
+ 00200: E1 EF A7 E5 36 67 2E 79 1F 8A 0C B6 74 1E B1 63
+ 00210: E2 96 37 8C 5B 82 83 EE DA B4 1B A4 22 1E BC E2
+ 00220: 05 F6 F8 79 CF EB F0 AD E9 36 07 0F B2 40 E5 0D
+ 00230: 04 37 03 7F 2A EC 99 C7 CD 23 9F 6F 20 25 A8 6C
+ 00240: 12 D5 1F 99 C9 8A 4A 99 04 F0 EA 54 86 FE D7 FF
+ 00250: 66 AB 8E B2 42 5E 1A CE AE 8A 75 8B DF 84 3B E1
+ 00260: A8 F6 FE BF 67 30 15 FE D7 AB 86 53 3D BF 20
+
+
+ ---------------------------Server---------------------------
+
+ ServerHelloDone message:
+ msg_type: 0E
+ length: 000000
+ body: --
+
+ 00000: 0E 00 00 00
+
+ Record layer message::
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0004
+ fragment: 0E000000
+
+ 00000: 16 03 03 00 04 0E 00 00 00
+
+ ---------------------------Client---------------------------
+
+ PMS:
+ 00000: CE 0D D6 B6 70 42 12 15 2B E4 69 5A 7E 89 F6 4C
+ 00010: 89 29 A4 0D BF 0A 5A 55 C2 CE 00 2B 06 BA B6 2F
+
+ Random d_eph value:
+ 0xC96486B1A3732389A162F5AD0145D537
+ 43C9AC27D42ACF1091CE7EF67E6C3CCA
+ 0F6C879B2DA3C1607648BAEB96471BD2
+ 078DF5CAAA4FA83ECC0FFD6D3C8E5D56
+
+ Q_eph ephemeral key:
+ x = 0x4B9CB381BCC737E493E43B2D7FD95BFE
+ 2AEF6BE8F6224882E5E559ADA08170DC
+ 49A815B3A1B3B323D2B50195153CFC60
+ DD6139C3770C5762A6A7719FABF84BFB
+
+ y = 0x95CEF28392C846A5EEFCB51C84E4960A
+ 77B77D0D85EBD22061BFDA0013C5AB6C
+ 42DDD04973F65D2AEB8A5427A53D6872
+ CF2D68F5F722C4640D7AAF2E0194FBD0
+
+ HASH(r_c | r_s):
+ 00000: FB F3 9D 10 E8 00 AF 70 E7 AA 22 C1 10 DA 94 A9
+ 00010: 9A 58 98 D8 45 27 C7 CB DE C1 1E 53 39 90 6A 1A
+
+ K_EXP:
+ 00000: 3F D9 99 D1 68 4A 15 CC 9B DD 5A 35 06 7A F6 98
+ 00010: 17 15 00 22 E0 95 54 AC 79 1A 60 F1 61 F5 53 49
+
+ IV:
+ 00000: FB F3 9D 10 E8 00 AF 70
+
+ CEK_ENC:
+ 00000: D6 22 D1 67 A5 64 2E 29 52 5A 29 5C B9 F2 8F 96
+ 00010: F2 8B 0E FA A7 D3 A2 BE E1 49 B0 11 78 C2 DF D5
+
+ CEK_MAC:
+ 00000: 4C 93 36 57
+
+ PMSEXP:
+ 00000: FB F3 9D 10 E8 00 AF 70 D6 22 D1 67 A5 64 2E 29
+ 00010: 52 5A 29 5C B9 F2 8F 96 F2 8B 0E FA A7 D3 A2 BE
+ 00020: E1 49 B0 11 78 C2 DF D5 4C 93 36 57
+
+ ---------------------------Client---------------------------
+
+ ClientKeyExchange message:
+ msg_type: 10
+ length: 0000F5
+ body:
+ exchange_keys: 3081F23081EF30280420D622D167A564
+ 2E29525A295CB9F28F96F28B0EFAA7D3
+ A2BEE149B01178C2DFD504044C933657
+ . . .
+ DABF6120D2EB850D7DB7770A96E4841C
+ B5FCEEA546C89283F2CE950408FBF39D
+ 10E800AF70
+
+ 00000: 10 00 00 F5 30 81 F2 30 81 EF 30 28 04 20 D6 22
+ 00010: D1 67 A5 64 2E 29 52 5A 29 5C B9 F2 8F 96 F2 8B
+ 00020: 0E FA A7 D3 A2 BE E1 49 B0 11 78 C2 DF D5 04 04
+ 00030: 4C 93 36 57 A0 81 C2 06 09 2A 85 03 07 01 02 05
+ 00040: 01 01 A0 81 AA 30 21 06 08 2A 85 03 07 01 01 01
+ 00050: 02 30 15 06 09 2A 85 03 07 01 02 01 02 01 06 08
+ 00060: 2A 85 03 07 01 01 02 03 03 81 84 00 04 81 80 FB
+ 00070: 4B F8 AB 9F 71 A7 A6 62 57 0C 77 C3 39 61 DD 60
+ 00080: FC 3C 15 95 01 B5 D2 23 B3 B3 A1 B3 15 A8 49 DC
+ 00090: 70 81 A0 AD 59 E5 E5 82 48 22 F6 E8 6B EF 2A FE
+ 000A0: 5B D9 7F 2D 3B E4 93 E4 37 C7 BC 81 B3 9C 4B D0
+ 000B0: FB 94 01 2E AF 7A 0D 64 C4 22 F7 F5 68 2D CF 72
+ 000C0: 68 3D A5 27 54 8A EB 2A 5D F6 73 49 D0 DD 42 6C
+ 000D0: AB C5 13 00 DA BF 61 20 D2 EB 85 0D 7D B7 77 0A
+ 000E0: 96 E4 84 1C B5 FC EE A5 46 C8 92 83 F2 CE 95 04
+ 000F0: 08 FB F3 9D 10 E8 00 AF 70
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 00F9
+ fragment: 100000F53081F23081EF30280420D622
+ D167A5642E29525A295CB9F28F96F28B
+ 0EFAA7D3A2BEE149B01178C2DFD50404
+ . . .
+ ABC51300DABF6120D2EB850D7DB7770A
+ 96E4841CB5FCEEA546C89283F2CE9504
+ 08FBF39D10E800AF70
+
+ 00000: 16 03 03 00 F9 10 00 00 F5 30 81 F2 30 81 EF 30
+ 00010: 28 04 20 D6 22 D1 67 A5 64 2E 29 52 5A 29 5C B9
+ 00020: F2 8F 96 F2 8B 0E FA A7 D3 A2 BE E1 49 B0 11 78
+ 00030: C2 DF D5 04 04 4C 93 36 57 A0 81 C2 06 09 2A 85
+ 00040: 03 07 01 02 05 01 01 A0 81 AA 30 21 06 08 2A 85
+ 00050: 03 07 01 01 01 02 30 15 06 09 2A 85 03 07 01 02
+ 00060: 01 02 01 06 08 2A 85 03 07 01 01 02 03 03 81 84
+ 00070: 00 04 81 80 FB 4B F8 AB 9F 71 A7 A6 62 57 0C 77
+ 00080: C3 39 61 DD 60 FC 3C 15 95 01 B5 D2 23 B3 B3 A1
+ 00090: B3 15 A8 49 DC 70 81 A0 AD 59 E5 E5 82 48 22 F6
+ 000A0: E8 6B EF 2A FE 5B D9 7F 2D 3B E4 93 E4 37 C7 BC
+ 000B0: 81 B3 9C 4B D0 FB 94 01 2E AF 7A 0D 64 C4 22 F7
+ 000C0: F5 68 2D CF 72 68 3D A5 27 54 8A EB 2A 5D F6 73
+ 000D0: 49 D0 DD 42 6C AB C5 13 00 DA BF 61 20 D2 EB 85
+ 000E0: 0D 7D B7 77 0A 96 E4 84 1C B5 FC EE A5 46 C8 92
+ 000F0: 83 F2 CE 95 04 08 FB F3 9D 10 E8 00 AF 70
+
+
+ ---------------------------Client---------------------------
+
+ HASH(HM):
+ 00000: F8 D6 FE EB 17 64 4D 17 B0 38 36 A6 51 EB 87 69
+ 00010: BD EA A2 D3 EB 18 47 F6 91 91 42 7C 30 D0 17 8E
+
+ MS:
+ 00000: BE 57 46 C8 BB B7 84 7E 97 8F D4 C9 4F 52 34 52
+ 00010: 44 2C 8E B1 72 FD E6 28 1C 18 C5 44 63 B1 F9 4C
+ 00020: 2B D9 81 40 05 41 6D BB 0F 90 A5 7E A4 E0 6B 50
+
+ Client connection key material
+ K_write_MAC|K_read_MAC|K_write_ENC|K_read_ENC|IV_write|IV_read:
+ 00000: F3 37 F6 A8 6F F3 1F CA 52 EA 64 7C DE E3 B7 83
+ 00010: 34 AB 77 B5 7F E0 DB 2F C0 C8 71 EC DC AC A5 A8
+ 00020: FB A0 4C 21 32 82 3A 24 96 EF 93 6F 0E BC F3 0E
+ 00030: A0 CB 7E AF 6C A7 94 75 4F 1F 45 B1 77 22 DE B4
+ 00040: 4E 5B C3 2D 44 30 AF 58 93 11 6A CF 81 A3 BE 0C
+ 00050: 90 D2 EA 8E 76 E0 84 07 28 BA F5 E2 B2 F9 40 C0
+ 00060: AE 18 26 7B B6 34 C1 6A 1D 1A C1 24 73 50 95 4B
+ 00070: 2F EE 9B 77 F3 0D 18 D5 54 01 2B 43 78 60 87 0A
+ 00080: D9 21 A8 4B 07 FF 98 AF 8C 82 38 6B 91 FB BA 64
+
+
+ ---------------------------Server---------------------------
+
+ PMSEXP extracted:
+ 00000: FB F3 9D 10 E8 00 AF 70 D6 22 D1 67 A5 64 2E 29
+ 00010: 52 5A 29 5C B9 F2 8F 96 F2 8B 0E FA A7 D3 A2 BE
+ 00020: E1 49 B0 11 78 C2 DF D5 4C 93 36 57
+
+ HASH(r_c | r_s):
+ 00000: FB F3 9D 10 E8 00 AF 70 E7 AA 22 C1 10 DA 94 A9
+ 00010: 9A 58 98 D8 45 27 C7 CB DE C1 1E 53 39 90 6A 1A
+
+ K_EXP:
+ 00000: 3F D9 99 D1 68 4A 15 CC 9B DD 5A 35 06 7A F6 98
+ 00010: 17 15 00 22 E0 95 54 AC 79 1A 60 F1 61 F5 53 49
+
+ PMS:
+ 00000: CE 0D D6 B6 70 42 12 15 2B E4 69 5A 7E 89 F6 4C
+ 00010: 89 29 A4 0D BF 0A 5A 55 C2 CE 00 2B 06 BA B6 2F
+
+ ---------------------------Server---------------------------
+
+ HASH(HM):
+ 00000: F8 D6 FE EB 17 64 4D 17 B0 38 36 A6 51 EB 87 69
+ 00010: BD EA A2 D3 EB 18 47 F6 91 91 42 7C 30 D0 17 8E
+
+ MS:
+ 00000: BE 57 46 C8 BB B7 84 7E 97 8F D4 C9 4F 52 34 52
+ 00010: 44 2C 8E B1 72 FD E6 28 1C 18 C5 44 63 B1 F9 4C
+ 00020: 2B D9 81 40 05 41 6D BB 0F 90 A5 7E A4 E0 6B 50
+
+ Client connection key material
+ K_read_MAC|K_write_MAC|K_read_ENC|K_write_ENC|IV_read|IV_write:
+ 00000: F3 37 F6 A8 6F F3 1F CA 52 EA 64 7C DE E3 B7 83
+ 00010: 34 AB 77 B5 7F E0 DB 2F C0 C8 71 EC DC AC A5 A8
+ 00020: FB A0 4C 21 32 82 3A 24 96 EF 93 6F 0E BC F3 0E
+ 00030: A0 CB 7E AF 6C A7 94 75 4F 1F 45 B1 77 22 DE B4
+ 00040: 4E 5B C3 2D 44 30 AF 58 93 11 6A CF 81 A3 BE 0C
+ 00050: 90 D2 EA 8E 76 E0 84 07 28 BA F5 E2 B2 F9 40 C0
+ 00060: AE 18 26 7B B6 34 C1 6A 1D 1A C1 24 73 50 95 4B
+ 00070: 2F EE 9B 77 F3 0D 18 D5 54 01 2B 43 78 60 87 0A
+ 00080: D9 21 A8 4B 07 FF 98 AF 8C 82 38 6B 91 FB BA 64
+
+ ---------------------------Client---------------------------
+
+ ChangeCipherSpec message:
+ type: 01
+
+ 00000: 01
+
+ Record layer message:
+ type: 14
+ version:
+ major: 03
+ minor: 03
+ length: 0001
+ fragment: 01
+
+ 00000: 14 03 03 00 01 01
+
+
+ ---------------------------Client---------------------------
+
+ HASH(HM):
+ 00000: F8 D6 FE EB 17 64 4D 17 B0 38 36 A6 51 EB 87 69
+ 00010: BD EA A2 D3 EB 18 47 F6 91 91 42 7C 30 D0 17 8E
+
+ Finished message:
+ msg_type: 14
+ length: 00000C
+ body:
+ verify_data: D3EE1DEA725CD7080C744311
+
+ 00000: 14 00 00 0C D3 EE 1D EA 72 5C D7 08 0C 74 43 11
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0014
+ fragment: 8854A0ED0CCBDAE076FA7D22D763A8D1
+ AF701BBB
+
+ 00000: 16 03 03 00 14 88 54 A0 ED 0C CB DA E0 76 FA 7D
+ 00010: 22 D7 63 A8 D1 AF 70 1B BB
+
+
+ ---------------------------Server---------------------------
+
+ ChangeCipherSpec message:
+ type: 01
+
+ 00000: 01
+
+ Record layer message:
+ type: 14
+ version:
+ major: 03
+ minor: 03
+ length: 0001
+ fragment: 01
+
+ 00000: 14 03 03 00 01 01
+
+
+ ---------------------------Server---------------------------
+
+ HASH(HM):
+ 00000: 9C 9F C4 E3 32 5B 5F B3 70 B9 94 2A 71 D2 6E F0
+ 00010: 10 71 D8 A5 A1 8F 69 E8 C2 0B 70 CC 90 E9 A9 46
+
+
+ Finished message:
+ msg_type: 14
+ length: 00000C
+ body:
+ verify_data: D6A2A697E9F23DB0F9017A79
+
+ 00000: 14 00 00 0C D6 A2 A6 97 E9 F2 3D B0 F9 01 7A 79
+
+ Record layer message:
+ type: 16
+ version:
+ major: 03
+ minor: 03
+ length: 0014
+ fragment: 7BDDBB3C0A6A4A9E302B468CCD5CF786
+ 665FFEBC
+
+ 00000: 16 03 03 00 14 7B DD BB 3C 0A 6A 4A 9E 30 2B 46
+ 00010: 8C CD 5C F7 86 66 5F FE BC
+
+
+ ---------------------------Client---------------------------
+
+ Application data:
+ 00000: 48 45 4C 4F 0A
+
+ Record layer message:
+ type: 17
+ version:
+ major: 03
+ minor: 03
+ length: 0009
+ fragment: A8951D9389D1AEFE3B
+
+ 00000: 17 03 03 00 09 A8 95 1D 93 89 D1 AE FE 3B
+
+
+ ---------------------------Server---------------------------
+
+ Application data:
+ 00000: 48 45 4C 4F 0A
+
+ Record layer message:
+ type: 17
+ version:
+ major: 03
+ minor: 03
+ length: 0009
+ fragment: 0F368E5CEC86B4F8D7
+
+ 00000: 17 03 03 00 09 0F 36 8E 5C EC 86 B4 F8 D7
+
+
+ ---------------------------Client---------------------------
+
+ close_notify alert:
+ Alert:
+ level: 01
+ description: 00
+
+ 00000: 01 00
+
+ Record layer message:
+ type: 15
+ version:
+ major: 03
+ minor: 03
+ length: 0006
+ fragment: F91FCD98F309
+
+ 00000: 15 03 03 00 06 F9 1F CD 98 F3 09
+
+
+ ---------------------------Server---------------------------
+
+ close_notify alert:
+ Alert:
+ level: 01
+ description: 00
+
+ 00000: 01 00
+
+ Record layer message:
+ type: 15
+ version:
+ major: 03
+ minor: 03
+ length: 0006
+ fragment: 117B57AD5FED
+
+ 00000: 15 03 03 00 06 11 7B 57 AD 5F ED
+
+Contributors
+
+ Ekaterina Griboedova
+ CryptoPro
+ Email: griboedova.e.s@gmail.com
+
+
+ Grigory Sedov
+ CryptoPro
+ Email: sedovgk@cryptopro.ru
+
+
+ Dmitry Eremin-Solenikov
+ Auriga
+ Email: dbaryshkov@gmail.com
+
+
+ Lidiia Nikiforova
+ CryptoPro
+ Email: nikiforova@cryptopro.ru
+
+
+Authors' Addresses
+
+ Stanislav Smyshlyaev (editor)
+ CryptoPro
+ 18, Suschevsky val
+ Moscow
+ 127018
+ Russian Federation
+ Phone: +7 (495) 995-48-20
+ Email: svs@cryptopro.ru
+
+
+ Dmitry Belyavskiy
+ Cryptocom
+ 14/2, Kedrova St.
+ Moscow
+ 117218
+ Russian Federation
+ Email: beldmit@gmail.com
+
+
+ Evgeny Alekseev
+ CryptoPro
+ 18, Suschevsky val
+ Moscow
+ 127018
+ Russian Federation
+ Email: alekseev@cryptopro.ru