<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<p style="color: #777777;">
<a href="https://gitlab.com/dueno">Daiki Ueno</a>
started a new
discussion on <a href="https://gitlab.com/gnutls/gnutls/-/merge_requests/1459#note_651137502">lib/x509/privkey.c</a>:
</p>
<table>
<tr class="line_holder" id="">
<td class="old_line diff-line-num" data-linenumber="755" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
755
</td>
<td class="new_line diff-line-num" data-linenumber="755" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
755
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC755" class="line" lang="c">                <span class="cm" style="color: #998; font-style: italic;">/* use the callback if any */</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="">
<td class="old_line diff-line-num" data-linenumber="756" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
756
</td>
<td class="new_line diff-line-num" data-linenumber="756" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
756
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC756" class="line" lang="c">                    <span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">_gnutls_retrieve_pin</span><span class="p">(</span><span class="o" style="font-weight: 600;">&</span><span class="n" style="color: #333;">key</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">pin</span><span class="p">,</span> <span class="s" style="color: #d14;">"key:"</span><span class="p">,</span> <span class="s" style="color: #d14;">""</span><span class="p">,</span> <span class="mi" style="color: #099;">0</span><span class="p">,</span> <span class="n" style="color: #333;">pin</span><span class="p">,</span> <span class="k" style="font-weight: 600;">sizeof</span><span class="p">(</span><span class="n" style="color: #333;">pin</span><span class="p">));</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="">
<td class="old_line diff-line-num" data-linenumber="757" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
757
</td>
<td class="new_line diff-line-num" data-linenumber="757" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
757
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC757" class="line" lang="c">                    <span class="k" style="font-weight: 600;">if</span> <span class="p">(</span><span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">==</span> <span class="mi" style="color: #099;">0</span><span class="p">)</span> <span class="p">{</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="">
<td class="old_line diff-line-num old" data-linenumber="758" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
758
</td>
<td class="new_line diff-line-num old" data-linenumber="758" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC758" class="line" lang="c">                            <span class="n" style="color: #333;"><span class="idiff left deletion">password</span></span><span class="idiff deletion"> </span><span class="o" style="font-weight: 600;"><span class="idiff deletion">=</span></span><span class="idiff deletion"> </span><span class="n" style="color: #333;"><span class="idiff right deletion">pin</span></span><span class="p">;</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="">
<td class="old_line diff-line-num new" data-linenumber="759" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
 
</td>
<td class="new_line diff-line-num new" data-linenumber="758" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
758
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC758" class="line" lang="c">                            <span class="n" style="color: #333;"><span class="idiff left addition">ret</span></span><span class="idiff addition"> </span><span class="o" style="font-weight: 600;"><span class="idiff addition">=</span></span><span class="idiff addition"> </span><span class="n" style="color: #333;"><span class="idiff addition">gnutls_x509_privkey_import_pkcs8</span></span><span class="p"><span class="idiff addition">(</span></span><span class="n" style="color: #333;"><span class="idiff addition">key</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff addition"> </span><span class="n" style="color: #333;"><span class="idiff addition">data</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff addition"> </span><span class="n" style="color: #333;"><span class="idiff addition">format</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff addition"> </span><span class="n" style="color: #333;"><span class="idiff addition">pin</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff addition"> </span><span class="n" style="color: #333;"><span class="idiff addition">flags</span></span><span class="p"><span class="idiff right addition">)</span>;</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="">
<td class="old_line diff-line-num" data-linenumber="759" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
759
</td>
<td class="new_line diff-line-num" data-linenumber="759" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
759
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC759" class="line" lang="c">                    <span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="">
<td class="old_line diff-line-num old" data-linenumber="760" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
760
</td>
<td class="new_line diff-line-num old" data-linenumber="760" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC760" class="line" lang="c"></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="">
<td class="old_line diff-line-num old" data-linenumber="761" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
761
</td>
<td class="new_line diff-line-num old" data-linenumber="760" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC761" class="line" lang="c">                    <span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">=</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="">
<td class="old_line diff-line-num old" data-linenumber="762" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
762
</td>
<td class="new_line diff-line-num old" data-linenumber="760" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC762" class="line" lang="c">                        <span class="n" style="color: #333;">gnutls_x509_privkey_import_pkcs8</span><span class="p">(</span><span class="n" style="color: #333;">key</span><span class="p">,</span> <span class="n" style="color: #333;">data</span><span class="p">,</span> <span class="n" style="color: #333;">format</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="">
<td class="old_line diff-line-num old" data-linenumber="763" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
763
</td>
<td class="new_line diff-line-num old" data-linenumber="760" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC763" class="line" lang="c">                                                 <span class="n" style="color: #333;">password</span><span class="p">,</span> <span class="n" style="color: #333;">flags</span><span class="p">);</span></span>
</pre>
</td>
</tr>

</table>
<div style="">
<p dir="auto">Sorry for the oversight during the review, but this change seems to modify the existing behavior, which is to use the provided <code>password</code> as PIN when <code>_gnutls_retrieve_pin</code> returns an error (either because no PIN callback is set or it reports error). So I suppose this part should be:</p>
<pre class="code highlight js-syntax-highlight language-c" lang="c" v-pre="true" style="background-color: #fff; font-family: monospace; font-size: 90%; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 100%; margin: 0;"><code><span id="LC1" class="line" lang="c"><span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">_gnutls_retrieve_pin</span><span class="p">(...);</span></span>
<span id="LC2" class="line" lang="c"><span class="k" style="font-weight: 600;">if</span> <span class="p">(</span><span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">==</span> <span class="mi" style="color: #099;">0</span><span class="p">)</span> <span class="p">{</span></span>
<span id="LC3" class="line" lang="c">  <span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">gnutls_x509_privkey_import_pkcs8</span><span class="p">(...,</span> <span class="n" style="color: #333;">pin</span><span class="p">,</span> <span class="p">...);</span></span>
<span id="LC4" class="line" lang="c"><span class="p">}</span> <span class="k" style="font-weight: 600;">else</span> <span class="p">{</span></span>
<span id="LC5" class="line" lang="c">  <span class="n" style="color: #333;">ret</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">gnutls_x509_privkey_import_pkcs8</span><span class="p">(...,</span> <span class="n" style="color: #333;">password</span><span class="p">,</span> <span class="p">...);</span></span>
<span id="LC6" class="line" lang="c"><span class="p">}</span></span></code></pre>
</div>


</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
Reply to this email directly or <a href="https://gitlab.com/gnutls/gnutls/-/merge_requests/1459#note_651137502">view it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.com.
If you'd like to receive fewer emails, you can
<a href="https://gitlab.com/-/sent_notifications/db4b4d57dbfde8b9aea8f7c7f93bca37/unsubscribe">unsubscribe</a>
from this thread or
adjust your notification settings.
<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/1459#note_651137502"}}</script>


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