Refactor -passin/-passout documentation

Always refer to openssl.pod instead of repeating the same description
everywhere.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10126)
diff --git a/apps/list.c b/apps/list.c
index 77fd20e..8c0d9c9 100644
--- a/apps/list.c
+++ b/apps/list.c
@@ -331,11 +331,14 @@
         return;
 
     for ( ; o->name != NULL; o++) {
+        char c = o->valtype;
+
         if (o->name == OPT_HELP_STR
                 || o->name == OPT_MORE_STR
                 || o->name[0] == '\0')
             continue;
         BIO_printf(bio_out, "%s %c\n", o->name, o->valtype);
+        BIO_printf(bio_out, "%s %c\n", o->name, c == '\0' ? '-' : c);
     }
     /* Always output the -- marker since it is sometimes documented. */
     BIO_printf(bio_out, "- -\n");
diff --git a/doc/man1/openssl-ca.pod b/doc/man1/openssl-ca.pod
index a939f4d..6f6580c 100644
--- a/doc/man1/openssl-ca.pod
+++ b/doc/man1/openssl-ca.pod
@@ -166,7 +166,7 @@
 =item B<-passin> I<arg>
 
 The key password source. For more information about the format of B<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-notext>
 
diff --git a/doc/man1/openssl-cms.pod b/doc/man1/openssl-cms.pod
index 0468fdb..40ffd0f 100644
--- a/doc/man1/openssl-cms.pod
+++ b/doc/man1/openssl-cms.pod
@@ -474,7 +474,7 @@
 =item B<-passin> I<arg>
 
 The private key password source. For more information about the format of B<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-rand> I<files>
 
diff --git a/doc/man1/openssl-dgst.pod b/doc/man1/openssl-dgst.pod
index 5f836f9..b2da922 100644
--- a/doc/man1/openssl-dgst.pod
+++ b/doc/man1/openssl-dgst.pod
@@ -101,7 +101,7 @@
 =item B<-passin> I<arg>
 
 The private key password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-verify> I<filename>
 
diff --git a/doc/man1/openssl-dsa.pod b/doc/man1/openssl-dsa.pod
index 3e3a114..14a9528 100644
--- a/doc/man1/openssl-dsa.pod
+++ b/doc/man1/openssl-dsa.pod
@@ -73,11 +73,6 @@
 option is not specified. If the key is encrypted a pass phrase will be
 prompted for.
 
-=item B<-passin> I<arg>
-
-The input file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-out> I<filename>
 
 This specifies the output filename to write a key to or standard output by
@@ -85,10 +80,11 @@
 prompted for. The output filename should B<not> be the same as the input
 filename.
 
-=item B<-passout> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The output file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
 
diff --git a/doc/man1/openssl-ec.pod b/doc/man1/openssl-ec.pod
index 8f09692..82a33bb 100644
--- a/doc/man1/openssl-ec.pod
+++ b/doc/man1/openssl-ec.pod
@@ -66,11 +66,6 @@
 option is not specified. If the key is encrypted a pass phrase will be
 prompted for.
 
-=item B<-passin> I<arg>
-
-The input file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-out> I<filename>
 
 This specifies the output filename to write a key to or standard output by
@@ -78,10 +73,11 @@
 prompted for. The output filename should B<not> be the same as the input
 filename.
 
-=item B<-passout> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The output file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-des>|B<-des3>|B<-idea>
 
diff --git a/doc/man1/openssl-enc.pod b/doc/man1/openssl-enc.pod
index f2608a5..327356d 100644
--- a/doc/man1/openssl-enc.pod
+++ b/doc/man1/openssl-enc.pod
@@ -73,7 +73,7 @@
 =item B<-pass> I<arg>
 
 The password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-e>
 
diff --git a/doc/man1/openssl-genpkey.pod b/doc/man1/openssl-genpkey.pod
index bace33a..3fd6bef 100644
--- a/doc/man1/openssl-genpkey.pod
+++ b/doc/man1/openssl-genpkey.pod
@@ -45,7 +45,7 @@
 =item B<-pass> I<arg>
 
 The output file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-I<cipher>>
 
diff --git a/doc/man1/openssl-genrsa.pod b/doc/man1/openssl-genrsa.pod
index 39e221c..27ca9f7 100644
--- a/doc/man1/openssl-genrsa.pod
+++ b/doc/man1/openssl-genrsa.pod
@@ -52,7 +52,7 @@
 =item B<-passout> I<arg>
 
 The output file password source. For more information about the format
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
 
