<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>
<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>
<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">
<p class="details" style="font-style: italic; color: #626168;">
<a href="https://gitlab.com/alistair23">Alistair Francis</a> created a merge request: <a href="https://gitlab.com/gnutls/gnutls/-/merge_requests/2021">!2021</a>
</p>
<div class="branch">
Project:Branches: alistair23/gnutls:alistair/session-pack to gnutls/gnutls:master
</div>
<div class="author">
Author: Alistair Francis
</div>
<div class="assignee">
Assignees:
</div>
<div class="reviewer">
Reviewers:
</div>
<div class="approvers">
</div>
<div class="md gl-mt-5" style="position: relative; z-index: 1; color: #3a383f; word-wrap: break-word; margin-top: 1rem;">
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">As part of the work to support KeyUpdate in ktls-utils and the Linux kernel we need to be able to <a href="https://lore.kernel.org/kernel-tls-handshake/49a61a63-db9a-42cd-afa9-3f177400bd86@suse.de/T/#ma9fb251a756fe427bc474f113572abc5fbe8ddab" rel="nofollow noreferrer noopener" target="_blank" style="margin-top: 0;">save and restore the gnutls session</a> in the kernel keyring.</p>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">Basically ktls-utils will use gnutls for the handshake then hand the keys and connection information off to the kernel for the kernel to take over. At this point gnutls needs to be able to save it's state in a buffer for use later. This series allows that by saving the gnutls state in a buffer and then allowing us to restore that state and then update keys later on.</p>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">This requires saving a lot more information then gnutls currently does, including security_parameters, TLS keys and record_parameters. We also need to save the information even if a handshake hasn't completed yet.</p>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">This requires <a href="https://gitlab.com/gnutls/gnutls/-/merge_requests/1968" data-reference-type="merge_request" data-original="https://gitlab.com/gnutls/gnutls/-/merge_requests/1968" data-link="false" data-link-reference="true" data-merge-request="390011221" data-project="179611" data-project-path="gnutls/gnutls" data-iid="1968" data-container="body" data-placement="top" title="record: Allow setting/restoring all record state" class="gfm gfm-merge_request" style="margin-top: 0;">!1968</a></p>
<h2 dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">
<a href="#checklist" aria-hidden="true" class="anchor" id="user-content-checklist" style="margin-top: 0; margin-left: -20px; text-decoration: none; outline: none; position: absolute; width: 20px;"></a>Checklist</h2>
<ul class="task-list" dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li class="task-list-item" style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Commits have Signed-off-by: with name/author being identical to the commit author" checked disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Commits have <code style='font-size: 90%; color: #18171d; word-wrap: break-word; border-radius: .25rem; background-color: #ececef; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;'>Signed-off-by:</code> with name/author being identical to the commit author</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Code modified for feature" checked disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Code modified for feature</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Test suite updated with functionality tests" checked disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Test suite updated with functionality tests</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Test suite updated with negative tests" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Test suite updated with negative tests</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Documentation updated / NEWS entry present (for non-trivial changes)" checked disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Documentation updated / NEWS entry present (for non-trivial changes)</li>
</ul>
<h2 dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">
<a href="#reviewers-checklist" aria-hidden="true" class="anchor" id="user-content-reviewers-checklist" style="margin-top: 0; margin-left: -20px; text-decoration: none; outline: none; position: absolute; width: 20px;"></a>Reviewer's checklist:</h2>
<ul class="task-list" dir="auto" style="text-align: initial; list-style-type: disc; margin: 0; padding: 0;">
<li class="task-list-item" style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Any issues marked for closing are addressed" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Any issues marked for closing are addressed</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: There is a test suite reasonably covering new functionality or modifications" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> There is a test suite reasonably covering new functionality or modifications</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: Function naming, parameters, return values, types, etc., are consistent and according to…" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Function naming, parameters, return values, types, etc., are consistent and according to <code style='font-size: 90%; color: #18171d; word-wrap: break-word; border-radius: .25rem; background-color: #ececef; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;'>CONTRIBUTION.md</code>
</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: This feature/change has adequate documentation added" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> This feature/change has adequate documentation added</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 32px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" aria-label="Check option: No obvious mistakes in the code" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; box-sizing: border-box; height: 1rem; width: 1rem; cursor: pointer; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> No obvious mistakes in the code</li>
</ul>
</div>
</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #626168;">
—
<br>
Reply to this email directly or <a href="https://gitlab.com/gnutls/gnutls/-/merge_requests/2021">view it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.com">gitlab.com</a>. <a href="https://gitlab.com/-/sent_notifications/1-3odvgfocmnia3wqzdejjwjkfr/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.com/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.com/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<span style="color: transparent; font-size: 0; display: none; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0;">
Notification message regarding https://gitlab.com/gnutls/gnutls/-/merge_requests/2021 at 1759115533
</span>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Merge request","url":"https://gitlab.com/gnutls/gnutls/-/merge_requests/2021"}}</script>
</p>
</div>
</body>
</html>