<!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/dueno">Daiki Ueno</a> created a merge request: <a href="https://gitlab.com/gnutls/gnutls/-/merge_requests/2066">!2066</a>
</p>
<div class="branch">
Project:Branches: dueno/gnutls:wip/dueno/single-shot-signing to gnutls/gnutls:master
</div>
<div class="author">
Author: Daiki Ueno
</div>
<div class="assignee">
Assignees:
</div>
<div class="reviewer">
Reviewers:
</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">This makes the single-shot signing behavior (on the contrary to prehashed) the primary signing interface of crypto-backend.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">pk: rely on single-shot signing behavior of crypto backend</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">Now that hashing is done in crypto backend by default, stop doing that
at the abstract key API level and just pass the original data to
crypto backend. This also removes privkey_sign_and_hash_data as it
would be identical to privkey_sign_raw_data.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">pk, nettle: use and honor GNUTLS_PK_FLAG_PREHASHED</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">This sets GNUTLS_PK_FLAG_PREHASHED to signing parameters where
appropriate, and make the nettle crypto backend respect the flag.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">crypto-backend: add GNUTLS_PK_FLAG_PREHASHED flag</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">The flag indicates that the input to .sign and .verify backend
functions are provided with hashed data, instead of the entire data.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">algorithms: move no_prehashed flag from pubkey to sign</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">That way we can add prehashed signing algorithms without adding the
corresponding pubkey algorithms.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">pk: move DigestInfo encoding into crypto backend</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">Previously, the conversion of hash into PKCS#1 DigestInfo was done in
the abstract key API. To give the crypto backend, such as nettle and
PKCS#11, move the logic there.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">pk: inline pk_hash_data</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">This function is only used by privkey_sign_and_hash_data, where it
provides a wrapper around _gnutls_hash_fast. Better inline it at the
caller and avoid pre-allocation of the buffer.</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 1rem; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">nettle: fix comment indentation</li>
</ul>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">These were a left-over when we previously reformatted the code using
GNU indent; clang-format doesn't take into account of comments.</p>
<h2 id="user-content-checklist" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Checklist<a href="#checklist" aria-label="Link to heading 'Checklist'" data-heading-content="Checklist" class="anchor" style="margin-top: 0;"></a>
</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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" checked disabled aria-label="Check option: Commits have Signed-off-by: with name/author being identical to the commit author" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Commits have <code style='font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: Code modified for feature" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: Test suite updated with functionality tests" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: Test suite updated with negative tests" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: Documentation updated / NEWS entry present (for non-trivial changes)" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; border-radius: .25rem; background-color: #ffffff; border: 1px solid #89888d;"> Documentation updated / NEWS entry present (for non-trivial changes)</li>
</ul>
<h2 id="user-content-reviewers-checklist" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Reviewer's checklist:<a href="#reviewers-checklist" aria-label="Link to heading 'Reviewer's checklist:'" data-heading-content="Reviewer's checklist:" class="anchor" style="margin-top: 0;"></a>
</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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: Any issues marked for closing are addressed" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: There is a test suite reasonably covering new functionality or modifications" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: Function naming, parameters, return values, types, etc., are consistent and according to…" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; background-color: #ececef; border-radius: .25rem; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: This feature/change has adequate documentation added" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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; position: relative; min-height: 22px; padding-inline-start: 32px; list-style-type: none; margin-inline-start: 0 !important;">
<input type="checkbox" class="task-list-item-checkbox" disabled aria-label="Check option: No obvious mistakes in the code" style="margin-top: 0; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; 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/2066">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/3-8be1fu2ejrz2jwc9vsvqd3avq/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/2066 at 1770913230
</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/2066"}}</script>
</p>
</div>
</body>
</html>