<div dir="ltr">Here is a patch designed for the support of the <a href="https://tools.ietf.org/html/draft-ietf-lamps-eai-addresses-06" target="_blank">https://tools.ietf.org/html/<wbr>draft-ietf-lamps-eai-<wbr>addresses-06</a> draft which is in the last call phase of the Lamps WG.<br><br><br>The patch <a href="https://github.com/openssl/openssl/pull/2560" target="_blank">https://github.com/openssl/<wbr>openssl/pull/2560</a> implements the support of the SmtpUtf8 OTHERNAME value. <br><br><br>Current problems related to the patch:<br><br><ol><li style="margin-left:15px">It requires libidn with its own memory management.<br></li><li style="margin-left:15px">The support via config is not provided yet.<br></li><li style="margin-left:15px">It does not implement the canonicalization of the unicode string<br></li><li style="margin-left:15px">It does not have tests for the chain verification.</li></ol><br>We have a preliminary specification of the tests, but currently I am unable to implement them<br>=====<br>I can give you an outline of a spec.  Hopefully that's enough to work with:<br>1. Local-part<br>  a. Internationalized i.e. non-ascii email Local-part is encoded as UTF8 in smtputf8Name.  Given a test certificate in ASN.1, the UTF8 Local-part should be extractable and tested.<br>  b. Though not recommended, ascii email Local-part may also be represented.  So a test certificate in ASN.1 could encode an ascii email local-part, and the ascii should be extractable and tested.  Certificate generation through openssl should opt to use rfc822Name for ascii Local-part though.<br>2. Domain<br>  a. U-label in smtputf8Name shall be supported.  Given a test certificate in ASN.1, a U-label domain should be extracted and tested.<br>  b. A-label in smtputf8Name must not be supported.  Given a test certificate in ASN.1, the A-label domain should be rejected.<br>3. Name constraints<br>  a. CA certificate with smtputf8Name name constraint should constrain an entity certificate with smtputf8Name.  Given an intermediate CA cert in ASN.1 with a full email address excluded name constraint in smtputf8Name, it can constraint an entity certificate with smtputf8Name.<br>  b. CA certificate with rfc822Name name constraint should not constrain an entity certicate with smtputf8Name.  Given an intermediate CA cert in ASN.1 with a full email address excluded name constraint in rfc822Name, it does *not* constraint an entity certificate with smtputf8Name.<br>  c. CA certificate with smtputf8Name name constraint should not constrain an entity certificiate with rfc822Name.  Given an intermediate CA cert in ASN.1 with a full email address excluded name constraint in smtputf8Name, it does *not* constraint an entity certificate with rfc822Name.<br>=====<div><br></div><div><span style="font-size:12.8px">So could I cooperate with the OpenSSL team to finalize this work and submit the patch to upstream?</span><div class="gmail-yj6qo gmail-ajU" style="margin:2px 0px 0px;font-size:12.8px"></div></div><div><br></div>-- <br><div class="gmail_signature">SY, Dmitry Belyavsky</div>
</div>