GnuTLS | hpke: provide a way to import/export public keys (!2119)
"\(Deprecated\) Read-only notification of GnuTLS library development activities" <[email protected]> Tue, 28 Jul 2026 08:53:06 +0000
| Newsgroups | gmane.comp.encryption.gpg.gnutls.devel |
|---|---|
| Message-ID | <[email protected]> |
--===============8934971638989959066==
Content-Type: multipart/alternative;
boundary="--==_mimepart_6a686df2991ad_375c1d75c750122";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_6a686df2991ad_375c1d75c750122
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Daiki Ueno created a merge request: https://gitlab.com/gnutls/gnutls/-/merge_requests/2119
Project:Branches: dueno/gnutls:wip/dueno/hpke-api to gnutls/gnutls:master
Author: Daiki Ueno
<!-- Add a description of the new feature/bug fix. Reference any relevant bugs. -->
Using HPKE on a protocol like ECH requires raw public key data. This
renames _gnutls_hpke_datum_to_pubkey and _gnutls_hpke_pubkey_to_datum
to gnutls_hpke_import_pubkey and gnutls_hpke_export_pubkey
respectively, and export them as a public API. Note that those
functions take gnutls_hpke_context_t as the first argument to check
the validity of the given public key and data.
Suggested by @peonix.
## Checklist
* [x] Commits have `Signed-off-by:` with name/author being identical to the commit author
* [ ] Code modified for feature
* [ ] Test suite updated with functionality tests
* [ ] Test suite updated with negative tests
* [x] Documentation updated / NEWS entry present (for non-trivial changes)
## Reviewer's checklist:
* [ ] Any issues marked for closing are addressed
* [ ] There is a test suite reasonably covering new functionality or modifications
* [ ] Function naming, parameters, return values, types, etc., are consistent and according to `CONTRIBUTION.md`
* [ ] This feature/change has adequate documentation added
* [ ] No obvious mistakes in the code
--
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/-/merge_requests/2119
You're receiving this email because of your account on gitlab.com. Unsubscribe from this thread: https://gitlab.com/-/namespace/17175643/sent_notifications/6-9s4gtgkpleh0zkcrpu3vxd2wj-a84t7/unsubscribe | Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help
----==_mimepart_6a686df2991ad_375c1d75c750122
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www=
.w3.org/TR/REC-html40/loose.dtd">
<html lang=3D"en" style=3D'--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, monospac=
e;'>
<head>
<meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type">=
<title>
GitLab
</title>
<style data-premailer=3D"ignore" type=3D"text/css">
a { color: #1068bf; }
</style>
<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: hsla(0,0%,100%,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Ro=
boto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Colo=
r Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size=
: inherit;
}
</style>
</head>
<body style=3D'font-size: inherit; -webkit-text-shadow: hsla(0,0%,100%,.0=
1) 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=3D"content">
<p class=3D"details" style=3D"font-style: italic; color: #626168;">
<a href=3D"https://gitlab.com/dueno">Daiki Ueno</a> created a merge reque=
st: <a href=3D"https://gitlab.com/gnutls/gnutls/-/merge_requests/2119">!2=
119</a>
</p>
<div class=3D"branch">
Project:Branches: dueno/gnutls:wip/dueno/hpke-api to gnutls/gnutls:master=
</div>
<div class=3D"author">
Author: Daiki Ueno
</div>
<div class=3D"assignee">
Assignees: =
</div>
<div class=3D"reviewer">
Reviewers: =
</div>
<div class=3D"md gl-mt-5" style=3D"position: relative; z-index: 1; color:=
#3a383f; word-wrap: break-word; margin-top: 1rem;">
<p dir=3D"auto" style=3D"color: #3a383f; margin: 0px 0px 1rem;" align=3D"=
initial">Using HPKE on a protocol like ECH requires raw public key data. =
This
renames _gnutls_hpke_datum_to_pubkey and _gnutls_hpke_pubkey_to_datum
to gnutls_hpke_import_pubkey and gnutls_hpke_export_pubkey
respectively, and export them as a public API. Note that those
functions take gnutls_hpke_context_t as the first argument to check
the validity of the given public key and data.</p>
<p dir=3D"auto" style=3D"color: #3a383f; margin: 0px 0px 1rem;" align=3D"=
initial">Suggested by <a href=3D"https://gitlab.com/peonix" title=3D"Ajit=
Singh" class=3D"gfm gfm-project_member js-user-link" data-user=3D"790451=
3" data-original=3D"@peonix" data-container=3D"body" data-placement=3D"to=
p" data-reference-type=3D"user" style=3D"color: #284779; background-color=
: #cbe2f9; border-radius: .25rem; margin-top: 0px; padding: 0 2px;">@peon=
ix</a>.</p>
<h2 id=3D"user-content-checklist" dir=3D"auto" style=3D"margin-top: 20px;=
margin-bottom: 10px;" align=3D"initial">Checklist<a href=3D"#checklist" =
aria-label=3D"Link to heading 'Checklist'" data-heading-content=3D"Checkl=
ist" class=3D"anchor" style=3D"margin-top: 0px;"></a>
</h2>
<ul class=3D"task-list" dir=3D"auto" style=3D"text-align: initial; list-s=
tyle-type: disc; margin: 0px 0px 1rem; padding: 0;">
<li class=3D"task-list-item" style=3D"margin-top: 0px; line-height: 1.6em=
; margin-left: 25px; padding-left: 3px; position: relative; min-height: 2=
2px; padding-inline-start: 32px; list-style-type: none; margin-inline-sta=
rt: 0 !important;">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" checked disabl=
ed aria-label=3D"Check option: Commits have Signed-off-by: with name/auth=
or being identical to the commit author" style=3D"margin-top: 0px; positi=
on: 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: 1p=
x solid #89888d;"> Commits have <code style=3D'font-size: 90%; color: #18=
171d; word-wrap: break-word; background-color: #ececef; border-radius: .2=
5rem; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans=
Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "and=
ale mono", "lucida console", monospace; font-variant-ligatures: none; whi=
te-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padd=
ing: 0.125rem 0.25rem;'>Signed-off-by:</code> with name/author being iden=
tical to the commit author</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: Code modified for feature" style=3D"margin-top: 0p=
x; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; a=
ll: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; bo=
x-sizing: border-box; border-radius: .25rem; background-color: #ffffff; b=
order: 1px solid #89888d;"> Code modified for feature</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: Test suite updated with functionality tests" style=
=3D"margin-top: 0px; position: absolute; inset-inline-start: 8px; inset-b=
lock-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; c=
ursor: pointer; box-sizing: border-box; border-radius: .25rem; background=
-color: #ffffff; border: 1px solid #89888d;"> Test suite updated with fun=
ctionality tests</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: Test suite updated with negative tests" style=3D"m=
argin-top: 0px; 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-colo=
r: #ffffff; border: 1px solid #89888d;"> Test suite updated with negative=
tests</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" checked disabl=
ed aria-label=3D"Check option: Documentation updated / NEWS entry present=
(for non-trivial changes)" style=3D"margin-top: 0px; position: absolute;=
inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: bl=
ock; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; =
border-radius: .25rem; background-color: #ffffff; border: 1px solid #8988=
8d;"> Documentation updated / NEWS entry present (for non-trivial changes=
)</li>
</ul>
<h2 id=3D"user-content-reviewers-checklist" dir=3D"auto" style=3D"margin-=
top: 20px; margin-bottom: 10px;" align=3D"initial">Reviewer's checklist:<=
a href=3D"#reviewers-checklist" aria-label=3D"Link to heading 'Reviewer's=
checklist:'" data-heading-content=3D"Reviewer's checklist:" class=3D"anc=
hor" style=3D"margin-top: 0px;"></a>
</h2>
<ul class=3D"task-list" dir=3D"auto" style=3D"text-align: initial; list-s=
tyle-type: disc; margin: 0px; padding: 0;">
<li class=3D"task-list-item" style=3D"margin-top: 0px; line-height: 1.6em=
; margin-left: 25px; padding-left: 3px; position: relative; min-height: 2=
2px; padding-inline-start: 32px; list-style-type: none; margin-inline-sta=
rt: 0 !important;">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: Any issues marked for closing are addressed" style=
=3D"margin-top: 0px; position: absolute; inset-inline-start: 8px; inset-b=
lock-start: 3px; all: unset; display: block; width: 1rem; height: 1rem; c=
ursor: pointer; box-sizing: border-box; border-radius: .25rem; background=
-color: #ffffff; border: 1px solid #89888d;"> Any issues marked for closi=
ng are addressed</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: There is a test suite reasonably covering new func=
tionality or modifications" style=3D"margin-top: 0px; position: absolute;=
inset-inline-start: 8px; inset-block-start: 3px; all: unset; display: bl=
ock; width: 1rem; height: 1rem; cursor: pointer; box-sizing: border-box; =
border-radius: .25rem; background-color: #ffffff; border: 1px solid #8988=
8d;"> There is a test suite reasonably covering new functionality or modi=
fications</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: Function naming, parameters, return values, types,=
etc., are consistent and according to=E2=80=A6" style=3D"margin-top: 0px=
; position: absolute; inset-inline-start: 8px; inset-block-start: 3px; al=
l: unset; display: block; width: 1rem; height: 1rem; cursor: pointer; box=
-sizing: border-box; border-radius: .25rem; background-color: #ffffff; bo=
rder: 1px solid #89888d;"> Function naming, parameters, return values, ty=
pes, etc., are consistent and according to <code style=3D'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: kee=
p-all; padding: 0.125rem 0.25rem;'>CONTRIBUTION.md</code>
</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: This feature/change has adequate documentation add=
ed" style=3D"margin-top: 0px; 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; b=
ackground-color: #ffffff; border: 1px solid #89888d;"> This feature/chang=
e has adequate documentation added</li>
<li class=3D"task-list-item" style=3D"line-height: 1.6em; margin-left: 25=
px; padding-left: 3px; position: relative; min-height: 22px; padding-inli=
ne-start: 32px; list-style-type: none; margin-inline-start: 0 !important;=
">
<input type=3D"checkbox" class=3D"task-list-item-checkbox" disabled aria-=
label=3D"Check option: No obvious mistakes in the code" style=3D"margin-t=
op: 0px; position: absolute; inset-inline-start: 8px; inset-block-start: =
3px; all: unset; display: block; width: 1rem; height: 1rem; cursor: point=
er; box-sizing: border-box; border-radius: .25rem; background-color: #fff=
fff; border: 1px solid #89888d;"> No obvious mistakes in the code</li>
</ul>
</div>
</div>
<div class=3D"footer" style=3D"margin-top: 10px;">
<p style=3D"font-size: small; color: #626168;">
=E2=80=94
<br>
Reply to this email directly or <a href=3D"https://gitlab.com/gnutls/gnut=
ls/-/merge_requests/2119">view it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com">gitlab.com</a>=
. <a href=3D"https://gitlab.com/-/namespace/17175643/sent_notifications/6=
-9s4gtgkpleh0zkcrpu3vxd2wj-a84t7/unsubscribe" target=3D"_blank" rel=3D"no=
opener noreferrer">Unsubscribe</a> from this thread =C2=B7 <a href=3D"htt=
ps://gitlab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopene=
r noreferrer" class=3D"mng-notif-link">Manage all notifications</a> =C2=B7=
<a href=3D"https://gitlab.com/help" target=3D"_blank" rel=3D"noopener no=
referrer" class=3D"help-link">Help</a>
<span style=3D"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_r=
equests/2119 at 1785228786
</span>
<script type=3D"application/ld+json">{"@context":"http://schema.org","@ty=
pe":"EmailMessage","action":{"@type":"ViewAction","name":"View Merge requ=
est","url":"https://gitlab.com/gnutls/gnutls/-/merge_requests/2119"}}</sc=
ript>
</p>
</div>
</body>
</html>
----==_mimepart_6a686df2991ad_375c1d75c750122--
--===============8934971638989959066==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Gnutls-devel mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnutls-devel
--===============8934971638989959066==--