draft-ietf-tls-tls13-vectors-01.txt   draft-ietf-tls-tls13-vectors-02.txt 
TLS M. Thomson TLS M. Thomson
Internet-Draft Mozilla Internet-Draft Mozilla
Intended status: Standards Track June 30, 2017 Intended status: Standards Track July 16, 2017
Expires: January 1, 2018 Expires: January 17, 2018
Example Handshake Traces for TLS 1.3 Example Handshake Traces for TLS 1.3
draft-ietf-tls-tls13-vectors-01 draft-ietf-tls-tls13-vectors-02
Abstract Abstract
Examples of TLS 1.3 handshakes are shown. Private keys and inputs Examples of TLS 1.3 handshakes are shown. Private keys and inputs
are provided so that these handshakes might be reproduced. are provided so that these handshakes might be reproduced.
Intermediate values, including secrets, traffic keys and ivs are Intermediate values, including secrets, traffic keys and ivs are
shown so that implementations might be checked incrementally against shown so that implementations might be checked incrementally against
these values. these values.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 1, 2018. This Internet-Draft will expire on January 17, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 12 skipping to change at page 2, line 12
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Private Keys . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Private Keys . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Simple 1-RTT Handshake . . . . . . . . . . . . . . . . . . . 3 3. Simple 1-RTT Handshake . . . . . . . . . . . . . . . . . . . 3
4. Resumed 0-RTT Handshake . . . . . . . . . . . . . . . . . . . 14 4. Resumed 0-RTT Handshake . . . . . . . . . . . . . . . . . . . 14
5. HelloRetryRequest . . . . . . . . . . . . . . . . . . . . . . 25 5. HelloRetryRequest . . . . . . . . . . . . . . . . . . . . . . 25
6. Security Considerations . . . . . . . . . . . . . . . . . . . 35 6. Security Considerations . . . . . . . . . . . . . . . . . . . 36
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1. Normative References . . . . . . . . . . . . . . . . . . 35 7.1. Normative References . . . . . . . . . . . . . . . . . . 36
7.2. Informative References . . . . . . . . . . . . . . . . . 36 7.2. Informative References . . . . . . . . . . . . . . . . . 36
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 36 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 36
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 36 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 36
1. Introduction 1. Introduction
TLS 1.3 [I-D.ietf-tls-tls13] defines a new key schedule and a number TLS 1.3 [I-D.ietf-tls-tls13] defines a new key schedule and a number
new cryptographic operations. This document includes sample new cryptographic operations. This document includes sample
handshakes that show all intermediate values. This allows an handshakes that show all intermediate values. This allows an
implementation to be verified incrementally, examining inputs and implementation to be verified incrementally, examining inputs and
skipping to change at page 3, line 35 skipping to change at page 3, line 35
3. Simple 1-RTT Handshake 3. Simple 1-RTT Handshake
In this example, the simplest possible handshake is completed. The In this example, the simplest possible handshake is completed. The
server is authenticated, but the client remains anonymous. After server is authenticated, but the client remains anonymous. After
connecting, a few application data octets are exchanged. The server connecting, a few application data octets are exchanged. The server
sends a session ticket that permits the use of 0-RTT in any resumed sends a session ticket that permits the use of 0-RTT in any resumed
session. session.
{client} create an ephemeral x25519 key pair: {client} create an ephemeral x25519 key pair:
private key (32 octets): 8d471715ed09bd58 e1ea7f90f4bd1b96 private key (32 octets): 304546ef3c866b23 cc42b5e95282e5df
b23f5f53f6d1b3c5 8d12f5c06a3921a0 16ab583ffd142c40 743dd4f306e67220
public key (32 octets): 1db0a34c651f3a3f 9011b8c1bdd7714a public key (32 octets): da6a859ad6d2dbb5 1124fbfe6baff63d
a3593833e2e37cea a3a4796f6ee35657 8f14365ec990d575 761e4a6164978d31
{client} send a ClientHello handshake message {client} send a ClientHello handshake message
{client} send handshake record: {client} send handshake record:
payload (512 octets): 010001fc0303e864 702db55462aa0e96 payload (512 octets): 010001fc0303af21 156b04db639e6615
ed08c0d9a1dc18d5 1cffb1d668298ac0 45a2645780f30000 4a1fe5adfaeadf9e 413416000d57b8e1 126d4d119a8b0000
3e130113031302c0 2bc02fcca9cca8c0 0ac009c013c023c0 3e130113031302c0 2bc02fcca9cca8c0 0ac009c013c023c0
27c014009eccaa00 3300320067003900 38006b0016001300 27c014009eccaa00 3300320067003900 38006b0016001300
9c002f003c003500 3d000a0005000401 0001950000000b00 9c002f003c003500 3d000a0005000401 0001950000000b00
0900000673657276 6572ff0100010000 0a00140012001d00 0900000673657276 6572ff0100010000 0a00140012001d00
1700180019010001 0101020103010400 0b00020100002300 1700180019010001 0101020103010400 0b00020100002300
0000280026002400 1d00201db0a34c65 1f3a3f9011b8c1bd 0000280026002400 1d0020da6a859ad6 d2dbb51124fbfe6b
d7714aa3593833e2 e37ceaa3a4796f6e e35657002b000706 aff63d8f14365ec9 90d575761e4a6164 978d31002b000706
7f1403030302000d 0020001e04030503 0603020308040805 7f1503030302000d 0020001e04030503 0603020308040805
0806040105010601 0201040205020602 0202002d00020101 0806040105010601 0201040205020602 0202002d00020101
001500fc00000000 0000000000000000 0000000000000000 001500fc00000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
ciphertext (517 octets): 1603010200010001 fc0303e864702db5 ciphertext (517 octets): 1603010200010001 fc0303af21156b04
5462aa0e96ed08c0 d9a1dc18d51cffb1 d668298ac045a264 db639e66154a1fe5 adfaeadf9e413416 000d57b8e1126d4d
5780f300003e1301 13031302c02bc02f cca9cca8c00ac009 119a8b00003e1301 13031302c02bc02f cca9cca8c00ac009
c013c023c027c014 009eccaa00330032 006700390038006b c013c023c027c014 009eccaa00330032 006700390038006b
00160013009c002f 003c0035003d000a 0005000401000195 00160013009c002f 003c0035003d000a 0005000401000195
0000000b00090000 06736572766572ff 01000100000a0014 0000000b00090000 06736572766572ff 01000100000a0014
0012001d00170018 0019010001010102 01030104000b0002 0012001d00170018 0019010001010102 01030104000b0002
0100002300000028 00260024001d0020 1db0a34c651f3a3f 0100002300000028 00260024001d0020 da6a859ad6d2dbb5
9011b8c1bdd7714a a3593833e2e37cea a3a4796f6ee35657 1124fbfe6baff63d 8f14365ec990d575 761e4a6164978d31
002b0007067f1403 030302000d002000 1e04030503060302 002b0007067f1503 030302000d002000 1e04030503060302
0308040805080604 0105010601020104 0205020602020200 0308040805080604 0105010601020104 0205020602020200
2d00020101001500 fc00000000000000 0000000000000000 2d00020101001500 fc00000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
skipping to change at page 5, line 7 skipping to change at page 5, line 7
salt: (absent) salt: (absent)
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2 secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2
10adf300aa1f2660 e1b22e10f170f92a 10adf300aa1f2660 e1b22e10f170f92a
{server} create an ephemeral x25519 key pair: {server} create an ephemeral x25519 key pair:
private key (32 octets): 8b587c8205a29c7e 7bce7475cfa595d3 private key (32 octets): 909afec864953420 8dba128dead0445f
78d09e79b25d7db9 07cd92259a628dc3 7ddb7104fcad53cf 4252e78111b042b8
public key (32 octets): b80ea5ef65d8ee1b 524abb29c857142e public key (32 octets): 9d1bfe8053046d2d bd8e0e6221dad115
a9e4591fc0e38dc2 4d2361a3988be019 87584713c8cf4970 74d9d26d067c432f
{server} send a ServerHello handshake message {server} send a ServerHello handshake message
{server} derive secret for handshake "tls13 derived": {server} derive secret for handshake "tls13 derived":
PRK (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2 PRK (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2
10adf300aa1f2660 e1b22e10f170f92a 10adf300aa1f2660 e1b22e10f170f92a
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
skipping to change at page 5, line 35 skipping to change at page 5, line 35
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 6f2615a108c702c5 678f54fc9dbab697 output (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
{server} extract secret "handshake": {server} extract secret "handshake":
salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697 salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
ikm (32 octets): 5aa03a79c923fa4c 683d9cba739516c4 ikm (32 octets): f677c3cdac26a755 455b130efa9b1a3f
c69ad15c0db40b7c 6e21e2ff71f40f06 3cafb153544ca46a ddf670df199d996e
secret (32 octets): e4e77cf10307c913 575026d3d193b181 secret (32 octets): 0cefce00d5d29fd0 9f5de36c86fc8e72
f90ee4aa69f53f17 3426d62704623e85 99b4ad11ba4211c6 7063c2cc539fc4f9
{server} derive secret "tls13 c hs traffic": {server} derive secret "tls13 c hs traffic":
PRK (32 octets): e4e77cf10307c913 575026d3d193b181 PRK (32 octets): 0cefce00d5d29fd0 9f5de36c86fc8e72
f90ee4aa69f53f17 3426d62704623e85 99b4ad11ba4211c6 7063c2cc539fc4f9
hash (32 octets): 1d88ec0fc94ca5fc dbf7bd3f4be8dac8 hash (32 octets): 8ac51822361c5963 2de3c6b259e5808c
09f98d58af751934 771d7268c79310e3 e52b8278a6493de2 a976f441abbadc8c
info (54 octets): 002012746c733133 2063206873207472 info (54 octets): 002012746c733133 2063206873207472
6166666963201d88 ec0fc94ca5fcdbf7 bd3f4be8dac809f9 6166666963208ac5 1822361c59632de3 c6b259e5808ce52b
8d58af751934771d 7268c79310e3 8278a6493de2a976 f441abbadc8c
output (32 octets): 041ae38c959b6d93 7dba0da43d2b3bc0 output (32 octets): 5a63db760b817b1b da96e72832333aec
a81da11279935399 5720bc155657934a 6a177deeadb5b407 501ac10c17dac0a4
{server} derive secret "tls13 s hs traffic": {server} derive secret "tls13 s hs traffic":
PRK (32 octets): e4e77cf10307c913 575026d3d193b181 PRK (32 octets): 0cefce00d5d29fd0 9f5de36c86fc8e72
f90ee4aa69f53f17 3426d62704623e85 99b4ad11ba4211c6 7063c2cc539fc4f9
hash (32 octets): 1d88ec0fc94ca5fc dbf7bd3f4be8dac8 hash (32 octets): 8ac51822361c5963 2de3c6b259e5808c
09f98d58af751934 771d7268c79310e3 e52b8278a6493de2 a976f441abbadc8c
info (54 octets): 002012746c733133 2073206873207472 info (54 octets): 002012746c733133 2073206873207472
6166666963201d88 ec0fc94ca5fcdbf7 bd3f4be8dac809f9 6166666963208ac5 1822361c59632de3 c6b259e5808ce52b
8d58af751934771d 7268c79310e3 8278a6493de2a976 f441abbadc8c
output (32 octets): b05eae2a3c213f62 9ff677f9afff5589 output (32 octets): 3aa72a3c77b791e8 f4de243f9ccce172
368b1baf54b1bdc6 80f43b4e523f1e3b 941f8392aeb05429 320f4b572ccfe744
{server} derive secret for master "tls13 derived": {server} derive secret for master "tls13 derived":
PRK (32 octets): e4e77cf10307c913 575026d3d193b181 PRK (32 octets): 0cefce00d5d29fd0 9f5de36c86fc8e72
f90ee4aa69f53f17 3426d62704623e85 99b4ad11ba4211c6 7063c2cc539fc4f9
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
info (49 octets): 00200d746c733133 2064657269766564 info (49 octets): 00200d746c733133 2064657269766564
20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93 20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 7ed62a7bc6fb30cf 5f526ab9cb7dcc25 output (32 octets): 32cadf38f3089048 5c54bf4f1184eaa5
cdd239c36a2985b6 938ce1619bf2647d 569eeef15a43f3c7 6ab33965a47c9ff6
{server} extract secret "master": {server} extract secret "master":
salt (32 octets): 7ed62a7bc6fb30cf 5f526ab9cb7dcc25 salt (32 octets): 32cadf38f3089048 5c54bf4f1184eaa5
cdd239c36a2985b6 938ce1619bf2647d 569eeef15a43f3c7 6ab33965a47c9ff6
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): e845be8dbb7556ed 9a4921f663c88cd6 secret (32 octets): 6c6d4b3e7c925460 82d7b7a32f6ce219
8387f72e4e2572dc 59f22c5cda035862 3804f1bb930fed74 5c6b93c71397f424
{server} send handshake record: {server} send handshake record:
payload (82 octets): 0200004e7f14a6b9 ce3215b325616f22 payload (82 octets): 0200004e7f15deac 631669eaf28c6b12
48f11f776a98d174 8e895118182143cc 67c46f3f11831301 8b2091d36441e618 964dd8f0ec812e31 cda7aec1d0c11301
002800280024001d 0020b80ea5ef65d8 ee1b524abb29c857 002800280024001d 00209d1bfe805304 6d2dbd8e0e6221da
142ea9e4591fc0e3 8dc24d2361a3988b e019 d11587584713c8cf 497074d9d26d067c 432f
ciphertext (87 octets): 1603010052020000 4e7f14a6b9ce3215 ciphertext (87 octets): 1603010052020000 4e7f15deac631669
b325616f2248f11f 776a98d1748e8951 18182143cc67c46f eaf28c6b128b2091 d36441e618964dd8 f0ec812e31cda7ae
3f11831301002800 280024001d0020b8 0ea5ef65d8ee1b52 c1d0c11301002800 280024001d00209d 1bfe8053046d2dbd
4abb29c857142ea9 e4591fc0e38dc24d 2361a3988be019 8e0e6221dad11587 584713c8cf497074 d9d26d067c432f
{server} derive write traffic keys for handshake data: {server} derive write traffic keys for handshake data:
PRK (32 octets): b05eae2a3c213f62 9ff677f9afff5589 PRK (32 octets): 3aa72a3c77b791e8 f4de243f9ccce172
368b1baf54b1bdc6 80f43b4e523f1e3b 941f8392aeb05429 320f4b572ccfe744
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 1837f9353c2e7a0d 279923526c53aead key output (16 octets): 5727465c1d8af9bd dbbaa81aafe54bfb
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 876dd44a5f0cc952 08425386 iv output (12 octets): 409072c6da71d076 947e7663
{server} send a EncryptedExtensions handshake message {server} send a EncryptedExtensions handshake message
{server} send a Certificate handshake message {server} send a Certificate handshake message
{server} send a CertificateVerify handshake message {server} send a CertificateVerify handshake message
{server} calculate finished "tls13 finished": {server} calculate finished "tls13 finished":
PRK (32 octets): b05eae2a3c213f62 9ff677f9afff5589 PRK (32 octets): 3aa72a3c77b791e8 f4de243f9ccce172
368b1baf54b1bdc6 80f43b4e523f1e3b 941f8392aeb05429 320f4b572ccfe744
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): 15348eafde4ec0f8 3808818c95c7b285 output (32 octets): ee38546c6bd4e25a a7fc5c157b096921
acf763920eef62ac 0e314b391632ad9e 977fa8de266e7284 3a1fddc6783a0d30
{server} send a Finished handshake message {server} send a Finished handshake message
{server} send handshake record: {server} send handshake record:
payload (651 octets): 0800001e001c000a 00140012001d0017 payload (651 octets): 0800001e001c000a 00140012001d0017
0018001901000101 0102010301040000 00000b0001b90000 0018001901000101 0102010301040000 00000b0001b90000
01b50001b0308201 ac30820115a00302 0102020102300d06 01b50001b0308201 ac30820115a00302 0102020102300d06
092a864886f70d01 010b0500300e310c 300a060355040313 092a864886f70d01 010b0500300e310c 300a060355040313
03727361301e170d 3136303733303031 323335395a170d32 03727361301e170d 3136303733303031 323335395a170d32
skipping to change at page 8, line 19 skipping to change at page 8, line 19
e0ccb0524b1b018c 3e0b63264d449a6d 38e22a5fda430846 e0ccb0524b1b018c 3e0b63264d449a6d 38e22a5fda430846
748030530ef0461c 8ca9d9efbfae8ea6 d1d03e2bd193eff0 748030530ef0461c 8ca9d9efbfae8ea6 d1d03e2bd193eff0
ab9a8002c47428a6 d35a8d88d79f7f1e 3f0203010001a31a ab9a8002c47428a6 d35a8d88d79f7f1e 3f0203010001a31a
301830090603551d 1304023000300b06 03551d0f04040302 301830090603551d 1304023000300b06 03551d0f04040302
05a0300d06092a86 4886f70d01010b05 000381810085aad2 05a0300d06092a86 4886f70d01010b05 000381810085aad2
a0e5b9276b908c65 f73a7267170618a5 4c5f8a7b337d2df7 a0e5b9276b908c65 f73a7267170618a5 4c5f8a7b337d2df7
a594365417f2eae8 f8a58c8f8172f931 9cf36b7fd6c55b80 a594365417f2eae8 f8a58c8f8172f931 9cf36b7fd6c55b80
f21a030151567260 96fd335e5e67f2db f102702e608ccae6 f21a030151567260 96fd335e5e67f2db f102702e608ccae6
bec1fc63a42a99be 5c3eb7107c3c54e9 b9eb2bd5203b1c3b bec1fc63a42a99be 5c3eb7107c3c54e9 b9eb2bd5203b1c3b
84e0a8b2f759409b a3eac9d91d402dcc 0cc8f8961229ac91 84e0a8b2f759409b a3eac9d91d402dcc 0cc8f8961229ac91
87b42b4de100000f 0000840804008052 e8915b097ea305da 87b42b4de100000f 0000840804008076 f2f558b47d45ec60
d8a511a03ea45c34 a14e04a1f13a8b45 279654262702f9d8 40fd4ee50601123a 0d4a3d324428242a 743355c726007d3e
b2b1897bfebae516 09b265eae67dc898 0ef9aac9514e84b3 6d85e77411de68bf 0f97e9e869a4b00e ec8130ccb5c797b8
3b1d8dc3105e5139 5854964d9bca28e8 aab0b968808c4d99 73294548dc615ee6 7f8e37b5025b7625 0b00394492bf676d
4c963253d13dc1ed c98945fa0c72cb74 959d9204740e968b 2cf1dc7122620e6c cf5435424e8658b1 c64200a87126d9f8
9dbc9d97914fb2fb e9671300d3aeb5eb 40d3fe5ad425e014 1fdd9657045a023f 91ea50e76d4465ab 67813911f3a76614
0000200d2c10fab6 abf8cbaa97b91816 2516fdfb4a1129c3 000020c4d8789445 942fdc425d1c08fd c0e81ee90794595c
98bb5fe97848d910 208036 82e340874c019a73 9a7b22
ciphertext (673 octets): 170301029cda8377 df12c42a7c157681 ciphertext (673 octets): 170301029cd612d0 b9706b733ac1708a
92a0a724c1a2a070 4f4901e91dd4a873 3dcee9461401f7c7 fcac1aeec92415c3 7e1c55167e267326 26ef7e4d3e266651
ad2b7584fe18d87b d12d05d718c46c04 3deef39e63b7a50e d1179df924b6c2d2 76eddc07880ff0a8 23925d9d60efffc1
747de04a55d8074a 14ff21803864d8ee 65482da8b307ed8f 3b3d5acce6c1e8e1 34aab30052cdabfc f54331057918d2fd
11df14701c81bd3b ba9f86f7e83a392f 23532abd49396450 e22bc67b78b5e2fb e9853fe57aad1319 7f9d22767f6fd6fa
f3cf32d369b27eb9 2427ace4f141defe fa777cb75c5fa511 f82e4c198641fa7e bf6425222d08c310 67a4641ef3e29a7f
90d2399035164350 f0d59cdba5369141 d453467634ed876c 99f704b2ea451b54 e33e1d7749b15ec4 49556d90645a1803
3e423b715d47272f f84b0e797850c89d ce8119b45af1c439 f3d87dc4b5753556 e5ff1970521f75c5 db3fe7f621c2b47e
0e5c66661f4ed0e6 ca7018d189d71e76 7addc2e28f48ccd3 6e5519ab4d7363a1 f7da6f35a9f3587d b3d57ee89a8f24f7
c61b236fb02160f2 38763de832b8f5b1 76d29809e6d95123 ba9678a5466497bb 476091cec490a450 b33fdb4978a8fae4
0fb0fb0a66c0d4c4 11a0fdd1fd7b3f54 7b0abfd5f4df3b60 18f408e3c9e0992a 274eb6718106c4dc 351b8a6b7435ac8b
a4aa4a230a69d7e0 b28c71a1bcbbc071 0474e682c1a27912 2214e194e5edfeff d4a59a2056d6a45c 8f177f39b2b39dcd
bc4463688b2d781f 0c41e48dd169378f d5a9416ce1e89930 d9813c1fea04e757 6e7a1f5e218bcf8f fbb981e36006dd0b
a5166a4c6cf52b80 14c368a52ed0173e 56758688b99838f9 b6bb22a1c3d4926c 505f74f231934a57 0c12834d0582e1bf
d54e4139e5bf34ff 4a5295dd6183774a db81074abd9a8ccd 2ea9c2280da0b4aa 152f7dd12c81fd48 682076ecd1cd47d4
621afc59b311cc65 0f28ce32b78fe0bc 5ea36a868bcd43ab 149b6352d0975134 3c6b060a61d30ffa 4f8bd1e8a2ab61ff
f2c49223eb02318a 609820cb516afc69 89593e77002be6d8 3e9f965dfcd7d1c4 7edb2eae8ff132dd fc1f7774ac77b56a
4b2b84159ce70e50 868fc8fd42b0d123 976f8caaf363b68d ce0d43b8d1163638 6538ceb695da7af0 91f18236aab74859
c390dc07ee9fa818 22840d3c3bfe2e3c 62df1e98ce6acdb6 656e54cf53fd9960 064702b81b664518 65cd8e0d7804708c
6f65a6b7f39599ab c21a9c6e1e3ec631 3bcf3a3add55f786 e842204a3dac91ad 826847ce0c3c3f0d e59392fc3b0bbec0
595b394e05dbc16d 66953061ffb564d7 2f023f74b3798e16 5878c8f56b68eb50 f62798c86c570f1a d9254fa41b152a77
3454e8d206aa0e0a a737f5abe22df433 9ba24ce9500005aa 6fb17707bfab5ea2 a834e9edd05f6239 204127cc0f5cc18b
82ea5af110a202f8 24fd9f561e57f2cd 5a54b42d672401cc 1dae4a070890bdf7 642704b5e9961ff2 6b931d069aeb08dd
ea1ef5a9967ecc65 b735a7b860156954 04e027e756157a3f 385f1997f804375d 238f26a9e8e8f007 47ea85747d7a7c61
88546d127c53d638 54032aafb7760205 60defc8e8f98853c 6493bd0eff96c576 87e1b409469c3c7a 0c40a9b5ca1eeafd
40dd3c2772e619e4 723f2936c3b6da21 9d00caa6c13d77d9 f1998fbc4a671898 d8b8a37769cc0ecb 6c19f22b87d46968
cfb6acfa3148fb1a 45ffcc9594f43fb2 af18f1e54ef1750f b9a4c1b660f39373 ea517cbf401fe5af 0f2cc910e5786af2
21bddce6449807b2 e7e8090ffda954a7 302722f2ea1333eb 50a392038be62b93 46b166dbb91ebe46 579f020b1e75d771
e85fcb49ae7871d2 38 be8ab0dcb7ccce81 48
{server} derive secret "tls13 c ap traffic": {server} derive secret "tls13 c ap traffic":
PRK (32 octets): e845be8dbb7556ed 9a4921f663c88cd6 PRK (32 octets): 6c6d4b3e7c925460 82d7b7a32f6ce219
8387f72e4e2572dc 59f22c5cda035862 3804f1bb930fed74 5c6b93c71397f424
hash (32 octets): 0e69e4a8fd0448d1 3862dc670e97c44f hash (32 octets): db04b3cd015fe90a 2eb74533d351ee9c
c157d1adc99f3639 c9bd3f9dbc2990cf daf0b30a09f68391 f24bf32addd4d037
info (54 octets): 002012746c733133 2063206170207472 info (54 octets): 002012746c733133 2063206170207472
6166666963200e69 e4a8fd0448d13862 dc670e97c44fc157 616666696320db04 b3cd015fe90a2eb7 4533d351ee9cdaf0
d1adc99f3639c9bd 3f9dbc2990cf b30a09f68391f24b f32addd4d037
output (32 octets): 9e0bf6b565b4c386 d3f0a7faaecffac8 output (32 octets): 53b154f7205e2193 3794330173b14118
76716d97ef7e1920 9b6a82fbc2e78ab6 bcd02305b39d64b8 e5271737a7402c74
{server} derive secret "tls13 s ap traffic": {server} derive secret "tls13 s ap traffic":
PRK (32 octets): e845be8dbb7556ed 9a4921f663c88cd6 PRK (32 octets): 6c6d4b3e7c925460 82d7b7a32f6ce219
8387f72e4e2572dc 59f22c5cda035862 3804f1bb930fed74 5c6b93c71397f424
hash (32 octets): 0e69e4a8fd0448d1 3862dc670e97c44f hash (32 octets): db04b3cd015fe90a 2eb74533d351ee9c
c157d1adc99f3639 c9bd3f9dbc2990cf daf0b30a09f68391 f24bf32addd4d037
info (54 octets): 002012746c733133 2073206170207472 info (54 octets): 002012746c733133 2073206170207472
6166666963200e69 e4a8fd0448d13862 dc670e97c44fc157 616666696320db04 b3cd015fe90a2eb7 4533d351ee9cdaf0
d1adc99f3639c9bd 3f9dbc2990cf b30a09f68391f24b f32addd4d037
output (32 octets): d4a9974dc6c15c4b d5e35add69b1a20c output (32 octets): 47603e72ab5a85b4 dc480897acd07e96
b78affe36ab431e8 264567a25f89d35b d18e9db0a931bf75 1650698d6512092d
{server} derive secret "tls13 exp master": {server} derive secret "tls13 exp master":
PRK (32 octets): e845be8dbb7556ed 9a4921f663c88cd6 PRK (32 octets): 6c6d4b3e7c925460 82d7b7a32f6ce219
8387f72e4e2572dc 59f22c5cda035862 3804f1bb930fed74 5c6b93c71397f424
hash (32 octets): 0e69e4a8fd0448d1 3862dc670e97c44f hash (32 octets): db04b3cd015fe90a 2eb74533d351ee9c
c157d1adc99f3639 c9bd3f9dbc2990cf daf0b30a09f68391 f24bf32addd4d037
info (52 octets): 002010746c733133 20657870206d6173 info (52 octets): 002010746c733133 20657870206d6173
746572200e69e4a8 fd0448d13862dc67 0e97c44fc157d1ad 74657220db04b3cd 015fe90a2eb74533 d351ee9cdaf0b30a
c99f3639c9bd3f9d bc2990cf 09f68391f24bf32a ddd4d037
output (32 octets): 8169817e9b02ed1e b731b3bcfd656f73 output (32 octets): acf49197383cc5fb 50fde04f506dfd58
a674abad0541074c 9c2ce0f1dda661b2 68dc798219f5eedf fd4f3b7eb713b0c9
{server} derive write traffic keys for application data: {server} derive write traffic keys for application data:
PRK (32 octets): d4a9974dc6c15c4b d5e35add69b1a20c PRK (32 octets): 47603e72ab5a85b4 dc480897acd07e96
b78affe36ab431e8 264567a25f89d35b d18e9db0a931bf75 1650698d6512092d
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 474c6c4d95e3c4a7 c83d2a327573ad7a key output (16 octets): 698b2aa36a58ceac 77776dd2513fa7fa
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 57ae1cf30df22bd5 cc6c5903 iv output (12 octets): 7fbff5a2c0ac5bd6 7e2cd759
{server} derive read traffic keys for handshake data: {server} derive read traffic keys for handshake data:
PRK (32 octets): 041ae38c959b6d93 7dba0da43d2b3bc0 PRK (32 octets): 5a63db760b817b1b da96e72832333aec
a81da11279935399 5720bc155657934a 6a177deeadb5b407 501ac10c17dac0a4
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): cacd295502a93689 37e8a8c58962b485 key output (16 octets): 21103162263e8231 34d6916a82b741c2
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 692cb0e95a3e2c80 7ac13112 iv output (12 octets): 0e1be2fa84c0bc3c b6d6afe3
{client} extract secret "early": {client} extract secret "early":
salt: (absent) salt: (absent)
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2 secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2
10adf300aa1f2660 e1b22e10f170f92a 10adf300aa1f2660 e1b22e10f170f92a
skipping to change at page 11, line 17 skipping to change at page 11, line 17
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 6f2615a108c702c5 678f54fc9dbab697 output (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
{client} extract secret "handshake": {client} extract secret "handshake":
salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697 salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
ikm (32 octets): 5aa03a79c923fa4c 683d9cba739516c4 ikm (32 octets): f677c3cdac26a755 455b130efa9b1a3f
c69ad15c0db40b7c 6e21e2ff71f40f06 3cafb153544ca46a ddf670df199d996e
secret (32 octets): e4e77cf10307c913 575026d3d193b181 secret (32 octets): 0cefce00d5d29fd0 9f5de36c86fc8e72
f90ee4aa69f53f17 3426d62704623e85 99b4ad11ba4211c6 7063c2cc539fc4f9
{client} derive secret "tls13 c hs traffic" (same as server) {client} derive secret "tls13 c hs traffic" (same as server)
{client} derive secret "tls13 s hs traffic" (same as server) {client} derive secret "tls13 s hs traffic" (same as server)
{client} derive secret for master "tls13 derived" (same as server) {client} derive secret for master "tls13 derived" (same as server)
{client} extract secret "master" (same as server) {client} extract secret "master" (same as server)
{client} derive read traffic keys for handshake data: {client} derive read traffic keys for handshake data:
PRK (32 octets): b05eae2a3c213f62 9ff677f9afff5589 PRK (32 octets): 3aa72a3c77b791e8 f4de243f9ccce172
368b1baf54b1bdc6 80f43b4e523f1e3b 941f8392aeb05429 320f4b572ccfe744
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 1837f9353c2e7a0d 279923526c53aead key output (16 octets): 5727465c1d8af9bd dbbaa81aafe54bfb
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 876dd44a5f0cc952 08425386 iv output (12 octets): 409072c6da71d076 947e7663
{client} calculate finished "tls13 finished" (same as server) {client} calculate finished "tls13 finished" (same as server)
{client} derive secret "tls13 c ap traffic" (same as server) {client} derive secret "tls13 c ap traffic" (same as server)
{client} derive secret "tls13 s ap traffic" (same as server) {client} derive secret "tls13 s ap traffic" (same as server)
{client} derive secret "tls13 exp master" (same as server) {client} derive secret "tls13 exp master" (same as server)
{client} derive write traffic keys for handshake data (same as {client} derive write traffic keys for handshake data (same as
server read traffic keys) server read traffic keys)
{client} derive read traffic keys for application data (same as {client} derive read traffic keys for application data (same as
server write traffic keys) server write traffic keys)
{client} calculate finished "tls13 finished": {client} calculate finished "tls13 finished":
PRK (32 octets): 041ae38c959b6d93 7dba0da43d2b3bc0 PRK (32 octets): 5a63db760b817b1b da96e72832333aec
a81da11279935399 5720bc155657934a 6a177deeadb5b407 501ac10c17dac0a4
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): 507651b6fa3d5622 34091e1cdf3c7fba output (32 octets): f8acf5aead23c230 5706ce75da058ecb
bf2f235272831b99 dcc2accc8afb563e f9393fd656dfb95f db225f9990d4732d
{client} send a Finished handshake message {client} send a Finished handshake message
{client} send handshake record: {client} send handshake record:
payload (36 octets): 14000020c87d6dd1 50b92a473cbff566 payload (36 octets): 14000020eb376f20 1f8bb90bb787263c
34f50b2ecba977b4 afa29a0fb654a8be 22124aae 1dac3472ba34a499 d547793c15f6f812 5a16d2b8
ciphertext (58 octets): 17030100356d8eca 3665769dee5093cd ciphertext (58 octets): 1703010035f879b9 6aca6de41e53173a
a2cbe4704aa214a9 4e399428cb0d584e 1878ce907f557200 55015f7810bdd941 5ac444002b5d7d19 a221fee902124509
ac1fd645c5285afa cd7570117b61501c 7586 5a56aa57d42966b0 17e0fcbaa53027d5 ba2e
{client} derive write traffic keys for application data: {client} derive write traffic keys for application data:
PRK (32 octets): 9e0bf6b565b4c386 d3f0a7faaecffac8 PRK (32 octets): 53b154f7205e2193 3794330173b14118
76716d97ef7e1920 9b6a82fbc2e78ab6 bcd02305b39d64b8 e5271737a7402c74
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): ac773626f67dfa1b 2bdae44cf89d424f key output (16 octets): 459caa9e3914221d 39cc67ae65f9941e
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 2726987b7549397b 1a8e0363 iv output (12 octets): 54123c2ec7106081 0086c391
{client} derive secret "tls13 res master": {client} derive secret "tls13 res master":
PRK (32 octets): e845be8dbb7556ed 9a4921f663c88cd6 PRK (32 octets): 6c6d4b3e7c925460 82d7b7a32f6ce219
8387f72e4e2572dc 59f22c5cda035862 3804f1bb930fed74 5c6b93c71397f424
hash (32 octets): 949f8ad1a8ce89e6 ff48d2dfa9da007f hash (32 octets): e170b2cab483b329 c049e0d66646f247
3db6820ab1c23d66 0011167a8093751b 306b56e0a03c93bb c14254b8e075924a
info (52 octets): 002010746c733133 20726573206d6173 info (52 octets): 002010746c733133 20726573206d6173
74657220949f8ad1 a8ce89e6ff48d2df a9da007f3db6820a 74657220e170b2ca b483b329c049e0d6 6646f247306b56e0
b1c23d660011167a 8093751b a03c93bbc14254b8 e075924a
output (32 octets): 692dcd005454d3f6 1313150d8414bc06 output (32 octets): 1b587a5b2c24f03f d2e2529df1d5f62a
f63fdaaad6e60d4d fcf0ee4350b9fc38 d596b014279608a4 ed4f980662fc326e
{server} calculate finished "tls13 finished" (same as client) {server} calculate finished "tls13 finished" (same as client)
{server} derive read traffic keys for application data (same as {server} derive read traffic keys for application data (same as
client write traffic keys) client write traffic keys)
{server} derive secret "tls13 res master" (same as client) {server} derive secret "tls13 res master" (same as client)
{server} send a SessionTicket handshake message {server} generate resumption secret "tls13 resumption":
PRK (32 octets): 1b587a5b2c24f03f d2e2529df1d5f62a
d596b014279608a4 ed4f980662fc326e
hash (2 octets): 0000
info (22 octets): 002010746c733133 20726573756d7074 696f6e020000
output (32 octets): 581e8e76ee4b9f04 78d727da6d02e506
02fe2168784575ed 7332b11fd4db81fc
{server} send a NewSessionTicket handshake message
{server} send handshake record: {server} send handshake record:
payload (186 octets): 040000b60000001e f1655d5400a299b4 payload (189 octets): 040000b90000001e 1386bfb902000000
f88531f21efd8d98 e8ad000000007142 3911a9eb9f743d9b a27bf25dc52d2052 79d8e53986000000 00c231b586206110
e589bc89f05a0060 b46fab142a9b5055 5b729017a7235dc3 73b1d40d9b8563f3 7900606f87d2f38d 405738e271331b9a
8f9b80550570fce6 34302954540f8537 20d53a1e3eb34357 c650572a63fff310 b39620685bad0483 0fb5faa414454633
e6161c2655fde96d 7bcbb978c074c269 2696124089322d61 af500abb4a25c93e f991bf62fb6629a7 ffab70db6eeff17b
d5747dfd20d4b19d b61193d698283808 1bf8c7fde1740823 2ebf1098593f9935 858b4d5764ac3469 c5ada81bc5c527a1
e87e58289843230f 28a9fbe716cb5594 1a5dd7151c873aba 10e9f571647fb1f0 bf436ea8c78718f3 82390bc7ae979b1b
36ae8cff557bb3f7 d2bfc7f126a25234 0008002a00040000 0400 03898c946776de01 96c2c473d1f6dee8 714e310008002a00 0400000400
ciphertext (208 octets): 17030100cbf400c9 f93f3a2e22b8c810 ciphertext (211 octets): 17030100cea307cb 4a28329dbf6879ee
0a0ae955290eea5b 8c2288d72ebdb6b1 2a9b4fb321a82c84 56d1cb4e0055f889 169b3a04ee050225 69c1ad70115dc655
ce6a90ea3008d395 0bb54657d46cae9c e4801ee47f688bf3 7802c91832e6e5ef b69c65050f06d189 1692561d4ece8d10
719a02378f7f2ac3 d5c54343da3f6434 3c098094788e3d18 813bf7a3ea3fb430 cbb36ba1a1d71276 d405a8dd0fef782b
51e786197f4c5ab7 fb1813b4d920f115 d6a54df4aa108908 402a8875245eda0b bd548b61639ba45b 9c63689104432850
2e5e93a02aefa91f 755fcd8ea6df0362 3fcb0b552ae026fb f4c7a8a76a2d13a9 746a424a65730fd1 7ab97f3488d93ab4
8df11d5adfddbf60 c227be282444447e 6816321cdafcdcd5 ebdc0f9f8b317855 1faf72ca05f705dd 901815887a0f7f6f
9889b79c9092886b 021893605d9467cf 7c9b24817fe7ddbc 7062a3802259d9f2 7bb30b6875be1743 54d6fa59adf24a6b
66380a8cf9be9497 d886e999c571fc18 759ee03b20321a10 85c5415d46173c85 5aaf0dc06296099f c6daa0164ef2848c 2219ae
{client} send application_data record: {client} send application_data record:
payload (50 octets): 0001020304050607 08090a0b0c0d0e0f payload (50 octets): 0001020304050607 08090a0b0c0d0e0f
1011121314151617 18191a1b1c1d1e1f 2021222324252627 1011121314151617 18191a1b1c1d1e1f 2021222324252627
28292a2b2c2d2e2f 3031 28292a2b2c2d2e2f 3031
ciphertext (72 octets): 17030100434a1777 5d0e717b22921157 ciphertext (72 octets): 17030100432e3b59 0791333db65b5632
5501be876d5d690b 4b28bd0211495711 bf97d20deaf2e440 d4c9c7e066120216 08680e714177b07f 06500f28f27617d8
63a8e4c48ff3cf9d f3b44540bcdc53d5 1c8d4d184081b566 a92a52ec167530f4 ee7262e40127b997 5c26499c23d8bf6e
15d323aa833a407a 713c4b0c126733bf
{server} send application_data record: {server} send application_data record:
payload (50 octets): 0001020304050607 08090a0b0c0d0e0f payload (50 octets): 0001020304050607 08090a0b0c0d0e0f
1011121314151617 18191a1b1c1d1e1f 2021222324252627 1011121314151617 18191a1b1c1d1e1f 2021222324252627
28292a2b2c2d2e2f 3031 28292a2b2c2d2e2f 3031
ciphertext (72 octets): 1703010043ef6eb6 0c6fc258b170589e ciphertext (72 octets): 1703010043b7a6f5 f971aee65e5386b4
9a1cbefba4c52d79 15a3afb3e52da65f ef6b1dc37970a3ab 18f1533c8de304b6 bb58fed0062ca441 d49ea52e219f9c0f
79d5e3a513678ae5 b2bfdb2880d60f08 280f4f2ebf94c3d7 10fade977cf7ce2a 0e6c9a46ca1b2b72 3b843dc8c630db6e
1ce803e6a9295686 64cdb1c27979b6f4
{client} generate resumption secret "tls13 resumption" (same as
server)
{client} send alert record: {client} send alert record:
payload (2 octets): 0100 payload (2 octets): 0100
ciphertext (24 octets): 17030100134b8329 8e645242f1bf8265 ciphertext (24 octets): 170301001367bb58 666bd833b0f3a2fc
bcd6f42b795de36d fbb27c1353a50493
{server} send alert record: {server} send alert record:
payload (2 octets): 0100 payload (2 octets): 0100
ciphertext (24 octets): 17030100133d38b5 673386ae3d722ccd ciphertext (24 octets): 1703010013ae58fd 7ad77fcc262cdbe7
d2996292b5a12165 a3088d493655a29e
4. Resumed 0-RTT Handshake 4. Resumed 0-RTT Handshake
This handshake resumes from the handshake in Section 3. Since the This handshake resumes from the handshake in Section 3. Since the
server provided a session ticket that permitted 0-RTT, and the client server provided a session ticket that permitted 0-RTT, and the client
is configured for 0-RTT, the client is able to send 0-RTT data. is configured for 0-RTT, the client is able to send 0-RTT data.
{client} create an ephemeral x25519 key pair: {client} create an ephemeral x25519 key pair:
private key (32 octets): ecd667eb15e77201 1a8522a5e9a90a5f private key (32 octets): 8da37c24d5e27c29 c76f3c787f43cfb3
1b4080c508baca79 68f8831d0d10811f 45e6d8bab793f6f7 50fec63df70f9502
public key (32 octets): edb6949f0f6c1e2e 47001f5ea2c7d54b public key (32 octets): 4707fcfb129e989d 42c0083f74f3efdf
d8ec7167b52cfd1a 29dfbe5f5888cd29 1e73da08eb317ebc 2d3ce687957e060f
{client} extract secret "early": {client} extract secret "early":
salt: (absent) salt: (absent)
ikm (32 octets): 692dcd005454d3f6 1313150d8414bc06 ikm (32 octets): 581e8e76ee4b9f04 78d727da6d02e506
f63fdaaad6e60d4d fcf0ee4350b9fc38 02fe2168784575ed 7332b11fd4db81fc
secret (32 octets): bc9ef911288790a9 9e5ca2ea520d231e secret (32 octets): 40718b9ebd2b349a 900a2b3742e7a0d2
c60a28e1e958e1c6 551dbbe0bedfe63b 3f227bee609e9825 4da761f9d145f7cb
{client} send a ClientHello handshake message {client} send a ClientHello handshake message
{client} calculate finished "tls13 finished": {client} calculate finished "tls13 finished":
PRK (32 octets): 7688634eb081913f 83cc5c987d302235 PRK (32 octets): e5f760cd1bbab8da 776f4072fc9a9df9
c6fbc79efcd8094b 02ce1030a5f9184b 782857770bd141d0 eee570623ec118d9
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): eb21444eb694b6ad 592708e27a9177a9 output (32 octets): 16be004dc7d281b7 0a71906f294cf508
96aa9bf9f3c786d8 e88e18a293338a48 2f546f20f6acf9b5 6b43a3da90485020
{client} send handshake record: {client} send handshake record:
payload (512 octets): 010001fc03032089 2088de8aa414b2bf payload (512 octets): 010001fc03039aa7 6a8dbff0041077bf
0237acf603f9b20b 532df97f894fc82c aeac2e1a899f0000 b6ba54cd905c2c88 d89fa2f9f17300dc 2b2282d1245d0000
3e130113031302c0 2bc02fcca9cca8c0 0ac009c013c023c0 3e130113031302c0 2bc02fcca9cca8c0 0ac009c013c023c0
27c014009eccaa00 3300320067003900 38006b0016001300 27c014009eccaa00 3300320067003900 38006b0016001300
9c002f003c003500 3d000a0005000401 0001950000000b00 9c002f003c003500 3d000a0005000401 0001950000000b00
0900000673657276 6572ff0100010000 0a00140012001d00 0900000673657276 6572ff0100010000 0a00140012001d00
1700180019010001 0101020103010400 0b00020100002800 1700180019010001 0101020103010400 0b00020100002800
260024001d0020ed b6949f0f6c1e2e47 001f5ea2c7d54bd8 260024001d002047 07fcfb129e989d42 c0083f74f3efdf1e
ec7167b52cfd1a29 dfbe5f5888cd2900 2a0000002b000706 73da08eb317ebc2d 3ce687957e060f00 2a0000002b000706
7f1403030302000d 0020001e04030503 0603020308040805 7f1503030302000d 0020001e04030503 0603020308040805
0806040105010601 0201040205020602 0202002d00020101 0806040105010601 0201040205020602 0202002d00020101
0015002b00000000 0000000000000000 0000000000000000 0015002b00000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
2900cd00a800a299 b4f88531f21efd8d 98e8ad0000000071 2900cd00a800a27b f25dc52d205279d8 e5398600000000c2
423911a9eb9f743d 9be589bc89f05a00 60b46fab142a9b50 31b58620611073b1 d40d9b8563f37900 606f87d2f38d4057
555b729017a7235d c38f9b80550570fc e634302954540f85 38e271331b9ac650 572a63fff310b396 20685bad04830fb5
3720d53a1e3eb343 57e6161c2655fde9 6d7bcbb978c074c2 faa414454633af50 0abb4a25c93ef991 bf62fb6629a7ffab
692696124089322d 61d5747dfd20d4b1 9db61193d6982838 70db6eeff17b2ebf 1098593f9935858b 4d5764ac3469c5ad
081bf8c7fde17408 23e87e5828984323 0f28a9fbe716cb55 a81bc5c527a110e9 f571647fb1f0bf43 6ea8c78718f38239
941a5dd7151c873a ba36ae8cff557bb3 f7d2bfc7f126a252 0bc7ae979b1b0389 8c946776de0196c2 c473d1f6dee8714e
34f1655d5a002120 ce6d44ae651c47df 33882f31a7542f19 311386bfbf002120 3ac0405bd6b94bb8 f4759ce048668dee
cab76d4be58175d6 505f2fae5c1ec390 514e4ed62e9dc5f7 37000084cce510a1
ciphertext (517 octets): 1603010200010001 fc030320892088de ciphertext (517 octets): 1603010200010001 fc03039aa76a8dbf
8aa414b2bf0237ac f603f9b20b532df9 7f894fc82caeac2e f0041077bfb6ba54 cd905c2c88d89fa2 f9f17300dc2b2282
1a899f00003e1301 13031302c02bc02f cca9cca8c00ac009 d1245d00003e1301 13031302c02bc02f cca9cca8c00ac009
c013c023c027c014 009eccaa00330032 006700390038006b c013c023c027c014 009eccaa00330032 006700390038006b
00160013009c002f 003c0035003d000a 0005000401000195 00160013009c002f 003c0035003d000a 0005000401000195
0000000b00090000 06736572766572ff 01000100000a0014 0000000b00090000 06736572766572ff 01000100000a0014
0012001d00170018 0019010001010102 01030104000b0002 0012001d00170018 0019010001010102 01030104000b0002
0100002800260024 001d0020edb6949f 0f6c1e2e47001f5e 0100002800260024 001d00204707fcfb 129e989d42c0083f
a2c7d54bd8ec7167 b52cfd1a29dfbe5f 5888cd29002a0000 74f3efdf1e73da08 eb317ebc2d3ce687 957e060f002a0000
002b0007067f1403 030302000d002000 1e04030503060302 002b0007067f1503 030302000d002000 1e04030503060302
0308040805080604 0105010601020104 0205020602020200 0308040805080604 0105010601020104 0205020602020200
2d00020101001500 2b00000000000000 0000000000000000 2d00020101001500 2b00000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000
00000000002900cd 00a800a299b4f885 31f21efd8d98e8ad 00000000002900cd 00a800a27bf25dc5 2d205279d8e53986
0000000071423911 a9eb9f743d9be589 bc89f05a0060b46f 00000000c231b586 20611073b1d40d9b 8563f37900606f87
ab142a9b50555b72 9017a7235dc38f9b 80550570fce63430 d2f38d405738e271 331b9ac650572a63 fff310b39620685b
2954540f853720d5 3a1e3eb34357e616 1c2655fde96d7bcb ad04830fb5faa414 454633af500abb4a 25c93ef991bf62fb
b978c074c2692696 124089322d61d574 7dfd20d4b19db611 6629a7ffab70db6e eff17b2ebf109859 3f9935858b4d5764
93d6982838081bf8 c7fde1740823e87e 58289843230f28a9 ac3469c5ada81bc5 c527a110e9f57164 7fb1f0bf436ea8c7
fbe716cb55941a5d d7151c873aba36ae 8cff557bb3f7d2bf 8718f382390bc7ae 979b1b03898c9467 76de0196c2c473d1
c7f126a25234f165 5d5a002120ce6d44 ae651c47df33882f f6dee8714e311386 bfbf0021203ac040 5bd6b94bb8f4759c
31a7542f19cab76d 4be58175d6505f2f ae5c1ec390 e048668dee514e4e d62e9dc5f7370000 84cce510a1
{client} derive secret "tls13 c e traffic": {client} derive secret "tls13 c e traffic":
PRK (32 octets): bc9ef911288790a9 9e5ca2ea520d231e PRK (32 octets): 40718b9ebd2b349a 900a2b3742e7a0d2
c60a28e1e958e1c6 551dbbe0bedfe63b 3f227bee609e9825 4da761f9d145f7cb
hash (32 octets): 39ce46d03e297f31 b63f1504b052e330 hash (32 octets): 4d972fbd827dbe26 746af0014f20f421
2f20f7a289b6b9ce 19f2f42172c9446f 1cb6f16cda90f26a fdeac1b81095bbc2
info (53 octets): 002011746c733133 2063206520747261 info (53 octets): 002011746c733133 2063206520747261
666669632039ce46 d03e297f31b63f15 04b052e3302f20f7 66666963204d972f bd827dbe26746af0 014f20f4211cb6f1
a289b6b9ce19f2f4 2172c9446f 6cda90f26afdeac1 b81095bbc2
output (32 octets): 53480f2ff5f8966c 7819a2f4d861b3f7 output (32 octets): 12567c821a3a822f 0b5e062b7d7deab4
15bbe2c21c0c6273 6a00526d8de55837 1a7edb836ebb8e65 47cfaf28cd3d23b0
{client} derive write traffic keys for early application data: {client} derive write traffic keys for early application data:
PRK (32 octets): 53480f2ff5f8966c 7819a2f4d861b3f7 PRK (32 octets): 12567c821a3a822f 0b5e062b7d7deab4
15bbe2c21c0c6273 6a00526d8de55837 1a7edb836ebb8e65 47cfaf28cd3d23b0
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): a29e150bd59e2b81 5c968627498f96c2 key output (16 octets): d260ca7678d4fd53 dce0c09e7d349141
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): d96cd2f516516ad1 1a70abb6 iv output (12 octets): 936e9de4fb2b9ca8 acfefc24
{client} send application_data record: {client} send application_data record:
payload (6 octets): 414243444546 payload (6 octets): 414243444546
ciphertext (28 octets): 1703010017fb2460 727da934b3a6058f
c3a4acb6ce74f0a0 8ef7f847 ciphertext (28 octets): 170301001713551f 6ab760f07913c0c9
b7f44e1a9df88ad9 3025e01b
{server} extract secret "early" (same as client) {server} extract secret "early" (same as client)
{server} calculate finished "tls13 finished" (same as client) {server} calculate finished "tls13 finished" (same as client)
{server} create an ephemeral x25519 key pair: {server} create an ephemeral x25519 key pair:
private key (32 octets): 959df6054b219c94 dd0066ffd786a9da private key (32 octets): 325497b8ece5b646 c0a841465c720414
86871b99a55b58a7 435ce3a22a3f929d 1c3fac2b0fba03c2 1f798774ccd8ba8a
public key (32 octets): df70bd1d47959b2a dfd4b4cc6a62ce45 public key (32 octets): 40ecc2cce32711cc e41494baa7071fb8
a02e45106ef974c6 ccf49720920b0a4a 3fccf5f18f387422 f3908bc43284e111
{server} derive secret "tls13 c e traffic" (same as client) {server} derive secret "tls13 c e traffic" (same as client)
{server} send a ServerHello handshake message {server} send a ServerHello handshake message
{server} derive secret for handshake "tls13 derived": {server} derive secret for handshake "tls13 derived":
PRK (32 octets): bc9ef911288790a9 9e5ca2ea520d231e PRK (32 octets): 40718b9ebd2b349a 900a2b3742e7a0d2
c60a28e1e958e1c6 551dbbe0bedfe63b 3f227bee609e9825 4da761f9d145f7cb
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
info (49 octets): 00200d746c733133 2064657269766564 info (49 octets): 00200d746c733133 2064657269766564
20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93 20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 1d86e68a77be72ef ffa5684961146be3 output (32 octets): 3f86b90be314a149 af8854fa5c7457e5
d09a83eed9e29c08 0f94cdde489b2e66 b814940f059a68f6 58f4f09d5e7811d5
{server} extract secret "handshake": {server} extract secret "handshake":
salt (32 octets): 1d86e68a77be72ef ffa5684961146be3 salt (32 octets): 3f86b90be314a149 af8854fa5c7457e5
d09a83eed9e29c08 0f94cdde489b2e66 b814940f059a68f6 58f4f09d5e7811d5
ikm (32 octets): df9b4a07733c5460 fc088eb1db60f6eb ikm (32 octets): 9c9777daeca7583c 81361536a7533e8a
6a0c67080e3c842e eaa0021cdd860e26 2811abe9a3a2342a d806a04bc4db3635
secret (32 octets): 79975c2bb824f1ec 93b582e0f5bf7030 secret (32 octets): 735590cdccd25055 6d463feaba32b905
2a2f9d81bd477d8b c52cf4d669d5392a 96537834f13d851c dc224338bf3148f4
{server} derive secret "tls13 c hs traffic": {server} derive secret "tls13 c hs traffic":
PRK (32 octets): 79975c2bb824f1ec 93b582e0f5bf7030 PRK (32 octets): 735590cdccd25055 6d463feaba32b905
2a2f9d81bd477d8b c52cf4d669d5392a 96537834f13d851c dc224338bf3148f4
hash (32 octets): d4999a597a672010 646addfdf8a3583b hash (32 octets): 1159439062004376 603abad6721bb808
ff3b1217c0c04894 c680910bbd02b86a daea34558ebbf936 fa2c8dc05828b392
info (54 octets): 002012746c733133 2063206873207472 info (54 octets): 002012746c733133 2063206873207472
616666696320d499 9a597a672010646a ddfdf8a3583bff3b 6166666963201159 439062004376603a bad6721bb808daea
1217c0c04894c680 910bbd02b86a 34558ebbf936fa2c 8dc05828b392
output (32 octets): e553af85fd9769a9 d3467db9b5b29797 output (32 octets): 28a089b4223c8104 845ff09b7b9e0505
7526f2f1b9cc25c1 c265093353dbceed d6061bdd0ea263a7 40c2bbf5b53d8d44
{server} derive secret "tls13 s hs traffic": {server} derive secret "tls13 s hs traffic":
PRK (32 octets): 79975c2bb824f1ec 93b582e0f5bf7030 PRK (32 octets): 735590cdccd25055 6d463feaba32b905
2a2f9d81bd477d8b c52cf4d669d5392a 96537834f13d851c dc224338bf3148f4
hash (32 octets): d4999a597a672010 646addfdf8a3583b hash (32 octets): 1159439062004376 603abad6721bb808
ff3b1217c0c04894 c680910bbd02b86a daea34558ebbf936 fa2c8dc05828b392
info (54 octets): 002012746c733133 2073206873207472 info (54 octets): 002012746c733133 2073206873207472
616666696320d499 9a597a672010646a ddfdf8a3583bff3b 6166666963201159 439062004376603a bad6721bb808daea
1217c0c04894c680 910bbd02b86a 34558ebbf936fa2c 8dc05828b392
output (32 octets): a98f17d9d9d01b97 a8a9fcfe1aa80cf2 output (32 octets): 8115875ae8e698f7 47c3cf569d893ef8
f0efaf4448bab35c 025d0d3658ef495d 7fd6b819c71c9daf 829efe73a33b6e59
{server} derive secret for master "tls13 derived": {server} derive secret for master "tls13 derived":
PRK (32 octets): 79975c2bb824f1ec 93b582e0f5bf7030 PRK (32 octets): 735590cdccd25055 6d463feaba32b905
2a2f9d81bd477d8b c52cf4d669d5392a 96537834f13d851c dc224338bf3148f4
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
info (49 octets): 00200d746c733133 2064657269766564 info (49 octets): 00200d746c733133 2064657269766564
20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93 20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): fbe525046f48f930 eac2f07f1d4c94cf output (32 octets): ef4b33b2a7895652 b7882b5d4be6abec
76aa0844f5e5874e f6512dccc7e5164f f20c5c49ee18eb05 4dabbf5fe46958fd
{server} extract secret "master": {server} extract secret "master":
salt (32 octets): fbe525046f48f930 eac2f07f1d4c94cf salt (32 octets): ef4b33b2a7895652 b7882b5d4be6abec
76aa0844f5e5874e f6512dccc7e5164f f20c5c49ee18eb05 4dabbf5fe46958fd
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): 53850ec90133d5cd 448fa5200e7683b1 secret (32 octets): 6cfe175844d4b474 fdeb9ef04b2607f7
19236c0fe93dc8b6 cad87f9ffee80f67 ca50bc782c804aab 38502015ae8a48c4
{server} send handshake record: {server} send handshake record:
payload (88 octets): 020000547f147535 eed9d16cb9437c49 payload (88 octets): 020000547f158451 4164fe812b870498
bed2329972bacd25 bb6708cef33db49b c96bd1b09cb31301 b893365b4376cd74 54d12ac987327ce1 670ef1aaaa991301
002e002900020000 00280024001d0020 df70bd1d47959b2a 002e002900020000 00280024001d0020 40ecc2cce32711cc
dfd4b4cc6a62ce45 a02e45106ef974c6 ccf49720920b0a4a e41494baa7071fb8 3fccf5f18f387422 f3908bc43284e111
ciphertext (93 octets): 1603010058020000 547f147535eed9d1 ciphertext (93 octets): 1603010058020000 547f1584514164fe
6cb9437c49bed232 9972bacd25bb6708 cef33db49bc96bd1 812b870498b89336 5b4376cd7454d12a c987327ce1670ef1
b09cb31301002e00 2900020000002800 24001d0020df70bd aaaa991301002e00 2900020000002800 24001d002040ecc2
1d47959b2adfd4b4 cc6a62ce45a02e45 106ef974c6ccf497 20920b0a4a cce32711cce41494 baa7071fb83fccf5 f18f387422f3908b c43284e111
{server} derive write traffic keys for handshake data: {server} derive write traffic keys for handshake data:
PRK (32 octets): a98f17d9d9d01b97 a8a9fcfe1aa80cf2 PRK (32 octets): 8115875ae8e698f7 47c3cf569d893ef8
f0efaf4448bab35c 025d0d3658ef495d 7fd6b819c71c9daf 829efe73a33b6e59
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 46de8022452f1a01 dae81c9c14282ab6 key output (16 octets): 4c8fba78ab70af97 d3b04500f481ab11
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 2d1a4735b9701a76 e6ea43a4 iv output (12 octets): 5f577c7b334038c1 f02b97fd
{server} send a EncryptedExtensions handshake message {server} send a EncryptedExtensions handshake message
{server} calculate finished "tls13 finished": {server} calculate finished "tls13 finished":
PRK (32 octets): a98f17d9d9d01b97 a8a9fcfe1aa80cf2 PRK (32 octets): 8115875ae8e698f7 47c3cf569d893ef8
f0efaf4448bab35c 025d0d3658ef495d 7fd6b819c71c9daf 829efe73a33b6e59
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): 50c8ac03c17b913f 6d3e5a1d9f884eaa output (32 octets): b0f22d31540198c4 ccac2ad418cbae8e
6a01596674c96228 8b82a3becb43c8c3 0aa427339e820fef 493dfb708a1e2c6c
{server} send a Finished handshake message {server} send a Finished handshake message
{server} send handshake record: {server} send handshake record:
payload (74 octets): 080000220020000a 00140012001d0017 payload (74 octets): 080000220020000a 00140012001d0017
0018001901000101 0102010301040000 0000002a00001400 0018001901000101 0102010301040000 0000002a00001400
00202f15bde7b069 12686d1dd4e09752 6119fab819f31004 0020d5027b937d18 ab2fb0dbce52a7d6 33f0d74cb903ebf9
23cd33cab05d579a aeb8 44fd0cab41ebff3d 375f
ciphertext (96 octets): 170301005b19e0b8 d03449cf5ad5a4a8 ciphertext (96 octets): 170301005b543211 a6b0602cc2e55337
b678b4cff2810a0d 3fb6f4573a3e95df 546560e8edb94ef6 f06c9d80915cb3ad 12f78fa6817185b9 99abd80e9378e2f7
6ad0ad7757cf572f 60898e54020eed36 8b8024e313750873 09e51a74dba3652a ff487c27de9e2a98 1fb9a39a70073f9a
b7df20af09b3dd72 06da50583e126217 d3e0ad6c7bcef09f 4dcb5557fd71b847 946ea75804208dcc ebb7b0c037e9c466
cc70e1f967014842 47993593815d1825
{server} derive secret "tls13 c ap traffic": {server} derive secret "tls13 c ap traffic":
PRK (32 octets): 53850ec90133d5cd 448fa5200e7683b1 PRK (32 octets): 6cfe175844d4b474 fdeb9ef04b2607f7
19236c0fe93dc8b6 cad87f9ffee80f67 ca50bc782c804aab 38502015ae8a48c4
hash (32 octets): c6cf7192a7fd5f7c dd0a659ac9f46320 hash (32 octets): 49115f0895594b92 ed1913be0e9da45f
8fc1bc089670fa8d de33a5ae2135c063 d0f922142c4f13da 77549d789f337ac4
info (54 octets): 002012746c733133 2063206170207472 info (54 octets): 002012746c733133 2063206170207472
616666696320c6cf 7192a7fd5f7cdd0a 659ac9f463208fc1 6166666963204911 5f0895594b92ed19 13be0e9da45fd0f9
bc089670fa8dde33 a5ae2135c063 22142c4f13da7754 9d789f337ac4
output (32 octets): 1053e7b2069c9d9b c6cf82f8deac40ec output (32 octets): caac7af75d60cc5e dbf362ab55abb794
927bbb9fd5ad49fe ae1ff4278e2a0031 2f7c966ce8db22c3 c5f7cc05a5b1b58c
{server} derive secret "tls13 s ap traffic": {server} derive secret "tls13 s ap traffic":
PRK (32 octets): 53850ec90133d5cd 448fa5200e7683b1 PRK (32 octets): 6cfe175844d4b474 fdeb9ef04b2607f7
19236c0fe93dc8b6 cad87f9ffee80f67 ca50bc782c804aab 38502015ae8a48c4
hash (32 octets): c6cf7192a7fd5f7c dd0a659ac9f46320 hash (32 octets): 49115f0895594b92 ed1913be0e9da45f
8fc1bc089670fa8d de33a5ae2135c063 d0f922142c4f13da 77549d789f337ac4
info (54 octets): 002012746c733133 2073206170207472 info (54 octets): 002012746c733133 2073206170207472
616666696320c6cf 7192a7fd5f7cdd0a 659ac9f463208fc1 6166666963204911 5f0895594b92ed19 13be0e9da45fd0f9
bc089670fa8dde33 a5ae2135c063 22142c4f13da7754 9d789f337ac4
output (32 octets): 117f89a3ba4efc76 5b2b940c62a31f06 output (32 octets): c1ac084ddbd228ed feeeecb6a3a75627
304cb3877d117131 1edeab60a6abc91f cc93d862b0af9237 3a90fd6df1040c6d
{server} derive secret "tls13 exp master": {server} derive secret "tls13 exp master":
PRK (32 octets): 53850ec90133d5cd 448fa5200e7683b1 PRK (32 octets): 6cfe175844d4b474 fdeb9ef04b2607f7
19236c0fe93dc8b6 cad87f9ffee80f67 ca50bc782c804aab 38502015ae8a48c4
hash (32 octets): c6cf7192a7fd5f7c dd0a659ac9f46320 hash (32 octets): 49115f0895594b92 ed1913be0e9da45f
8fc1bc089670fa8d de33a5ae2135c063 d0f922142c4f13da 77549d789f337ac4
info (52 octets): 002010746c733133 20657870206d6173 info (52 octets): 002010746c733133 20657870206d6173
74657220c6cf7192 a7fd5f7cdd0a659a c9f463208fc1bc08 7465722049115f08 95594b92ed1913be 0e9da45fd0f92214
9670fa8dde33a5ae 2135c063 2c4f13da77549d78 9f337ac4
output (32 octets): 882fb13091b8f95e 5c65aa3d807e4323 output (32 octets): b060de35b5d6c782 0324c761c716efca
64731f93c69018ae c054ec387f27982c bb58870ab264aae8 10a4caa122327656
{server} derive write traffic keys for application data: {server} derive write traffic keys for application data:
PRK (32 octets): 117f89a3ba4efc76 5b2b940c62a31f06 PRK (32 octets): c1ac084ddbd228ed feeeecb6a3a75627
304cb3877d117131 1edeab60a6abc91f cc93d862b0af9237 3a90fd6df1040c6d
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 40dd3fc22423a700 776b1cce944e7aa3 key output (16 octets): 2326cdc28deb238d 82e7c220c437e78b
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 4b49f66dd01682ea 569164a7 iv output (12 octets): 8719ac805d15be7d c733a9f2
{server} derive read traffic keys for early application data (same {server} derive read traffic keys for early application data (same
as client write traffic keys) as client write traffic keys)
{client} derive secret for handshake "tls13 derived": {client} derive secret for handshake "tls13 derived":
PRK (32 octets): bc9ef911288790a9 9e5ca2ea520d231e PRK (32 octets): 40718b9ebd2b349a 900a2b3742e7a0d2
c60a28e1e958e1c6 551dbbe0bedfe63b 3f227bee609e9825 4da761f9d145f7cb
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
info (49 octets): 00200d746c733133 2064657269766564 info (49 octets): 00200d746c733133 2064657269766564
20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93 20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 1d86e68a77be72ef ffa5684961146be3 output (32 octets): 3f86b90be314a149 af8854fa5c7457e5
d09a83eed9e29c08 0f94cdde489b2e66 b814940f059a68f6 58f4f09d5e7811d5
{client} extract secret "handshake": {client} extract secret "handshake":
salt (32 octets): 1d86e68a77be72ef ffa5684961146be3 salt (32 octets): 3f86b90be314a149 af8854fa5c7457e5
d09a83eed9e29c08 0f94cdde489b2e66 b814940f059a68f6 58f4f09d5e7811d5
ikm (32 octets): df9b4a07733c5460 fc088eb1db60f6eb ikm (32 octets): 9c9777daeca7583c 81361536a7533e8a
6a0c67080e3c842e eaa0021cdd860e26 2811abe9a3a2342a d806a04bc4db3635
secret (32 octets): 79975c2bb824f1ec 93b582e0f5bf7030 secret (32 octets): 735590cdccd25055 6d463feaba32b905
2a2f9d81bd477d8b c52cf4d669d5392a 96537834f13d851c dc224338bf3148f4
{client} derive secret "tls13 c hs traffic" (same as server) {client} derive secret "tls13 c hs traffic" (same as server)
{client} derive secret "tls13 s hs traffic" (same as server) {client} derive secret "tls13 s hs traffic" (same as server)
{client} derive secret for master "tls13 derived" (same as server) {client} derive secret for master "tls13 derived" (same as server)
{client} extract secret "master" (same as server) {client} extract secret "master" (same as server)
{client} derive read traffic keys for handshake data: {client} derive read traffic keys for handshake data:
PRK (32 octets): a98f17d9d9d01b97 a8a9fcfe1aa80cf2 PRK (32 octets): 8115875ae8e698f7 47c3cf569d893ef8
f0efaf4448bab35c 025d0d3658ef495d 7fd6b819c71c9daf 829efe73a33b6e59
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 46de8022452f1a01 dae81c9c14282ab6 key output (16 octets): 4c8fba78ab70af97 d3b04500f481ab11
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 2d1a4735b9701a76 e6ea43a4 iv output (12 octets): 5f577c7b334038c1 f02b97fd
{client} calculate finished "tls13 finished" (same as server) {client} calculate finished "tls13 finished" (same as server)
{client} derive secret "tls13 c ap traffic" (same as server) {client} derive secret "tls13 c ap traffic" (same as server)
{client} derive secret "tls13 s ap traffic" (same as server) {client} derive secret "tls13 s ap traffic" (same as server)
{client} derive secret "tls13 exp master" (same as server) {client} derive secret "tls13 exp master" (same as server)
{client} send a EndOfEarlyData handshake message {client} send a EndOfEarlyData handshake message
skipping to change at page 22, line 35 skipping to change at page 23, line 4
{client} calculate finished "tls13 finished" (same as server) {client} calculate finished "tls13 finished" (same as server)
{client} derive secret "tls13 c ap traffic" (same as server) {client} derive secret "tls13 c ap traffic" (same as server)
{client} derive secret "tls13 s ap traffic" (same as server) {client} derive secret "tls13 s ap traffic" (same as server)
{client} derive secret "tls13 exp master" (same as server) {client} derive secret "tls13 exp master" (same as server)
{client} send a EndOfEarlyData handshake message {client} send a EndOfEarlyData handshake message
{client} send handshake record: {client} send handshake record:
payload (4 octets): 05000000 payload (4 octets): 05000000
ciphertext (26 octets): 17030100155d2a07 204498a910fd60e4 ciphertext (26 octets): 1703010015f7ba63 761efb5d0f267ff7
6eb384049ec93d62 b12c a7b52d308d9dfbd5 7fbb
{client} derive write traffic keys for handshake data: {client} derive write traffic keys for handshake data:
PRK (32 octets): e553af85fd9769a9 d3467db9b5b29797 PRK (32 octets): 28a089b4223c8104 845ff09b7b9e0505
7526f2f1b9cc25c1 c265093353dbceed d6061bdd0ea263a7 40c2bbf5b53d8d44
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 867143c4068df3a5 ae6b12a486b9b847 key output (16 octets): ae0206779a397d39 abc27bf76257a20c
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 5e04c80f859988e7 c102c719
iv output (12 octets): 92749db888b7a638 c8896347
{client} derive read traffic keys for application data (same as {client} derive read traffic keys for application data (same as
server write traffic keys) server write traffic keys)
{client} calculate finished "tls13 finished": {client} calculate finished "tls13 finished":
PRK (32 octets): e553af85fd9769a9 d3467db9b5b29797 PRK (32 octets): 28a089b4223c8104 845ff09b7b9e0505
7526f2f1b9cc25c1 c265093353dbceed d6061bdd0ea263a7 40c2bbf5b53d8d44
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): 17c916392da3bfd7 1448ad824b4ec15e output (32 octets): e1e5a35bd3665879 b4aa860ac35bfb7f
062a7da6925fd07e 9e3ed647a38555ed 260bb3aeffc3382c a0cb136e36350629
{client} send a Finished handshake message {client} send a Finished handshake message
{client} send handshake record: {client} send handshake record:
payload (36 octets): 1400002064283341 14b550e38e4b03ef payload (36 octets): 14000020f92d6397 71bceb3174f8bd06
e0fba441c3e73804 76bae41722a0ab8e be0f8b67 7886f673ba9a051e d6c8f46e42bf58db 1921c638
ciphertext (58 octets): 17030100351f82bd 499964e8f8b70cb4 ciphertext (58 octets): 1703010035dcaef2 afb9d1372ab1172f
85cc0dd0efe07561 887202f33db44327 3d667fe7d1a48cb2 1a5570b78580d242 fe83be1c779caf21 c3192a14c6a45388
7502638cf4fc2b99 bc7efa1f1e33d210 186d 5676124ae5008c2b a38695eb153f48e4 110a
{client} derive write traffic keys for application data: {client} derive write traffic keys for application data:
PRK (32 octets): 1053e7b2069c9d9b c6cf82f8deac40ec PRK (32 octets): caac7af75d60cc5e dbf362ab55abb794
927bbb9fd5ad49fe ae1ff4278e2a0031 2f7c966ce8db22c3 c5f7cc05a5b1b58c
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 38c79b0728fa3451 774f093adac1dd04 key output (16 octets): a0c4168c98e0c4ad 3a0e96fdd011484d
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): a3d605be250cfd5d 209615ee iv output (12 octets): 7d97ef662f0667c8 f5041b4c
{client} derive secret "tls13 res master": {client} derive secret "tls13 res master":
PRK (32 octets): 53850ec90133d5cd 448fa5200e7683b1 PRK (32 octets): 6cfe175844d4b474 fdeb9ef04b2607f7
19236c0fe93dc8b6 cad87f9ffee80f67 ca50bc782c804aab 38502015ae8a48c4
hash (32 octets): 2233547d4b607f2b 5f516e0f29f467d9 hash (32 octets): 339cbe6f1a5e94b4 199425efb7d37343
88e805512434d38a 87154d47488b72b4 2bc262558fd5f948 949bae9ba3d54d2e
info (52 octets): 002010746c733133 20726573206d6173 info (52 octets): 002010746c733133 20726573206d6173
746572202233547d 4b607f2b5f516e0f 29f467d988e80551 74657220339cbe6f 1a5e94b4199425ef b7d373432bc26255
2434d38a87154d47 488b72b4 8fd5f948949bae9b a3d54d2e
output (32 octets): 91eeb3e2bb46fcf6 810ec7bff5c1d905 output (32 octets): 500175fc5b33fcf0 727df04f55f97ecb
22d1cc1b196e3ef4 a72f6f6bd86f5aae 09cabce818b23fc1 57ea9feb3cd45a61
{server} derive read traffic keys for handshake data: {server} derive read traffic keys for handshake data:
PRK (32 octets): e553af85fd9769a9 d3467db9b5b29797 PRK (32 octets): 28a089b4223c8104 845ff09b7b9e0505
7526f2f1b9cc25c1 c265093353dbceed d6061bdd0ea263a7 40c2bbf5b53d8d44
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 867143c4068df3a5 ae6b12a486b9b847 key output (16 octets): ae0206779a397d39 abc27bf76257a20c
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 5e04c80f859988e7 c102c719 iv output (12 octets): 92749db888b7a638 c8896347
{server} calculate finished "tls13 finished" (same as client) {server} calculate finished "tls13 finished" (same as client)
{server} derive read traffic keys for application data (same as {server} derive read traffic keys for application data (same as
client write traffic keys) client write traffic keys)
{server} derive secret "tls13 res master" (same as client) {server} derive secret "tls13 res master" (same as client)
{client} send application_data record: {client} send application_data record:
payload (50 octets): 0001020304050607 08090a0b0c0d0e0f payload (50 octets): 0001020304050607 08090a0b0c0d0e0f
1011121314151617 18191a1b1c1d1e1f 2021222324252627 1011121314151617 18191a1b1c1d1e1f 2021222324252627
28292a2b2c2d2e2f 3031 28292a2b2c2d2e2f 3031
ciphertext (72 octets): 1703010043108855 d836d933a3b33e5e ciphertext (72 octets): 1703010043ff683d 8a38b703fd3ebf8b
3bcccfe9ebbb75ad 3d4ee46f02063528 384adfec59cede3b eac999691ca766db bdf194e607cafe0e ec111de379a8568e
13d5dd68442833ef 1c13014af62d56e3 c9661c0eb0ef4fdc 716277b5cda1f932 7d1c00f074af3144 42ff59d12762932c
e7808b45f077ca2b 7c7a49bcf2c58657
{server} send application_data record: {server} send application_data record:
payload (50 octets): 0001020304050607 08090a0b0c0d0e0f payload (50 octets): 0001020304050607 08090a0b0c0d0e0f
1011121314151617 18191a1b1c1d1e1f 2021222324252627 1011121314151617 18191a1b1c1d1e1f 2021222324252627
28292a2b2c2d2e2f 3031 28292a2b2c2d2e2f 3031
ciphertext (72 octets): 1703010043c23be9 5ad85b168bd2e206 ciphertext (72 octets): 1703010043aa88fd 1ad3269a01c7cf34
cd17b2b598f67cdf 558992521a6ed4ec eeff45ec22a93675 4970ab14cffe7743 97137cf1575c916a e01f697f81f57283
1bd733fc63e3a98d 092dcd93ec848c08 afdfda839f524e2e d666009af2e153cc 2c7adec41f650bba 42c14b36a75e0a7b
69b474197cae81cb 742227357e1fa5b4
{client} send alert record: {client} send alert record:
payload (2 octets): 0100 payload (2 octets): 0100
ciphertext (24 octets): 1703010013c4f33d 08ac5ad28a35c0b3 ciphertext (24 octets): 17030100138a3bec b5cee5fbce9f4421
2559bf45718f9bc7 1058d9b48c308476
{server} send alert record: {server} send alert record:
payload (2 octets): 0100 payload (2 octets): 0100
ciphertext (24 octets): 17030100139f73be 8cc18eb517547f85 ciphertext (24 octets): 1703010013053a76 936d5b173ba833c9
26b1219f757cdc2d dc9f45d4f7d8e04b
5. HelloRetryRequest 5. HelloRetryRequest
In this example, the client initiates a handshake with an X25519 In this example, the client initiates a handshake with an X25519
[RFC7748] share. The server however prefers P-256 [FIPS186] and [RFC7748] share. The server however prefers P-256 [FIPS186] and
sends a HelloRetryRequest that requires the client to generate a key sends a HelloRetryRequest that requires the client to generate a key
share on the P-256 curve. share on the P-256 curve.
{client} create an ephemeral x25519 key pair: {client} create an ephemeral x25519 key pair:
private key (32 octets): 68f119d51cf43e70 b7bc4080d5911317 private key (32 octets): 674b85de6a82fa78 fc44ed35ea420c56
b22482211908f4a0 7cd3ee6148f05a65 ab2327c447874726 743247b6a68caa24
public key (32 octets): fff63faea1e4f9b0 8ae2fc158749f72a public key (32 octets): f40d38599d529b51 72bc83b8f3246657
b274015b21903399 434279416a1c3866 1d358f0d48d2b5ac e51901e0123b3b22
{client} send a ClientHello handshake message {client} send a ClientHello handshake message
{client} send handshake record: {client} send handshake record:
payload (174 octets): 010000aa03032b47 3d43b9e45db4ff9f payload (174 octets): 010000aa030308b5 ef1846029d644f18
9ae53f63f495bc90 a308136caa6570cd 6a3d682e23fc0000 b00041006116bb12 e2f0f60a209c25ac d1d4dc2daadf0000
0613011303130201 00007b0000000b00 0900000673657276 0613011303130201 00007b0000000b00 0900000673657276
6572ff0100010000 0a00080006001d00 1700180028002600 6572ff0100010000 0a00080006001d00 1700180028002600
24001d0020fff63f aea1e4f9b08ae2fc 158749f72ab27401 24001d0020f40d38 599d529b5172bc83 b8f32466571d358f
5b21903399434279 416a1c3866002b00 03027f14000d0020 0d48d2b5ace51901 e0123b3b22002b00 03027f15000d0020
001e040305030603 0203080408050806 0401050106010201 001e040305030603 0203080408050806 0401050106010201
0402050206020202 002d00020101 0402050206020202 002d00020101
ciphertext (179 octets): 16030100ae010000 aa03032b473d43b9 ciphertext (179 octets): 16030100ae010000 aa030308b5ef1846
e45db4ff9f9ae53f 63f495bc90a30813 6caa6570cd6a3d68 029d644f18b00041 006116bb12e2f0f6 0a209c25acd1d4dc
2e23fc0000061301 130313020100007b 0000000b00090000 2daadf0000061301 130313020100007b 0000000b00090000
06736572766572ff 01000100000a0008 0006001d00170018 06736572766572ff 01000100000a0008 0006001d00170018
002800260024001d 0020fff63faea1e4 f9b08ae2fc158749 002800260024001d 0020f40d38599d52 9b5172bc83b8f324
f72ab274015b2190 3399434279416a1c 3866002b0003027f 66571d358f0d48d2 b5ace51901e0123b 3b22002b0003027f
14000d0020001e04 0305030603020308 0408050806040105 15000d0020001e04 0305030603020308 0408050806040105
0106010201040205 0206020202002d00 020101 0106010201040205 0206020202002d00 020101
{server} send a HelloRetryRequest handshake message {server} send a HelloRetryRequest handshake message
{server} send handshake record: {server} send handshake record:
payload (16 octets): 0600000c7f141301 0006002800020017 payload (16 octets): 0600000c7f151301 0006002800020017
ciphertext (21 octets): 1603010010060000 0c7f141301000600 ciphertext (21 octets): 1603010010060000 0c7f151301000600
2800020017 2800020017
{client} create an ephemeral P-256 key pair: {client} create an ephemeral P-256 key pair:
private key (32 octets): 686029ea60fdbf90 952a205f36867184 private key (32 octets): 3aaa3a2b63029d27 c8dd3a2ed7b1e354
21d39ccb83e1332e 6449da8f62a455f7 6fcc42698c293d1c 644156b94a69a643
public key (65 octets): 0439a9c0e3dea88c 76323ea8a30a779f public key (65 octets): 04652d99b80ef319 8ea71accdc077352
caa782d88935df99 ca2f94f386227247 066af9a46ebc7f88 4afb7ca17af0bef4 8b4883eebcba3e1e 1f447b9246083536
6f1d8e81a08779f2 6c5420c69609a68a 6762b91329670b5d e1 8e0ef8eb56a03d48 7ef6254ce51abd8d ab3e100a1caffc8c 9d
{client} send a ClientHello handshake message {client} send a ClientHello handshake message
{client} send handshake record: {client} send handshake record:
payload (207 octets): 010000cb03032b47 3d43b9e45db4ff9f payload (207 octets): 010000cb030308b5 ef1846029d644f18
9ae53f63f495bc90 a308136caa6570cd 6a3d682e23fc0000 b00041006116bb12 e2f0f60a209c25ac d1d4dc2daadf0000
0613011303130201 00009c0000000b00 0900000673657276 0613011303130201 00009c0000000b00 0900000673657276
6572ff0100010000 0a00080006001d00 1700180028004700 6572ff0100010000 0a00080006001d00 1700180028004700
45001700410439a9 c0e3dea88c76323e a8a30a779fcaa782 450017004104652d 99b80ef3198ea71a ccdc0773524afb7c
d88935df99ca2f94 f386227247066af9 a46ebc7f886f1d8e a17af0bef48b4883 eebcba3e1e1f447b 92460835368e0ef8
81a08779f26c5420 c69609a68a6762b9 1329670b5de1002b eb56a03d487ef625 4ce51abd8dab3e10 0a1caffc8c9d002b
0003027f14000d00 20001e0403050306 0302030804080508 0003027f15000d00 20001e0403050306 0302030804080508
0604010501060102 0104020502060202 02002d00020101 0604010501060102 0104020502060202 02002d00020101
ciphertext (212 octets): 16030100cf010000 cb03032b473d43b9 ciphertext (212 octets): 16030100cf010000 cb030308b5ef1846
e45db4ff9f9ae53f 63f495bc90a30813 6caa6570cd6a3d68 029d644f18b00041 006116bb12e2f0f6 0a209c25acd1d4dc
2e23fc0000061301 130313020100009c 0000000b00090000 2daadf0000061301 130313020100009c 0000000b00090000
06736572766572ff 01000100000a0008 0006001d00170018 06736572766572ff 01000100000a0008 0006001d00170018
0028004700450017 00410439a9c0e3de a88c76323ea8a30a 0028004700450017 004104652d99b80e f3198ea71accdc07
779fcaa782d88935 df99ca2f94f38622 7247066af9a46ebc 73524afb7ca17af0 bef48b4883eebcba 3e1e1f447b924608
7f886f1d8e81a087 79f26c5420c69609 a68a6762b9132967 35368e0ef8eb56a0 3d487ef6254ce51a bd8dab3e100a1caf
0b5de1002b000302 7f14000d0020001e 0403050306030203 fc8c9d002b000302 7f15000d0020001e 0403050306030203
0804080508060401 0501060102010402 050206020202002d 00020101 0804080508060401 0501060102010402 050206020202002d 00020101
{server} extract secret "early": {server} extract secret "early":
salt: (absent) salt: (absent)
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2 secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2
10adf300aa1f2660 e1b22e10f170f92a 10adf300aa1f2660 e1b22e10f170f92a
{server} create an ephemeral P-256 key pair: {server} create an ephemeral P-256 key pair:
private key (32 octets): cf5cb678b37d617e 4e3b978d52758db3 private key (32 octets): fb5b23536a4ef874 f8b4a44bb3b0886d
5bee4147c5a4c48d f62ec7f3e26b7b0d 046790b682b9aaac 75233edad5020c7d
public key (65 octets): 0438bafba512d58e 57a62ceaee1c0c3e public key (65 octets): 047e759436bca19e d0358962b7d0ded4
5678082cacf126d3 dac009720572d79f 341f7098b24fb7f1 2e744076da23ec8a 9633cf172709ee2a c7e8a06b40fbe5bf
b8ee222d6433f310 e8862c8b9f2c9337 fe6eb1a54665d465 3b e41afc03a1b78920 68d610b840301e2d 2e1f40787a183f3a 2b
{server} send a ServerHello handshake message {server} send a ServerHello handshake message
{server} derive secret for handshake "tls13 derived": {server} derive secret for handshake "tls13 derived":
PRK (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2 PRK (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2
10adf300aa1f2660 e1b22e10f170f92a 10adf300aa1f2660 e1b22e10f170f92a
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
skipping to change at page 27, line 41 skipping to change at page 28, line 13
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 6f2615a108c702c5 678f54fc9dbab697 output (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
{server} extract secret "handshake": {server} extract secret "handshake":
salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697 salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
ikm (32 octets): df4cde9bf625ee9b e21cc6bd4a51f662 ikm (32 octets): 90975442819df737 9e40c060c3b641f3
00c857b0b104cb68 7731c3851eefbc9a a315ccbf3f4e1542 f3bbe90e0089f7bc
secret (32 octets): 61ebb724b8eaa8d4 83de05c018a83947 secret (32 octets): 5558d9a4084111c3 5092aba9f314a046
b5c2a866847154ce 2b2e33fce8e538cf 852fc282106ad91f 8aad94dc2fcd0a6c
{server} derive secret "tls13 c hs traffic": {server} derive secret "tls13 c hs traffic":
PRK (32 octets): 61ebb724b8eaa8d4 83de05c018a83947 PRK (32 octets): 5558d9a4084111c3 5092aba9f314a046
b5c2a866847154ce 2b2e33fce8e538cf 852fc282106ad91f 8aad94dc2fcd0a6c
hash (32 octets): dad1f7541198d854 97203f23e9856b9a hash (32 octets): d615e55df3513f10 48462b9b7cc7c110
97937e6a2d22f3c0 1e22be12bee0ee56 71223806e0fff9fa 94ffc0f7432a184b
info (54 octets): 002012746c733133 2063206873207472 info (54 octets): 002012746c733133 2063206873207472
616666696320dad1 f7541198d8549720 3f23e9856b9a9793 616666696320d615 e55df3513f104846 2b9b7cc7c1107122
7e6a2d22f3c01e22 be12bee0ee56 3806e0fff9fa94ff c0f7432a184b
output (32 octets): f52e0805a26cd615 ec012fd6b1950258 output (32 octets): c11db498010bc4f6 6242a786c862a985
a9aae77b336a8cac a443df877e99ec61 e358018874b6ed04 61fd92e52696ee76
{server} derive secret "tls13 s hs traffic": {server} derive secret "tls13 s hs traffic":
PRK (32 octets): 61ebb724b8eaa8d4 83de05c018a83947 PRK (32 octets): 5558d9a4084111c3 5092aba9f314a046
b5c2a866847154ce 2b2e33fce8e538cf 852fc282106ad91f 8aad94dc2fcd0a6c
hash (32 octets): dad1f7541198d854 97203f23e9856b9a hash (32 octets): d615e55df3513f10 48462b9b7cc7c110
97937e6a2d22f3c0 1e22be12bee0ee56 71223806e0fff9fa 94ffc0f7432a184b
info (54 octets): 002012746c733133 2073206873207472 info (54 octets): 002012746c733133 2073206873207472
616666696320dad1 f7541198d8549720 3f23e9856b9a9793 616666696320d615 e55df3513f104846 2b9b7cc7c1107122
7e6a2d22f3c01e22 be12bee0ee56 3806e0fff9fa94ff c0f7432a184b
output (32 octets): ed0ea7ec428dd7bb 3f89df21b4679286 output (32 octets): fd1b408bf0324ded 52e449708b1c310c
fb19f61c5fe0ef81 35c0f54d687bc50c 50f0a6cd8dab23b6 e4e5e3a413ba259d
{server} derive secret for master "tls13 derived": {server} derive secret for master "tls13 derived":
PRK (32 octets): 61ebb724b8eaa8d4 83de05c018a83947 PRK (32 octets): 5558d9a4084111c3 5092aba9f314a046
b5c2a866847154ce 2b2e33fce8e538cf 852fc282106ad91f 8aad94dc2fcd0a6c
hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924 hash (32 octets): e3b0c44298fc1c14 9afbf4c8996fb924
27ae41e4649b934c a495991b7852b855 27ae41e4649b934c a495991b7852b855
info (49 octets): 00200d746c733133 2064657269766564 info (49 octets): 00200d746c733133 2064657269766564
20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93 20e3b0c44298fc1c 149afbf4c8996fb9 2427ae41e4649b93
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 3f0c9f13e5dd95f7 27c7bf2c82b4f75f output (32 octets): 7d54cbf473252842 3046df3f0d49d87f
91e26cf5e1f89ae5 36becd5b48f08357 6c11ec65b9e21cbf 91163e3b92a68707
{server} extract secret "master": {server} extract secret "master":
salt (32 octets): 3f0c9f13e5dd95f7 27c7bf2c82b4f75f salt (32 octets): 7d54cbf473252842 3046df3f0d49d87f
91e26cf5e1f89ae5 36becd5b48f08357 6c11ec65b9e21cbf 91163e3b92a68707
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): 23bdfa8bb085b65a 8095c55a79f20ab0 secret (32 octets): 76b73d53db71bd7a a61471dde13a7364
7646d7bac8c67803 2aa5985df2a1b7c1 51802efa6881b88a 77ef23e4029e01d5
{server} send handshake record: {server} send handshake record:
payload (115 octets): 0200006f7f1439d0 5400265319e5a369 payload (115 octets): 0200006f7f155007 6d6c334421c0ac06
3e2a5479b46a5e8c 10a12daa5d01cdc0 cb21730536d51301 4f6e47a6409c0417 95345ee3f78ede5a 3c35c8d279a81301
0049002800450017 00410438bafba512 d58e57a62ceaee1c 0049002800450017 0041047e759436bc a19ed0358962b7d0
0c3e5678082cacf1 26d3dac009720572 d79f341f7098b24f ded42e744076da23 ec8a9633cf172709 ee2ac7e8a06b40fb
b7f1b8ee222d6433 f310e8862c8b9f2c 9337fe6eb1a54665 d4653b e5bfe41afc03a1b7 892068d610b84030 1e2d2e1f40787a18 3f3a2b
ciphertext (120 octets): 1603010073020000 6f7f1439d0540026 ciphertext (120 octets): 1603010073020000 6f7f1550076d6c33
5319e5a3693e2a54 79b46a5e8c10a12d aa5d01cdc0cb2173 4421c0ac064f6e47 a6409c041795345e e3f78ede5a3c35c8
0536d51301004900 2800450017004104 38bafba512d58e57 d279a81301004900 2800450017004104 7e759436bca19ed0
a62ceaee1c0c3e56 78082cacf126d3da c009720572d79f34 358962b7d0ded42e 744076da23ec8a96 33cf172709ee2ac7
1f7098b24fb7f1b8 ee222d6433f310e8 862c8b9f2c9337fe e8a06b40fbe5bfe4 1afc03a1b7892068 d610b840301e2d2e
6eb1a54665d4653b 1f40787a183f3a2b
{server} derive write traffic keys for handshake data: {server} derive write traffic keys for handshake data:
PRK (32 octets): ed0ea7ec428dd7bb 3f89df21b4679286 PRK (32 octets): fd1b408bf0324ded 52e449708b1c310c
fb19f61c5fe0ef81 35c0f54d687bc50c 50f0a6cd8dab23b6 e4e5e3a413ba259d
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): ea3b74f7e0223840 dc5fbc1d3864b73b key output (16 octets): e7fc5d7c880935bc 55412aecbc2773fb
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 97621bb779bba789 402021f6 iv output (12 octets): 3a3a4d62924d7a1b d2235c95
{server} send a EncryptedExtensions handshake message {server} send a EncryptedExtensions handshake message
{server} send a Certificate handshake message {server} send a Certificate handshake message
{server} send a CertificateVerify handshake message {server} send a CertificateVerify handshake message
{server} calculate finished "tls13 finished": {server} calculate finished "tls13 finished":
PRK (32 octets): ed0ea7ec428dd7bb 3f89df21b4679286 PRK (32 octets): fd1b408bf0324ded 52e449708b1c310c
fb19f61c5fe0ef81 35c0f54d687bc50c 50f0a6cd8dab23b6 e4e5e3a413ba259d
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): 03c5ee66699c919c db206db4053b9314 output (32 octets): e01b611aca50606e 1f247d7bce2467dd
f56449f899baead8 c0d82b63fefaa19b b01bf06041d1e849 a67cdbacc88cc47b
{server} send a Finished handshake message {server} send a Finished handshake message
{server} send handshake record: {server} send handshake record:
payload (639 octets): 080000120010000a 0008000600170018 payload (639 octets): 080000120010000a 0008000600170018
001d000000000b00 01b9000001b50001 b0308201ac308201 001d000000000b00 01b9000001b50001 b0308201ac308201
15a0030201020201 02300d06092a8648 86f70d01010b0500 15a0030201020201 02300d06092a8648 86f70d01010b0500
300e310c300a0603 5504031303727361 301e170d31363037 300e310c300a0603 5504031303727361 301e170d31363037
3330303132333539 5a170d3236303733 303031323335395a 3330303132333539 5a170d3236303733 303031323335395a
skipping to change at page 30, line 29 skipping to change at page 30, line 47
4d449a6d38e22a5f da43084674803053 0ef0461c8ca9d9ef 4d449a6d38e22a5f da43084674803053 0ef0461c8ca9d9ef
bfae8ea6d1d03e2b d193eff0ab9a8002 c47428a6d35a8d88 bfae8ea6d1d03e2b d193eff0ab9a8002 c47428a6d35a8d88
d79f7f1e3f020301 0001a31a30183009 0603551d13040230 d79f7f1e3f020301 0001a31a30183009 0603551d13040230
00300b0603551d0f 0404030205a0300d 06092a864886f70d 00300b0603551d0f 0404030205a0300d 06092a864886f70d
01010b0500038181 0085aad2a0e5b927 6b908c65f73a7267 01010b0500038181 0085aad2a0e5b927 6b908c65f73a7267
170618a54c5f8a7b 337d2df7a5943654 17f2eae8f8a58c8f 170618a54c5f8a7b 337d2df7a5943654 17f2eae8f8a58c8f
8172f9319cf36b7f d6c55b80f21a0301 5156726096fd335e 8172f9319cf36b7f d6c55b80f21a0301 5156726096fd335e
5e67f2dbf102702e 608ccae6bec1fc63 a42a99be5c3eb710 5e67f2dbf102702e 608ccae6bec1fc63 a42a99be5c3eb710
7c3c54e9b9eb2bd5 203b1c3b84e0a8b2 f759409ba3eac9d9 7c3c54e9b9eb2bd5 203b1c3b84e0a8b2 f759409ba3eac9d9
1d402dcc0cc8f896 1229ac9187b42b4d e100000f00008408 1d402dcc0cc8f896 1229ac9187b42b4d e100000f00008408
0400806f43289ae7 efa4a473bedf613e 4e92e9554fb2871a 04008004fc5804d8 481fdfd8c6319ef6 3968daf9ec416c6c
df28b8612b27998c be8e8690f4c81b8a cb3fb981396962e0 819e48253bdf016a bacfadfc69b0bb79 01f899429ffbe89d
7a506b790cb6cb07 1caeb49acc217f39 058d7375cf9d2174 937da491491950ee 29c78ce320226366 fc0575800d3a29b6
a8fa29ba60dc35ef 7a43827278489428 2c75d4750400532e f383d417454ff4b4 0c12da2ac4d9a474 3ced8e420a43023e
069fafa01577b431 bbf764f4be901643 07a30b59081c286b a1548407dd2b6b4a d0409da648ad80c8 86a6e7cca6764fab
18ba58649637d676 d5cee614000020bc 521faec41d6c9d2d 5b77612380a99dfa 7cf4f314000020e8 7b0043df73761a9f
e9f0de7887121fb7 e7a6000a82caa148 565ab19e0aef8f 1b1a54f7c189a3c8 2f1d7647ee867ad0 db8ea5df20ab7b
ciphertext (661 octets): 1703010290b02e90 0efe58c26b437b75 ciphertext (661 octets): 1703010290f458e3 0169c36dfd1f876f
4cb31ff7e592e595 405b265fa8c3f2bd 6b9a168fbaf70940 fe054670b609e771 9bc0b24dca1cb156 f6aa69e6d998df26
91d27872271925ac b0e8d878f17a60ea c39a6b233bcbb2f4 bce69234737c12f3 05f230f03b8a9217 cd4d964ae442f1f7
9f6774b77c11827e e77798976db2b76b c236a8cae6751c0b 358f732e152d9b18 25620233814e8777 f7d046ba44c7c6a4
498402f364d0118c d21483365d82a82e df95f3bcf5a2a0ed 8eb468739395642b 006fa132e735b8e0 17b51898ece31dd9
3941ef0be0619fbc 2a4489c241f2fc75 3381cf064813ca4e e9ff44c75cbee059 9dab03d006336d76 505813f8ce64964d
dec9bd213c29f4cd 5c3d7b52bc34ef9d 6d3db2e3ce370414 6064bd9c90fa5e72 a50b76baeecd9c64 b548be8032c450e6
d9e87c18e7190448 8dd0d7cd359fcb2d ee00aba5283c2dd4 c2c8abb105bc394d 9bc858f3e2ce6bf8 d6314ba505f3908a
31afa8e17bf25643 00fbc24f11ae9fb6 6c4cec5f38b03e10 e9990abfc30a8e64 62a6ef98a05d8c53 47dd92a866619a93
fbb510b4f3a716e8 4e395128b526aa00 24425fec5e0d9072 87803ddb019b25a4 0cfbedab80f920d0 e5e294433b568434
b42fdabfa93686bb 0036963bf3d6d122 fb205fb024c41422 e796610c9e972daa 0d412a5e4e25bf81 97943fbe74604002
7e2f054787af00aa b17b78ad2d5c31c1 5812c0420b0ea344 a6111dbe05439010 c1bbfbe50339dfd7 99f4d72e6853fcae
2f3f5197533e9325 082f44434e502d4e fb73c5987fd3ee55 7ea453bf0ccf5bfd 338787e45fac53f0 c808861524a7237b
228c92bd600e1f81 22a447caba8f2fd2 fbf49d43f99a441d b19484525eb88051 298c4d51cd8b9380 2a73c4ab9cc27084
2695809c89dc1c89 9c7975b8a78ec2a9 8399922e58d538f8 a69a0ee03be6b02f cd2cb5a66dde2b44 0920f408be16c408
009bc07b50573da6 1bbe41ef1f251ee9 dcca0e2d9e8c20fb 2e0a3dc6d8e15d37 e1f37c44c8433fcf ab9be408c54c074e
c3659b8eef131094 cc9effc3697ac767 248616db9576ccb1 bfa45f2af3d20559 23d2fd8a7c3c3c3d d7bf84d2826784af
b937775cd97aeb81 f015dcc4bc53143f 0337e90ad800f7cc 154ca2f5ca7ad8f7 c0e88cdbd7673551 4b49578726a8a26e
6c09b23352acbf06 59c1d0ac6a145342 9d288a83f2c16ecd 33ff1133d60d8f0e 2fddb6eea294b78d abdd2974dfb1cf53
419abf7bcfeb05df b70292296847cd7d d91d305ec162436b 3032d0aa71e3e603 e1d1a370c01fd1e9 0aefc1691f63c051
6e645028a3d9c068 1cd118093c9a9978 08585fc3ddecab33 c5957bea4c4a5033 63627279fec18a72 276b7cb3af42c92e
fff96c099b607516 4db17fb609747daf c511dcfe212c49e3 24a605e1316f303e 80a01c4f386b5aae bcef58cc09db8b29
399c74fe7d36b962 5206204cf411e42c 6b5da8c5cc7d522d 7b38ba6ac277a38f 67d78960d36ea48b 6685abf0cbe9b542
c8a7747f4cd08e50 a180ed43d8ac0a4c cbc93207e1bd667f caa644931dc22656 216cdcf145228c5e eafb8a930bb97619
e2f784eeeb5be6cc 22ffd75c2d134a02 7618bf3f270c4809 e772ed92f89a80da dee692e5cd3985db 2edc81cde6306a6a
58c2016507f7f825 dc7a116f7f06670b 8c926c47a919b4ec 93751e35f6054f84 96e26a2015ef0edc 502f8e96f19579aa
f8eab3c0451be841 e90a55e9ce7fee05 919525b0042e4943 3ff80c8ef8ab691e 498cf0f8d58a3c3c fcf3aed23f81e43b
4c70e792e055a6a6 50d69a4c9697bde8 0d8d004b41 2546fdcabd7c9a80 ad1e59b8dc9a6d0f 674c177eec
{server} derive secret "tls13 c ap traffic": {server} derive secret "tls13 c ap traffic":
PRK (32 octets): 23bdfa8bb085b65a 8095c55a79f20ab0 PRK (32 octets): 76b73d53db71bd7a a61471dde13a7364
7646d7bac8c67803 2aa5985df2a1b7c1 51802efa6881b88a 77ef23e4029e01d5
hash (32 octets): d35385d7ef5cda3f e72850e6b878c915 hash (32 octets): 3f44e23dcedd02ac fb53fa70cf0721d8
e603150fe9dd009a 83ebf3e8b73525dc e00d9e39bfa3ce91 705d1dc55caf300d
info (54 octets): 002012746c733133 2063206170207472 info (54 octets): 002012746c733133 2063206170207472
616666696320d353 85d7ef5cda3fe728 50e6b878c915e603 6166666963203f44 e23dcedd02acfb53 fa70cf0721d8e00d
150fe9dd009a83eb f3e8b73525dc 9e39bfa3ce91705d 1dc55caf300d
output (32 octets): 3e97f6ece946f6cf a25aac0c4294f752 output (32 octets): 7bbda44aef92ee2d a1523590895f2249
adf68ce3769ba8f1 a72140e960e00b75 b1bed03647d8bfee 273fb3ef3b25457c
{server} derive secret "tls13 s ap traffic": {server} derive secret "tls13 s ap traffic":
PRK (32 octets): 23bdfa8bb085b65a 8095c55a79f20ab0 PRK (32 octets): 76b73d53db71bd7a a61471dde13a7364
7646d7bac8c67803 2aa5985df2a1b7c1 51802efa6881b88a 77ef23e4029e01d5
hash (32 octets): d35385d7ef5cda3f e72850e6b878c915 hash (32 octets): 3f44e23dcedd02ac fb53fa70cf0721d8
e603150fe9dd009a 83ebf3e8b73525dc e00d9e39bfa3ce91 705d1dc55caf300d
info (54 octets): 002012746c733133 2073206170207472 info (54 octets): 002012746c733133 2073206170207472
616666696320d353 85d7ef5cda3fe728 50e6b878c915e603 6166666963203f44 e23dcedd02acfb53 fa70cf0721d8e00d
150fe9dd009a83eb f3e8b73525dc 9e39bfa3ce91705d 1dc55caf300d
output (32 octets): 9bf644ffdb8feb85 11240075595cb94f output (32 octets): 8e7767fb35fb9d93 341b5fe1ac2691b4
411a5682e3cb4a82 f0b1f7daf0322a92 f5cafb6bbe792b53 858b44acb3b6005e
{server} derive secret "tls13 exp master": {server} derive secret "tls13 exp master":
PRK (32 octets): 23bdfa8bb085b65a 8095c55a79f20ab0 PRK (32 octets): 76b73d53db71bd7a a61471dde13a7364
7646d7bac8c67803 2aa5985df2a1b7c1 51802efa6881b88a 77ef23e4029e01d5
hash (32 octets): d35385d7ef5cda3f e72850e6b878c915 hash (32 octets): 3f44e23dcedd02ac fb53fa70cf0721d8
e603150fe9dd009a 83ebf3e8b73525dc e00d9e39bfa3ce91 705d1dc55caf300d
info (52 octets): 002010746c733133 20657870206d6173 info (52 octets): 002010746c733133 20657870206d6173
74657220d35385d7 ef5cda3fe72850e6 b878c915e603150f 746572203f44e23d cedd02acfb53fa70 cf0721d8e00d9e39
e9dd009a83ebf3e8 b73525dc bfa3ce91705d1dc5 5caf300d
output (32 octets): c8dd1dcfbb99ea14 e3ad390c6a4cd3e0 output (32 octets): ba9a598a87e25c0c 963757951c84b1fa
c4f20c2221aa33e2 68eb807de344a179 6930ae37b7f10330 c79dec315bfb6f0f
{server} derive write traffic keys for application data: {server} derive write traffic keys for application data:
PRK (32 octets): 9bf644ffdb8feb85 11240075595cb94f PRK (32 octets): 8e7767fb35fb9d93 341b5fe1ac2691b4
411a5682e3cb4a82 f0b1f7daf0322a92 f5cafb6bbe792b53 858b44acb3b6005e
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): d46da4e755ba9e74 7a46246bda64c866 key output (16 octets): 6b3b6463ee2e9c63 167930f1cb496857
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 73deb5c4dfcc38ff 19bb9943 iv output (12 octets): 870b39a26785a453 dd0683a7
{server} derive read traffic keys for handshake data: {server} derive read traffic keys for handshake data:
PRK (32 octets): f52e0805a26cd615 ec012fd6b1950258 PRK (32 octets): c11db498010bc4f6 6242a786c862a985
a9aae77b336a8cac a443df877e99ec61 e358018874b6ed04 61fd92e52696ee76
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): 5fa4fe8df22a8449 86c47c46981a291a
key output (16 octets): f34edc87549aca05 6bf5d3ebbfb58934
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 018f4bc56b7fa73b 50a1b497 iv output (12 octets): d3bd79ca448e5692 571b9fe3
{client} extract secret "early": {client} extract secret "early":
salt: (absent) salt: (absent)
ikm (32 octets): 0000000000000000 0000000000000000 ikm (32 octets): 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2 secret (32 octets): 33ad0a1c607ec03b 09e6cd9893680ce2
10adf300aa1f2660 e1b22e10f170f92a 10adf300aa1f2660 e1b22e10f170f92a
skipping to change at page 33, line 23 skipping to change at page 33, line 40
4ca495991b7852b8 55 4ca495991b7852b8 55
output (32 octets): 6f2615a108c702c5 678f54fc9dbab697 output (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
{client} extract secret "handshake": {client} extract secret "handshake":
salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697 salt (32 octets): 6f2615a108c702c5 678f54fc9dbab697
16c076189c48250c ebeac3576c3611ba 16c076189c48250c ebeac3576c3611ba
ikm (32 octets): df4cde9bf625ee9b e21cc6bd4a51f662 ikm (32 octets): 90975442819df737 9e40c060c3b641f3
00c857b0b104cb68 7731c3851eefbc9a a315ccbf3f4e1542 f3bbe90e0089f7bc
secret (32 octets): 61ebb724b8eaa8d4 83de05c018a83947 secret (32 octets): 5558d9a4084111c3 5092aba9f314a046
b5c2a866847154ce 2b2e33fce8e538cf 852fc282106ad91f 8aad94dc2fcd0a6c
{client} derive secret "tls13 c hs traffic" (same as server) {client} derive secret "tls13 c hs traffic" (same as server)
{client} derive secret "tls13 s hs traffic" (same as server) {client} derive secret "tls13 s hs traffic" (same as server)
{client} derive secret for master "tls13 derived" (same as server) {client} derive secret for master "tls13 derived" (same as server)
{client} extract secret "master" (same as server) {client} extract secret "master" (same as server)
{client} derive read traffic keys for handshake data: {client} derive read traffic keys for handshake data:
PRK (32 octets): ed0ea7ec428dd7bb 3f89df21b4679286 PRK (32 octets): fd1b408bf0324ded 52e449708b1c310c
fb19f61c5fe0ef81 35c0f54d687bc50c 50f0a6cd8dab23b6 e4e5e3a413ba259d
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): ea3b74f7e0223840 dc5fbc1d3864b73b key output (16 octets): e7fc5d7c880935bc 55412aecbc2773fb
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 97621bb779bba789 402021f6 iv output (12 octets): 3a3a4d62924d7a1b d2235c95
{client} calculate finished "tls13 finished" (same as server) {client} calculate finished "tls13 finished" (same as server)
{client} derive secret "tls13 c ap traffic" (same as server) {client} derive secret "tls13 c ap traffic" (same as server)
{client} derive secret "tls13 s ap traffic" (same as server) {client} derive secret "tls13 s ap traffic" (same as server)
{client} derive secret "tls13 exp master" (same as server) {client} derive secret "tls13 exp master" (same as server)
{client} derive write traffic keys for handshake data (same as {client} derive write traffic keys for handshake data (same as
server read traffic keys) server read traffic keys)
{client} derive read traffic keys for application data (same as {client} derive read traffic keys for application data (same as
server write traffic keys) server write traffic keys)
skipping to change at page 34, line 16 skipping to change at page 34, line 35
{client} derive secret "tls13 exp master" (same as server) {client} derive secret "tls13 exp master" (same as server)
{client} derive write traffic keys for handshake data (same as {client} derive write traffic keys for handshake data (same as
server read traffic keys) server read traffic keys)
{client} derive read traffic keys for application data (same as {client} derive read traffic keys for application data (same as
server write traffic keys) server write traffic keys)
{client} calculate finished "tls13 finished": {client} calculate finished "tls13 finished":
PRK (32 octets): f52e0805a26cd615 ec012fd6b1950258 PRK (32 octets): c11db498010bc4f6 6242a786c862a985
a9aae77b336a8cac a443df877e99ec61 e358018874b6ed04 61fd92e52696ee76
hash (0 octets): (empty) hash (0 octets): (empty)
info (18 octets): 00200e746c733133 2066696e69736865 6400 info (18 octets): 00200e746c733133 2066696e69736865 6400
output (32 octets): c6ceb1fb180f7d97 62734c4b88430995 output (32 octets): 7e08634d5b4ddeed 131202f8be9528c6
2c56d60e95490950 2884f84f4a6be5f0 541e38e44f50f0ce 9e483307b1244d69
{client} send a Finished handshake message {client} send a Finished handshake message
{client} send handshake record: {client} send handshake record:
payload (36 octets): 14000020735ebda7 9ccdab14ab392f67 payload (36 octets): 14000020088d1825 a09b055ba971f7c1
c0866555678946a1 b1b13f3d1a240d3f 1403efb9 cb072dad901d7d66 b07a12fe90a532b4 90e98d11
ciphertext (58 octets): 17030100357d5aa6 afb0db48fa79159d ciphertext (58 octets): 170301003501a1ee 3aeb36cd4afa9c7c
8074fb1eb26ac08d 6be5c0674197dbd6 efab491f8e99036c e7184c1bd778fbc3 2ff3cb5c6c734869 062d8e3a786fd33e
c16fe5a80f6207a6 c110c8975d753c84 1fa9 6b89241f063274ac 12e559bd780c2dae 5fa1
{client} derive write traffic keys for application data: {client} derive write traffic keys for application data:
PRK (32 octets): 3e97f6ece946f6cf a25aac0c4294f752 PRK (32 octets): 7bbda44aef92ee2d a1523590895f2249
adf68ce3769ba8f1 a72140e960e00b75 b1bed03647d8bfee 273fb3ef3b25457c
key info (13 octets): 001009746c733133 206b657900 key info (13 octets): 001009746c733133 206b657900
key output (16 octets): a2a1d780fe8dcc66 a2c9524da5adcb36 key output (16 octets): 0655d9562ee2ccb1 33f5c62d280d0d15
iv info (12 octets): 000c08746c733133 20697600 iv info (12 octets): 000c08746c733133 20697600
iv output (12 octets): 774928e1cb918bb5 fabbdec1 iv output (12 octets): 48964508543bc1ec d9b0e6db
{client} derive secret "tls13 res master": {client} derive secret "tls13 res master":
PRK (32 octets): 23bdfa8bb085b65a 8095c55a79f20ab0 PRK (32 octets): 76b73d53db71bd7a a61471dde13a7364
7646d7bac8c67803 2aa5985df2a1b7c1 51802efa6881b88a 77ef23e4029e01d5
hash (32 octets): 24852c1da1686926 86e24b558b6aaa12 hash (32 octets): ddc2b704b9dd57a1 bd2a6794bc485029
698570f0e85c3925 23ad59b8b89e2aae 96c0d6dab1c8fbda c3b05262bc530964
info (52 octets): 002010746c733133 20726573206d6173 info (52 octets): 002010746c733133 20726573206d6173
7465722024852c1d a168692686e24b55 8b6aaa12698570f0 74657220ddc2b704 b9dd57a1bd2a6794 bc48502996c0d6da
e85c392523ad59b8 b89e2aae b1c8fbdac3b05262 bc530964
output (32 octets): a4fccac589ec1324 762aa9ace2eb916b output (32 octets): 130658d2f9ab0026 cee5f482b5320a27
3124acfa5297f8ac b5a025f99375d171 1c79695c97eb5401 7c60f7178382d14e
{server} calculate finished "tls13 finished" (same as client) {server} calculate finished "tls13 finished" (same as client)
{server} derive read traffic keys for application data (same as {server} derive read traffic keys for application data (same as
client write traffic keys) client write traffic keys)
{server} derive secret "tls13 res master" (same as client) {server} derive secret "tls13 res master" (same as client)
{client} send alert record: {client} send alert record:
payload (2 octets): 0100 payload (2 octets): 0100
ciphertext (24 octets): 1703010013b48a63 7c14b155f5bc2804 ciphertext (24 octets): 1703010013392fc8 5183e3e957e6ed7e
04056c6a4b0a34e2 f3bb003751ff121c
{server} send alert record: {server} send alert record:
payload (2 octets): 0100 payload (2 octets): 0100
ciphertext (24 octets): 1703010013523066 0fa8cae6196c4565 ciphertext (24 octets): 17030100130c01d2 788b80b62142f34b
ac8207fcaf163e8f 8cf68e07610a9d64
6. Security Considerations 6. Security Considerations
It probably isn't a good idea to use the private key here. If it It probably isn't a good idea to use the private key here. If it
weren't for the fact that it is too small to provide any meaningful weren't for the fact that it is too small to provide any meaningful
security, it is now very well known. security, it is now very well known.
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-tls-tls13] [I-D.ietf-tls-tls13]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", draft-ietf-tls-tls13-20 (work in progress), Version 1.3", draft-ietf-tls-tls13-21 (work in progress),
April 2017. July 2017.
7.2. Informative References 7.2. Informative References
[FIPS186] National Institute of Standards and Technology (NIST), [FIPS186] National Institute of Standards and Technology (NIST),
"Digital Signature Standard (DSS)", NIST PUB 186-4 , July "Digital Signature Standard (DSS)", NIST PUB 186-4 , July
2013. 2013.
[RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves
for Security", RFC 7748, DOI 10.17487/RFC7748, January for Security", RFC 7748, DOI 10.17487/RFC7748, January
2016, <http://www.rfc-editor.org/info/rfc7748>. 2016, <http://www.rfc-editor.org/info/rfc7748>.
 End of changes. 249 change blocks. 
590 lines changed or deleted 606 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/