| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | =pod | 
					
						
							| 
									
										
										
										
											2020-02-27 05:45:31 +08:00
										 |  |  | {- OpenSSL::safe::output_do_not_edit_headers(); -} | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =for comment | 
					
						
							| 
									
										
										
										
											2020-04-27 12:59:50 +08:00
										 |  |  | Original text by James Westby. | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-02 03:10:17 +08:00
										 |  |  | openssl-rehash, c_rehash - Create symbolic links to files named by the hash | 
					
						
							|  |  |  | values | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							| 
									
										
										
										
											2025-03-06 03:44:58 +08:00
										 |  |  | =for openssl duplicate options | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-08 00:48:47 +08:00
										 |  |  | B<openssl> | 
					
						
							|  |  |  | B<rehash> | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | [B<-h>] | 
					
						
							|  |  |  | [B<-help>] | 
					
						
							|  |  |  | [B<-old>] | 
					
						
							| 
									
										
										
											
												Document most missing options
Add cmd-nits make target.
Listing options should stop when it hits the "parameters" separator.
Add missing .pod.in files to doc/man1/build.info
Tweak find-doc-nits to try openssl-XXX before XXX for POD files and
change an error messavge to be more useful.
Fix the following pages: ca, cms, crl, dgst, enc,
engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand,
rehash, req, rsautil, s_server, speed, s_time,
sess_id, smime, srp, ts, x509.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/10873)
											
										 
											2020-01-17 02:40:52 +08:00
										 |  |  | [B<-compat>] | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | [B<-n>] | 
					
						
							|  |  |  | [B<-v>] | 
					
						
							| 
									
										
										
										
											2020-02-25 12:29:30 +08:00
										 |  |  | {- $OpenSSL::safe::opt_provider_synopsis -} | 
					
						
							| 
									
										
										
										
											2019-10-01 15:57:37 +08:00
										 |  |  | [I<directory>] ... | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-08 00:48:47 +08:00
										 |  |  | B<c_rehash> | 
					
						
							| 
									
										
										
										
											2019-10-02 03:10:17 +08:00
										 |  |  | [B<-h>] | 
					
						
							|  |  |  | [B<-help>] | 
					
						
							|  |  |  | [B<-old>] | 
					
						
							|  |  |  | [B<-n>] | 
					
						
							|  |  |  | [B<-v>] | 
					
						
							| 
									
										
										
										
											2020-02-25 12:29:30 +08:00
										 |  |  | {- $OpenSSL::safe::opt_provider_synopsis -} | 
					
						
							| 
									
										
										
										
											2019-10-02 03:10:17 +08:00
										 |  |  | [I<directory>] ... | 
					
						
							| 
									
										
										
										
											2015-05-08 00:48:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												Document most missing options