diff --git a/doc/man1/openssl-pkcs12.pod b/doc/man1/openssl-pkcs12.pod
index 4ea722b..af044d5 100644
--- a/doc/man1/openssl-pkcs12.pod
+++ b/doc/man1/openssl-pkcs12.pod
@@ -76,22 +76,10 @@
 The filename to write certificates and private keys to, standard output by
 default.  They are all written in PEM format.
 
-=item B<-passin> I<arg>
-
-The PKCS#12 file (i.e. input file) password source. For more information about
-the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
-=item B<-passout> I<arg>
-
-Pass phrase source to encrypt any outputted private keys with. For more
-information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-password> I<arg>
 
-With -export, -password is equivalent to -passout.
-Otherwise, -password is equivalent to -passin.
+With B<-export>, B<-password> is equivalent to B<-passout>,
+otherwise it is equivalent to B<-passin>.
 
 =item B<-noout>
 
@@ -156,7 +144,7 @@
 Prompt for separate integrity and encryption passwords: most software
 always assumes these are the same so this option will render such
 PKCS#12 files unreadable. Cannot be used in combination with the options
--password, -passin (if importing) or -passout (if exporting).
+B<-password>, B<-passin> if importing, or B<-passout> if exporting.
 
 =back
 
@@ -204,15 +192,12 @@
 appear. Netscape ignores friendly names on other certificates whereas MSIE
 displays them.
 
-=item B<-pass> I<arg>, B<-passout> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The PKCS#12 file (i.e. output file) password source. For more information about
-the format of I<arg> see L<openssl(1)/Pass phrase options>.
-
-=item B<-passin> I<password>
-
-Pass phrase source to decrypt any input private keys with. For more information
-about the format of I<arg> see L<openssl(1)/Pass phrase options>.
+The password source for the input, and for encrypting any private keys that
+are output.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-chain>
 
diff --git a/doc/man1/openssl-pkcs8.pod b/doc/man1/openssl-pkcs8.pod
index a3b6b7b..7015ab9 100644
--- a/doc/man1/openssl-pkcs8.pod
+++ b/doc/man1/openssl-pkcs8.pod
@@ -73,10 +73,11 @@
 option is not specified. If the key is encrypted a pass phrase will be
 prompted for.
 
-=item B<-passin> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The input file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-out> I<filename>
 
@@ -85,11 +86,6 @@
 prompted for. The output filename should B<not> be the same as the input
 filename.
 
-=item B<-passout> I<arg>
-
-The output file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-iter> I<count>
 
 When creating new PKCS#8 containers, use a given number of iterations on
diff --git a/doc/man1/openssl-pkey.pod b/doc/man1/openssl-pkey.pod
index 4177a6f..66ec9d1 100644
--- a/doc/man1/openssl-pkey.pod
+++ b/doc/man1/openssl-pkey.pod
@@ -55,10 +55,11 @@
 option is not specified. If the key is encrypted a pass phrase will be
 prompted for.
 
-=item B<-passin> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The input file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-out> I<filename>
 
@@ -67,11 +68,6 @@
 will be prompted for. The output filename should B<not> be the same as the input
 filename.
 
-=item B<-passout> I<arg>
-
-The output file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-traditional>
 
 Normally a private key is written using standard format: this is PKCS#8 form
diff --git a/doc/man1/openssl-pkeyutl.pod b/doc/man1/openssl-pkeyutl.pod
index 1f231ba..b614b4a 100644
--- a/doc/man1/openssl-pkeyutl.pod
+++ b/doc/man1/openssl-pkeyutl.pod
@@ -95,7 +95,7 @@
 =item B<-passin> I<arg>
 
 The input key password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-peerkey> I<file>
 
diff --git a/doc/man1/openssl-req.pod b/doc/man1/openssl-req.pod
index d0d1700..1312673 100644
--- a/doc/man1/openssl-req.pod
+++ b/doc/man1/openssl-req.pod
@@ -90,21 +90,17 @@
 Pass options to the signature algorithm during sign or verify operations.
 Names and values of these options are algorithm-specific.
 
-=item B<-passin> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The input file password source. For more information about the format of B<arg>
-see L<openssl(1)/Pass phrase options>.
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-out> I<filename>
 
 This specifies the output filename to write to or standard output by
 default.
 
-=item B<-passout> I<arg>
-
-The output file password source. For more information about the format of B<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-text>
 
 Prints out the certificate request in text form.
diff --git a/doc/man1/openssl-rsa.pod b/doc/man1/openssl-rsa.pod
index 7c2fd9e..61a3f26 100644
--- a/doc/man1/openssl-rsa.pod
+++ b/doc/man1/openssl-rsa.pod
@@ -73,10 +73,11 @@
 option is not specified. If the key is encrypted a pass phrase will be
 prompted for.
 
