Subject: Re: [saag] encrypted files with UTF-8/16 passwords

From: Nikos Mavrogiannopoulos <[email-masked]>
Date: Wed, 3 May 2017 02:08:08 +0200

On Fri, Mar 24, 2017 at 3:53 PM, Moriarty, Kathleen
<[email-masked]> wrote:
> Hi Nikos,
>
> They are just informational because they were contributed as existing standards.  Change control has been handed over to the IETF, so an update could happen to make them standards track.  Or you could start an updated draft to add what you need and we'll figure out if it has to stay informational or not.

I've submitted a draft that updates the previous ones, with
instructions on handling internationalized passwords at:
https://datatracker.ietf.org/doc/draft-mavrogiannopoulos-pkcs5-passwords/

regards,
Nikos

---

From: Russ Housley <[email-masked]>
Date: Wed, 3 May 2017 13:01:03 -0400

I do not understand two things in your Internet-Draft.  

In Section 3, I do not know what you mean by:

   As an exception to the OpaqueString profile, empty (zero-length)
   passwords MAY be used, when they are not they result of the [RFC7613]
   processing.

Can you please state as: If a zero-length string is provided as a password, then …

In Section 5.2, I do not know how an implementation is impacted by the MUST statement:

   … This is the correct
   version which any application supporting the use of files for
   certificates and keys MUST support.

I think you are trying to say that PKCS#12 implementations MUST encode the password in UTF-16 big-endian form.  However, Appendix B.1 of RFC 7292 already says that, and more.

   In this specification, however, all passwords are created from
   BMPStrings with a NULL terminator.  This means that each character in
   the original BMPString is encoded in 2 bytes in big-endian format
   (most-significant byte first).  There are no Unicode byte order
   marks.  The 2 bytes produced from the last character in the BMPString
   are followed by 2 additional bytes with the value 0x00.

Further, your example omits the UTF-16 null character (0x00 0x00) from the resulting password string.

Russ