[openssl-project] To use or not use the iconv API, and to use or not use other libraries
Richard Levitte
levitte at openssl.org
Mon Jun 11 15:21:14 UTC 2018
In message <D50FD4D3-F34F-474A-B89C-62B58E6DE076 at akamai.com> on Mon, 11 Jun 2018 15:06:01 +0000, "Salz, Rich" <rsalz at akamai.com> said:
rsalz> > If B<-pass8bit> is given, the password is taken to be encoded in the current
rsalz> > locale, but is still used directly.
rsalz> > A future release might automatically convert the password to valid UTF-8
rsalz> > encoding if this flag is given.
rsalz>
rsalz> I would propose that "-pass8bit" means that each byte of the input is
rsalz> a unicode code point value (i.e. ASCII or LATIN1 supplement) and we'll
rsalz> convert to UCS-2 by prepending 0x00 to each one. If so, I would expect
rsalz> this flag to NOT ever change its meaning.
rsalz>
rsalz> I don't see the point of this.
rsalz>
rsalz> My goal, with the two flags, was to allow users to make explicit what they want, and to warn them that *one* of the cases might/will change in the future.
Well, that is what's done in PKCS12_generate_mac(), so this isn't
something that should be done by the application. What the appication
*must* do when getting '-pass8bit' is to do a naïve UTF-8 encode of
the input pass phrase string. PKCS12_generate_mac() will then decode
it and zero extend every resulting byte to 16 bits. If you *don't* do
this, you risk having any byte sequence that looks like UTF-8 in the
original input to be decoded and made into something other than what
the user intended.
Cheers,
Richard
--
Richard Levitte levitte at openssl.org
OpenSSL Project http://www.openssl.org/~levitte/
More information about the openssl-project
mailing list