Commit e57971e
committed
DTLS 1.3 write dup support
- Copy TLS 1.3 traffic secrets and DTLS 1.3 epoch/cipher state to the
write-dup side in DupSSL so key updates can be performed.
- Delegate KeyUpdate responses from the read side to the write side via
the shared WriteDup struct, for both peer-initiated and local key
updates.
- Delegate DTLS 1.3 ACK sending from the read side to the write side.
- Track DTLS 1.3 KeyUpdate ACKs: write side records the in-flight
KeyUpdate epoch/seq, read side sets keyUpdateAcked when the matching
ACK arrives.
- Delegate post-handshake certificate authentication (CertificateRequest
processing) from the read side to the write side, transferring
transcript hashes, cert context, and signature parameters.
- Reset prevSent/plainSz to prevent stale values from SendData to think
that data was already sent.
- Refactor FreeHandshakeHashes into Free_HS_Hashes for reuse.
- Move DTLS 1.3 epoch initialization earlier in InitSSL so the
write-dup early-return path has valid epoch state.
- Add tests for write dup with all protocol versions, key update,
post-handshake auth, and WANT_WRITE recovery.
- Add --enable-all --enable-writedup to CI os-check matrix.1 parent 8169780 commit e57971e
7 files changed
Lines changed: 724 additions & 95 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| 95 | + | |
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2034 | 2034 | | |
2035 | 2035 | | |
2036 | 2036 | | |
2037 | | - | |
| 2037 | + | |
2038 | 2038 | | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
| 2046 | + | |
| 2047 | + | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
2039 | 2052 | | |
2040 | 2053 | | |
2041 | 2054 | | |
| |||
2656 | 2669 | | |
2657 | 2670 | | |
2658 | 2671 | | |
2659 | | - | |
| 2672 | + | |
2660 | 2673 | | |
2661 | 2674 | | |
2662 | 2675 | | |
| |||
2706 | 2719 | | |
2707 | 2720 | | |
2708 | 2721 | | |
2709 | | - | |
2710 | | - | |
2711 | | - | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
| 2737 | + | |
| 2738 | + | |
| 2739 | + | |
| 2740 | + | |
| 2741 | + | |
| 2742 | + | |
| 2743 | + | |
2712 | 2744 | | |
2713 | 2745 | | |
2714 | 2746 | | |
| |||
2824 | 2856 | | |
2825 | 2857 | | |
2826 | 2858 | | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
| 2864 | + | |
| 2865 | + | |
| 2866 | + | |
| 2867 | + | |
| 2868 | + | |
| 2869 | + | |
| 2870 | + | |
| 2871 | + | |
| 2872 | + | |
| 2873 | + | |
| 2874 | + | |
2827 | 2875 | | |
2828 | 2876 | | |
2829 | 2877 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7401 | 7401 | | |
7402 | 7402 | | |
7403 | 7403 | | |
7404 | | - | |
| 7404 | + | |
7405 | 7405 | | |
7406 | | - | |
| 7406 | + | |
7407 | 7407 | | |
7408 | | - | |
| 7408 | + | |
7409 | 7409 | | |
7410 | 7410 | | |
7411 | 7411 | | |
7412 | | - | |
| 7412 | + | |
7413 | 7413 | | |
7414 | 7414 | | |
7415 | | - | |
| 7415 | + | |
7416 | 7416 | | |
7417 | 7417 | | |
7418 | | - | |
| 7418 | + | |
7419 | 7419 | | |
7420 | 7420 | | |
7421 | | - | |
| 7421 | + | |
7422 | 7422 | | |
7423 | 7423 | | |
7424 | | - | |
| 7424 | + | |
7425 | 7425 | | |
7426 | 7426 | | |
7427 | 7427 | | |
7428 | 7428 | | |
7429 | | - | |
7430 | | - | |
7431 | | - | |
7432 | | - | |
| 7429 | + | |
| 7430 | + | |
| 7431 | + | |
| 7432 | + | |
7433 | 7433 | | |
7434 | 7434 | | |
7435 | 7435 | | |
7436 | | - | |
7437 | | - | |
| 7436 | + | |
| 7437 | + | |
7438 | 7438 | | |
7439 | 7439 | | |
7440 | 7440 | | |
| 7441 | + | |
| 7442 | + | |
| 7443 | + | |
| 7444 | + | |
| 7445 | + | |
| 7446 | + | |
7441 | 7447 | | |
7442 | 7448 | | |
7443 | 7449 | | |
| |||
7448 | 7454 | | |
7449 | 7455 | | |
7450 | 7456 | | |
7451 | | - | |
7452 | | - | |
7453 | | - | |
7454 | | - | |
7455 | | - | |
7456 | | - | |
7457 | | - | |
7458 | | - | |
7459 | | - | |
| 7457 | + | |
| 7458 | + | |
7460 | 7459 | | |
7461 | 7460 | | |
7462 | 7461 | | |
| |||
8004 | 8003 | | |
8005 | 8004 | | |
8006 | 8005 | | |
| 8006 | + | |
| 8007 | + | |
| 8008 | + | |
| 8009 | + | |
| 8010 | + | |
| 8011 | + | |
| 8012 | + | |
| 8013 | + | |
| 8014 | + | |
| 8015 | + | |
| 8016 | + | |
| 8017 | + | |
| 8018 | + | |
| 8019 | + | |
| 8020 | + | |
| 8021 | + | |
| 8022 | + | |
| 8023 | + | |
8007 | 8024 | | |
8008 | 8025 | | |
8009 | 8026 | | |
| |||
8115 | 8132 | | |
8116 | 8133 | | |
8117 | 8134 | | |
8118 | | - | |
8119 | | - | |
8120 | | - | |
8121 | | - | |
8122 | | - | |
8123 | | - | |
8124 | | - | |
8125 | | - | |
8126 | | - | |
8127 | | - | |
8128 | | - | |
8129 | | - | |
8130 | | - | |
8131 | | - | |
8132 | | - | |
8133 | | - | |
8134 | | - | |
8135 | | - | |
8136 | 8135 | | |
8137 | 8136 | | |
8138 | 8137 | | |
| |||
26016 | 26015 | | |
26017 | 26016 | | |
26018 | 26017 | | |
| 26018 | + | |
| 26019 | + | |
| 26020 | + | |
| 26021 | + | |
26019 | 26022 | | |
26020 | 26023 | | |
26021 | 26024 | | |
| |||
26246 | 26249 | | |
26247 | 26250 | | |
26248 | 26251 | | |
| 26252 | + | |
| 26253 | + | |
26249 | 26254 | | |
26250 | 26255 | | |
26251 | 26256 | | |
| |||
0 commit comments