From: David Woodhouse Date: Wed, 24 May 2017 11:18:14 +0000 (+0100) Subject: Document that PKCS#12 functions assume UTF-8 for passwords X-Git-Tag: OpenSSL_1_1_0f~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df73fcdc1bfab4125d8e79d4a0b6e9c2c2e85787;p=openssl Document that PKCS#12 functions assume UTF-8 for passwords Part of issue #3531 Reviewed-by: Rich Salz Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/3535) (cherry picked from commit cff85f39e438830cb5bc8bf7cb2ed6458670c5be) --- diff --git a/doc/crypto/PKCS12_newpass.pod b/doc/crypto/PKCS12_newpass.pod index b91051195f..6b22fd7280 100644 --- a/doc/crypto/PKCS12_newpass.pod +++ b/doc/crypto/PKCS12_newpass.pod @@ -17,6 +17,18 @@ PKCS12_newpass() changes the password of a PKCS12 structure. B is a pointer to a PKCS12 structure. B is the existing password and B is the new password. +=head1 NOTES + +Each of B and B is independently interpreted as a string in +the UTF-8 encoding. If it is not valid UTF-8, it is assumed to be ISO8859-1 +instead. + +In particular, this means that passwords in the locale character set +(or code page on Windows) must potentially be converted to UTF-8 before +use. This may include passwords from local text files, or input from +the terminal or command line. Refer to the documentation of +L, for example. + =head1 RETURN VALUES PKCS12_newpass() returns 1 on success or 0 on failure. Applications can diff --git a/doc/crypto/PKCS12_parse.pod b/doc/crypto/PKCS12_parse.pod index 2dfa7e259b..c03c371a6e 100644 --- a/doc/crypto/PKCS12_parse.pod +++ b/doc/crypto/PKCS12_parse.pod @@ -29,6 +29,15 @@ The B and B attributes (if present) on each certificate will be stored in the B and B attributes of the B structure. +The parameter B is interpreted as a string in the UTF-8 encoding. If it +is not valid UTF-8, then it is assumed to be ISO8859-1 instead. + +In particular, this means that passwords in the locale character set +(or code page on Windows) must potentially be converted to UTF-8 before +use. This may include passwords from local text files, or input from +the terminal or command line. Refer to the documentation of +L, for example. + =head1 RETURN VALUES PKCS12_parse() returns 1 for success and zero if an error occurred.