Re: GnuTLS | supported_groups: rewrite group negotiation without nested loop (!2120)

"\(Deprecated\) Read-only notification of GnuTLS library development activities" <[email protected]> Tue, 04 Aug 2026 02:26:25 +0000
Newsgroups gmane.comp.encryption.gpg.gnutls.devel
Message-ID <[email protected]>
--===============2492772047876450152==
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6a714dd1c834f_3719e8f81123f";
 charset=UTF-8
Content-Transfer-Encoding: 7bit


----==_mimepart_6a714dd1c834f_3719e8f81123f
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Merge request https://gitlab.com/gnutls/gnutls/-/merge_requests/2120 was reviewed by Daiki Ueno

--
  
Daiki Ueno commented on a discussion on lib/ext/supported_groups.c: https://gitlab.com/gnutls/gnutls/-/merge_requests/2120#note_3639406826

 > +		     c <= GROUP_CLASS_MAX; c++) {
 > +			if (cpos_by_class[c] < cpos) {
 > +				cpos = cpos_by_class[c];

Not really, as the `if` conditions are also different depending on server_precedence.

--
  
Daiki Ueno commented on a discussion on lib/ext/supported_groups.c: https://gitlab.com/gnutls/gnutls/-/merge_requests/2120#note_3639406883

 > +	if (group->pk == GNUTLS_PK_DH) {
 > +		return GROUP_CLASS_DH;
 > +	} else if (IS_EC(group->pk)) {

Not my style, sorry. `else` makes it clear that the above condition doesn't meet.

--
  
Daiki Ueno commented on a discussion on lib/ext/supported_groups.c: https://gitlab.com/gnutls/gnutls/-/merge_requests/2120#note_3639406889

 > -		/* we figure what is the minimum DH allowed for this session, if any */
 > -		min_dh = get_min_dh(session);
 > +	if (len != data_size)

Overlong (or padded) extension should be rejected, while the previous was too tolerate and ignored it. RFC 8446 defines Extension so that it shouldn't happen and tlsfuzzer has tests for that in some extensions.

--
  
Daiki Ueno commented on a discussion on lib/ext/supported_groups.c: https://gitlab.com/gnutls/gnutls/-/merge_requests/2120#note_3639406896

 > +		 * TLS 1.3 as an encrypted extension. */
 > +		return 0;
 > +	} else {

I think this is written so that client/server code paths are treated equally (not the way either of it is a special case), so I'm not a fan of omitting `else` here. However, using a `switch` might be better in that case. Let me change that.


-- 
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/-/merge_requests/2120
You're receiving this email because of your account on gitlab.com. Unsubscribe from this thread: https://gitlab.com/-/namespace/17175643/sent_notifications/6-9u91mio3yx0cj3n793dr3aa5v-a84t7/unsubscribe | Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help



----==_mimepart_6a714dd1c834f_3719e8f81123f
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">

<div style=3D"color: #333333; border-bottom-width: 8px; border-bottom-col=
or: #ededed; border-bottom-style: solid; font-weight: bold; line-height: =
1.4; padding: 20px 0;">
Merge request <a href=3D"https://gitlab.com/gnutls/gnutls/-/merge_request=
s/2120">!2120</a> was reviewed by <a href=3D"https://gitlab.com/dueno">Da=
iki Ueno</a>
</div>
<p style=3D"color: #777777;">
<a href=3D"https://gitlab.com/dueno">Daiki Ueno</a>
commented on a
discussion on <a href=3D"https://gitlab.com/gnutls/gnutls/-/merge_request=
s/2120#note_3639406826">lib/ext/supported_groups.c</a>:
</p>
<table class=3D"code gl-mb-5" style=3D"border-spacing: 0; margin-bottom: =
1rem; border-collapse: collapse; width: auto; font-family: monospace; fon=
t-size: 90%;" bgcolor=3D"#ffffff" width=3D"100%" cellpadding=3D"0" cellsp=
acing=3D"0">
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"262" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"240" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
240
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">		     <span class=3D"n" s=
tyle=3D"color: #333333;">c</span> <span class=3D"o" style=3D"font-weight:=
 600;">&lt;=3D</span> <span class=3D"n" style=3D"color: #333333;">GROUP_C=
LASS_MAX</span><span class=3D"p">;</span> <span class=3D"n" style=3D"colo=
r: #333333;">c</span><span class=3D"o" style=3D"font-weight: 600;">++</sp=
an><span class=3D"p">)</span> <span class=3D"p">{</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"262" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"241" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
241
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">			<span class=3D"k" style=
=3D"font-weight: 600;">if</span> <span class=3D"p">(</span><span class=3D=
"n" style=3D"color: #333333;">cpos_by_class</span><span class=3D"p">[</sp=
an><span class=3D"n" style=3D"color: #333333;">c</span><span class=3D"p">=
]</span> <span class=3D"o" style=3D"font-weight: 600;">&lt;</span> <span =
class=3D"n" style=3D"color: #333333;">cpos</span><span class=3D"p">)</spa=
n> <span class=3D"p">{</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"262" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"242" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
242
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">				<span class=3D"n" styl=
e=3D"color: #333333;">cpos</span> <span class=3D"o" style=3D"font-weight:=
 600;">=3D</span> <span class=3D"n" style=3D"color: #333333;">cpos_by_cla=
ss</span><span class=3D"p">[</span><span class=3D"n" style=3D"color: #333=
333;">c</span><span class=3D"p">];</span></span>
</pre></td>
</tr>

</table>
<div class=3D"md" style=3D"border-bottom-width: 4px; border-bottom-color:=
 #ededed; border-bottom-style: solid; padding-bottom: 1em; position: rela=
tive; z-index: 1; color: #3a383f; word-wrap: break-word;">
<p dir=3D"auto" style=3D"color: #3a383f; margin: 0px;" align=3D"initial">=
Not really, as the <code style=3D'font-size: 90%; color: #18171d; word-wr=
ap: break-word; background-color: #ececef; border-radius: .25rem; margin-=
top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: b=
reak-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "Deja=
Vu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New=
", "andale mono", "lucida console", monospace; font-variant-ligatures: no=
ne; word-break: keep-all; padding: 0.125rem 0.25rem;'>if</code> condition=
s are also different depending on server_precedence.</p>
</div>

<p style=3D"color: #777777;">
<a href=3D"https://gitlab.com/dueno">Daiki Ueno</a>
commented on a
discussion on <a href=3D"https://gitlab.com/gnutls/gnutls/-/merge_request=
s/2120#note_3639406883">lib/ext/supported_groups.c</a>:
</p>
<table class=3D"code gl-mb-5" style=3D"border-spacing: 0; margin-bottom: =
1rem; border-collapse: collapse; width: auto; font-family: monospace; fon=
t-size: 90%;" bgcolor=3D"#ffffff" width=3D"100%" cellpadding=3D"0" cellsp=
acing=3D"0">
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"112" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"101" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
101
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">	<span class=3D"k" style=3D=
"font-weight: 600;">if</span> <span class=3D"p">(</span><span class=3D"n"=
 style=3D"color: #333333;">group</span><span class=3D"o" style=3D"font-we=
ight: 600;">-&gt;</span><span class=3D"n" style=3D"color: #333333;">pk</s=
pan> <span class=3D"o" style=3D"font-weight: 600;">=3D=3D</span> <span cl=
ass=3D"n" style=3D"color: #333333;">GNUTLS_PK_DH</span><span class=3D"p">=
)</span> <span class=3D"p">{</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"112" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"102" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
102
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">		<span class=3D"k" style=3D=
"font-weight: 600;">return</span> <span class=3D"n" style=3D"color: #3333=
33;">GROUP_CLASS_DH</span><span class=3D"p">;</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"112" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"103" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
103
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">	<span class=3D"p">}</span=
> <span class=3D"k" style=3D"font-weight: 600;">else</span> <span class=3D=
"k" style=3D"font-weight: 600;">if</span> <span class=3D"p">(</span><span=
 class=3D"n" style=3D"color: #333333;">IS_EC</span><span class=3D"p">(</s=
pan><span class=3D"n" style=3D"color: #333333;">group</span><span class=3D=
"o" style=3D"font-weight: 600;">-&gt;</span><span class=3D"n" style=3D"co=
lor: #333333;">pk</span><span class=3D"p">))</span> <span class=3D"p">{</=
span></span>
</pre></td>
</tr>

</table>
<div class=3D"md" style=3D"border-bottom-width: 4px; border-bottom-color:=
 #ededed; border-bottom-style: solid; padding-bottom: 1em; position: rela=
tive; z-index: 1; color: #3a383f; word-wrap: break-word;">
<p dir=3D"auto" style=3D"color: #3a383f; margin: 0px;" align=3D"initial">=
Not my style, sorry. <code style=3D'font-size: 90%; color: #18171d; word-=
wrap: break-word; background-color: #ececef; border-radius: .25rem; margi=
n-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space:=
 break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "De=
jaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier N=
ew", "andale mono", "lucida console", monospace; font-variant-ligatures: =
none; word-break: keep-all; padding: 0.125rem 0.25rem;'>else</code> makes=
 it clear that the above condition doesn't meet.</p>
</div>

<p style=3D"color: #777777;">
<a href=3D"https://gitlab.com/dueno">Daiki Ueno</a>
commented on a
discussion on <a href=3D"https://gitlab.com/gnutls/gnutls/-/merge_request=
s/2120#note_3639406889">lib/ext/supported_groups.c</a>:
</p>
<table class=3D"code gl-mb-5" style=3D"border-spacing: 0; margin-bottom: =
1rem; border-collapse: collapse; width: auto; font-family: monospace; fon=
t-size: 90%;" bgcolor=3D"#ffffff" width=3D"100%" cellpadding=3D"0" cellsp=
acing=3D"0">
<tr class=3D"line_holder old" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num old" data-linenumber=3D"134" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #fac5cd; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#f9d7dc">
134
</td>
<td class=3D"new_line diff-line-num old" data-linenumber=3D"133" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #fac5cd; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#f9d7dc">
 =

</td>
<td class=3D"line_content old" style=3D"padding: inherit;" bgcolor=3D"#fb=
e9eb"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>-<span class=3D"line" data-lang=3D"c">		<span class=3D"cm" style=
=3D"color: #999988; font-style: italic;">/* we figure what is the minimum=
 DH allowed for this session, if any */</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder old" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num old" data-linenumber=3D"135" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #fac5cd; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#f9d7dc">
135
</td>
<td class=3D"new_line diff-line-num old" data-linenumber=3D"133" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #fac5cd; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#f9d7dc">
 =

</td>
<td class=3D"line_content old" style=3D"padding: inherit;" bgcolor=3D"#fb=
e9eb"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>-<span class=3D"line" data-lang=3D"c">		<span class=3D"n" style=3D=
"color: #333333;">min_dh</span> <span class=3D"o" style=3D"font-weight: 6=
00;">=3D</span> <span class=3D"n" style=3D"color: #333333;">get_min_dh</s=
pan><span class=3D"p">(</span><span class=3D"n" style=3D"color: #333333;"=
>session</span><span class=3D"p">);</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"136" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"133" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
133
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">	<span class=3D"k" style=3D=
"font-weight: 600;">if</span> <span class=3D"p">(</span><span class=3D"n"=
 style=3D"color: #333333;">len</span> <span class=3D"o" style=3D"font-wei=
ght: 600;">!=3D</span> <span class=3D"n" style=3D"color: #333333;">data_s=
ize</span><span class=3D"p">)</span></span>
</pre></td>
</tr>

</table>
<div class=3D"md" style=3D"border-bottom-width: 4px; border-bottom-color:=
 #ededed; border-bottom-style: solid; padding-bottom: 1em; position: rela=
tive; z-index: 1; color: #3a383f; word-wrap: break-word;">
<p dir=3D"auto" style=3D"color: #3a383f; margin: 0px;" align=3D"initial">=
Overlong (or padded) extension should be rejected, while the previous was=
 too tolerate and ignored it. RFC 8446 defines Extension so that it shoul=
dn't happen and tlsfuzzer has tests for that in some extensions.</p>
</div>

<p style=3D"color: #777777;">
<a href=3D"https://gitlab.com/dueno">Daiki Ueno</a>
commented on a
discussion on <a href=3D"https://gitlab.com/gnutls/gnutls/-/merge_request=
s/2120#note_3639406896">lib/ext/supported_groups.c</a>:
</p>
<table class=3D"code gl-mb-5" style=3D"border-spacing: 0; margin-bottom: =
1rem; border-collapse: collapse; width: auto; font-family: monospace; fon=
t-size: 90%;" bgcolor=3D"#ffffff" width=3D"100%" cellpadding=3D"0" cellsp=
acing=3D"0">
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"272" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"266" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
266
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c"><span class=3D"cm" style=3D=
"color: #999988; font-style: italic;">		 * TLS 1.3 as an encrypted extens=
ion. */</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"272" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"267" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
267
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">		<span class=3D"k" style=3D=
"font-weight: 600;">return</span> <span class=3D"mi" style=3D"color: #009=
999;">0</span><span class=3D"p">;</span></span>
</pre></td>
</tr>
<tr class=3D"line_holder new" style=3D"line-height: 1.6;">
<td class=3D"old_line diff-line-num new" data-linenumber=3D"272" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
 =

</td>
<td class=3D"new_line diff-line-num new" data-linenumber=3D"268" style=3D=
"width: 35px; color: rgba(5,5,6,.24); border-right-width: 1px; border-rig=
ht-color: #c7f0d2; border-right-style: solid; padding: inherit;" align=3D=
"right" bgcolor=3D"#ddfbe6">
268
</td>
<td class=3D"line_content new" style=3D"padding: inherit;" bgcolor=3D"#ec=
fdf0"><pre style=3D'display: block; font-size: 14px; color: #3a383f; posi=
tion: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "D=
ejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier =
New", "andale mono", "lucida console", monospace; font-variant-ligatures:=
 none; word-break: break-all; word-wrap: break-word; background-color: in=
herit; border-radius: 2px; margin: 0; padding: 0; border: inherit solid #=
dcdcde;'>+<span class=3D"line" data-lang=3D"c">	<span class=3D"p">}</span=
> <span class=3D"k" style=3D"font-weight: 600;">else</span> <span class=3D=
"p">{</span></span>
</pre></td>
</tr>

</table>
<div class=3D"md" style=3D"border-bottom-width: 4px; border-bottom-color:=
 #ededed; border-bottom-style: solid; padding-bottom: 1em; position: rela=
tive; z-index: 1; color: #3a383f; word-wrap: break-word;">
<p dir=3D"auto" style=3D"color: #3a383f; margin: 0px;" align=3D"initial">=
I think this is written so that client/server code paths are treated equa=
lly (not the way either of it is a special case), so I'm not a fan of omi=
tting <code style=3D'font-size: 90%; color: #18171d; word-wrap: break-wor=
d; background-color: #ececef; border-radius: .25rem; margin-top: 0px; fon=
t-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; =
font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono"=
, "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mo=
no", "lucida console", monospace; font-variant-ligatures: none; word-brea=
k: keep-all; padding: 0.125rem 0.25rem;'>else</code> here. However, using=
 a <code style=3D'font-size: 90%; color: #18171d; word-wrap: break-word; =
background-color: #ececef; border-radius: .25rem; font-weight: inherit; o=
verflow-wrap: break-word; white-space: break-spaces; 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; word-break: keep-all; padding=
: 0.125rem 0.25rem;'>switch</code> might be better in that case. Let me c=
hange that.</p>
</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/2120">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=
-9u91mio3yx0cj3n793dr3aa5v-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/2120 at 1785810385
</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/2120"}}</sc=
ript>


</p>
</div>
</body>
</html>

----==_mimepart_6a714dd1c834f_3719e8f81123f--


--===============2492772047876450152==
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

--===============2492772047876450152==--