Add cmd-nits make target.
Listing options should stop when it hits the "parameters" separator.
Add missing .pod.in files to doc/man1/build.info
Tweak find-doc-nits to try openssl-XXX before XXX for POD files and
change an error messavge to be more useful.
Fix the following pages: ca, cms, crl, dgst, enc,
engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand,
rehash, req, rsautil, s_server, speed, s_time,
sess_id, smime, srp, ts, x509.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/10873)
											
										 
											2020-01-17 02:40:52 +08:00
										 |  |  | This command is generally equivalent to the external | 
					
						
							|  |  |  | script B<c_rehash>, | 
					
						
							|  |  |  | except for minor differences noted below. | 
					
						
							| 
									
										
										
										
											2015-05-08 00:48:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
											
												Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command".  In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in.  However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
    B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
											
										 
											2019-10-02 01:43:36 +08:00
										 |  |  | B<openssl rehash> scans directories and calculates a hash value of | 
					
						
							| 
									
										
										
										
											2019-10-02 02:19:45 +08:00
										 |  |  | each F<.pem>, F<.crt>, F<.cer>, or F<.crl> | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | file in the specified directory list and creates symbolic links | 
					
						
							|  |  |  | for each file, where the name of the link is the hash value. | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | (If the platform does not support symbolic links, a copy is made.) | 
					
						
							| 
									
										
										
											
												Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command".  In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in.  However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
    B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
											
										 
											2019-10-02 01:43:36 +08:00
										 |  |  | This command is useful as many programs that use OpenSSL require | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | directories to be set up like this in order to find certificates. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If any directories are named on the command line, then those are | 
					
						
							|  |  |  | processed in turn. If not, then the B<SSL_CERT_DIR> environment variable | 
					
						
							| 
									
										
										
										
											2015-04-14 00:29:52 +08:00
										 |  |  | is consulted; this should be a colon-separated list of directories, | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | like the Unix B<PATH> variable. | 
					
						
							|  |  |  | If that is not set then the default directory (installation-specific | 
					
						
							| 
									
										
										
										
											2019-10-02 02:19:45 +08:00
										 |  |  | but often F</usr/local/ssl/certs>) is processed. | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | In order for a directory to be processed, the user must have write | 
					
						
							| 
									
										
										
										
											2015-09-08 10:21:38 +08:00
										 |  |  | permissions on that directory, otherwise an error will be generated. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-02 00:16:29 +08:00
										 |  |  | The links created are of the form I<HHHHHHHH.D>, where each I<H> | 
					
						
							|  |  |  | is a hexadecimal character and I<D> is a single decimal digit. | 
					
						
							| 
									
										
										
											
												Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command".  In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in.  However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
    B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
											
										 
											2019-10-02 01:43:36 +08:00
										 |  |  | When a directory is processed, all links in it that have a name | 
					
						
							|  |  |  | in that syntax are first removed, even if they are being used for | 
					
						
							|  |  |  | some other purpose. | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | To skip the removal step, use the B<-n> flag. | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | Hashes for CRL's look similar except the letter B<r> appears after | 
					
						
							| 
									
										
										
										
											2019-10-02 00:16:29 +08:00
										 |  |  | the period, like this: I<HHHHHHHH.>B<r>I<D>. | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Multiple objects may have the same hash; they will be indicated by | 
					
						
							| 
									
										
										
										
											2019-10-02 00:16:29 +08:00
										 |  |  | incrementing the I<D> value. Duplicates are found by comparing the | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | full SHA-1 fingerprint. A warning will be displayed if a duplicate | 
					
						
							|  |  |  | is found. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-31 05:56:31 +08:00
										 |  |  | A warning will also be displayed if there are files that | 
					
						
							| 
									
										
										
										
											2015-09-08 10:21:38 +08:00
										 |  |  | cannot be parsed as either a certificate or a CRL or if | 
					
						
							|  |  |  | more than one such object appears in the file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head2 Script Configuration | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-08 10:21:38 +08:00
										 |  |  | The B<c_rehash> script | 
					
						
							|  |  |  | uses the B<openssl> program to compute the hashes and | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | fingerprints. If not found in the user's B<PATH>, then set the | 
					
						
							|  |  |  | B<OPENSSL> environment variable to the full pathname. | 
					
						
							|  |  |  | Any program can be used, it will be invoked as follows for either | 
					
						
							|  |  |  | a certificate or CRL: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  |   $OPENSSL x509 -hash -fingerprint -noout -in FILENAME | 
					
						
							|  |  |  |   $OPENSSL crl -hash -fingerprint -noout -in FILENAME | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-02 00:16:29 +08:00
										 |  |  | where I<FILENAME> is the filename. It must output the hash of the | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | file on the first line, and the fingerprint on the second, | 
					
						
							|  |  |  | optionally prefixed with some text and an equals sign. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | =head1 OPTIONS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =over 4 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-12 23:29:22 +08:00
										 |  |  | =item B<-help> B<-h> | 
					
						
							| 
									
										
										
										
											2016-02-06 00:58:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Display a brief usage message. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | =item B<-old> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Use old-style hashing (MD5, as opposed to SHA-1) for generating | 
					
						
							| 
									
										
										
										
											2015-09-08 10:21:38 +08:00
										 |  |  | links to be used for releases before 1.0.0. | 
					
						
							|  |  |  | Note that current versions will not use the old style. | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<-n> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Do not remove existing links. | 
					
						
							|  |  |  | This is needed when keeping new and old-style links in the same directory. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-12 19:30:21 +08:00
										 |  |  | =item B<-compat> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Generate links for both old-style (MD5) and new-style (SHA1) hashing. | 
					
						
							|  |  |  | This allows releases before 1.0.0 to use these links along-side newer | 
					
						
							|  |  |  | releases. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | =item B<-v> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Print messages about old links removed and new links created. | 
					
						
							| 
									
										
										
											
												Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command".  In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in.  However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
    B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
											
										 
											2019-10-02 01:43:36 +08:00
										 |  |  | By default, this command only lists each directory as it is processed. | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-25 12:29:30 +08:00
										 |  |  | {- $OpenSSL::safe::opt_provider_item -} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-08 06:45:02 +08:00
										 |  |  | =back | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | =head1 ENVIRONMENT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-04 03:39:09 +08:00
										 |  |  | =over 4 | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<OPENSSL> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The path to an executable to use to generate hashes and | 
					
						
							|  |  |  | fingerprints (see above). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-22 11:06:30 +08:00
										 |  |  | =item B<PATH> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | List of paths, separated by colons (or semicolons, on Windows platforms), | 
					
						
							|  |  |  | where the B<openssl> executable is searched in case the path to the hash | 
					
						
							|  |  |  | generating executable is not provided in the B<OPENSSL> environment variable | 
					
						
							|  |  |  | or it is not usable (that is, does not exist or is not executable). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-14 22:14:35 +08:00
										 |  |  | =item B<SSL_CERT_DIR> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Colon separated list of directories to operate on. | 
					
						
							|  |  |  | Ignored if directories are listed on the command line. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =back | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | L<openssl(1)>, | 
					
						
							| 
									
										
										
										
											2019-08-22 07:04:41 +08:00
										 |  |  | L<openssl-crl(1)>, | 
					
						
							|  |  |  | L<openssl-x509(1)> | 
					
						
							| 
									
										
										
										
											2016-05-18 22:16:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-23 20:55:52 +08:00
										 |  |  | Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 21:04:11 +08:00
										 |  |  | Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  | in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  | L<https://www.openssl.org/source/license.html>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =cut |