-=item B<-passin> I<arg>
+=item B<-passin> I<arg>, B<-passout> I<arg>
 
-The input file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-out> I<filename>
 
@@ -85,11 +86,6 @@
 will be prompted for. The output filename should B<not> be the same as the input
 filename.
 
-=item B<-passout> I<arg>
-
-The output file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
-
 =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
 
 These options encrypt the private key with the specified
diff --git a/doc/man1/openssl-s_client.pod b/doc/man1/openssl-s_client.pod
index 8ad2679..598e683 100644
--- a/doc/man1/openssl-s_client.pod
+++ b/doc/man1/openssl-s_client.pod
@@ -200,7 +200,7 @@
 
 The proxy password source, used with the B<-proxy_user> flag.
 For more information about the format of B<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-unix> I<path>
 
diff --git a/doc/man1/openssl-s_server.pod b/doc/man1/openssl-s_server.pod
index e99d3b6..4c44db8 100644
--- a/doc/man1/openssl-s_server.pod
+++ b/doc/man1/openssl-s_server.pod
@@ -306,7 +306,7 @@
 =item B<-pass> I<val>
 
 The private key password source. For more information about the format of B<val>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-dcert> I<infile>, B<-dkey> I<infile>
 
diff --git a/doc/man1/openssl-smime.pod b/doc/man1/openssl-smime.pod
index 4faf378..50fabe3 100644
--- a/doc/man1/openssl-smime.pod
+++ b/doc/man1/openssl-smime.pod
@@ -296,7 +296,7 @@
 =item B<-passin> I<arg>
 
 The private key password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-rand> I<files>
 
diff --git a/doc/man1/openssl-spkac.pod b/doc/man1/openssl-spkac.pod
index fb64a67..0f26986 100644
--- a/doc/man1/openssl-spkac.pod
+++ b/doc/man1/openssl-spkac.pod
@@ -61,7 +61,7 @@
 =item B<-passin> I<arg>
 
 The input file password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-challenge> I<string>
 
diff --git a/doc/man1/openssl-srp.pod b/doc/man1/openssl-srp.pod
index 8890e00..d25867a 100644
--- a/doc/man1/openssl-srp.pod
+++ b/doc/man1/openssl-srp.pod
@@ -35,17 +35,6 @@
 
 The configuration file to use, and the section within the file, can be
 specified with the B<-config> and B<-name> flags, respectively.
-If the config file is not specified, the B<-srpvfile> can be used to
-just specify the file to operate on.
-
-The B<-userinfo> option specifies additional information to add when
-adding or modifying a user.
-
-The B<-gn> flag specifies the I<g> and I<N> values, using one of
-the strengths defined in IETF RFC 5054.
-
-The B<-passin> and B<-passout> arguments are parsed as described in
-the L<openssl(1)/Pass phrase options> command.
 
 =head1 OPTIONS
 
@@ -59,6 +48,27 @@
 
 Generate verbose output while processing.
 
+=item B<-srpvfile> I<file>
+
+If the config file is not specified,
+B<-srpvfile> can be used to specify the file to operate on.
+
+=item B<-gn>
+
+Specifies the B<g> and B<N> values, using one of
+the strengths defined in IETF RFC 5054.
+
+=item B<-userinfo>
+
+specifies additional information to add when
+adding or modifying a user.
+
+=item B<-passin> I<arg>, B<-passout> I<arg>
+
+The password source for the input and output file.
+For more information about the format of B<arg>
+see L<openssl(1)/Pass Phrase Options>.
+
 =back
 
 =head1 COPYRIGHT
diff --git a/doc/man1/openssl-storeutl.pod b/doc/man1/openssl-storeutl.pod
index dbe0d9f..0ceb1ce 100644
--- a/doc/man1/openssl-storeutl.pod
+++ b/doc/man1/openssl-storeutl.pod
@@ -50,7 +50,7 @@
 =item B<-passin> I<arg>
 
 the key password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-text>
 
diff --git a/doc/man1/openssl-x509.pod b/doc/man1/openssl-x509.pod
index f7e56ab..b4d41df 100644
--- a/doc/man1/openssl-x509.pod
+++ b/doc/man1/openssl-x509.pod
@@ -373,7 +373,7 @@
 =item B<-passin> I<arg>
 
 The key password source. For more information about the format of I<arg>
-see L<openssl(1)/Pass phrase options>.
+see L<openssl(1)/Pass Phrase Options>.
 
 =item B<-clrext>