[B<-sm2-id> I<string>]
[B<-sm2-hex-id> I<hex-string>]
+=for comment ifdef engine sm2-id sm2-hex-id
+
=head1 DESCRIPTION
The B<ca> command is a minimal CA application. It can be used
[B<-ciphersuites> I<val>]
[B<cipherlist>]
+=for comment ifdef ssl3 tls1 tls1_1 tls1_2 tls1_3 psk srp
+
=head1 DESCRIPTION
The B<ciphers> command converts textual OpenSSL cipher lists into ordered
[B<-subject> I<subj>]
[I<cert.pem ...>]
+=for comment ifdef des-wrap engine
+
=head1 DESCRIPTION
The B<cms> command handles S/MIME v3.1 mail. It can encrypt, decrypt, sign and
[B<-CAfile> I<file>]
[B<-CApath> I<dir>]
+=for comment ifdef hash_old
+
=head1 DESCRIPTION
The B<crl> command processes CRL files in DER or PEM format.
[B<-engine> I<id>]
[I<numbits>]
+=for comment ifdef dsaparam engine
+
=head1 DESCRIPTION
This command is used to manipulate DH parameter files.
[B<-pubout>]
[B<-engine> I<id>]
+=for comment ifdef pvk-string pvk-weak pvk-none engine
+
=head1 DESCRIPTION
The B<dsa> command processes DSA keys. They can be converted between various
[B<-check>]
[B<-engine> I<id>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<ec> command processes EC keys. They can be converted between various
[B<-genkey>]
[B<-engine> I<id>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
This command is used to manipulate or generate EC parameter files.
[B<-writerand> I<file>]
[B<-engine> I<id>]
+=for comment ifdef z engine
+
B<openssl> I<cipher> [B<...>]
=head1 DESCRIPTION
[B<-verbose>]
[B<paramfile>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<gendsa> command generates a DSA private key from a DSA parameter file
[B<-genparam>]
[B<-text>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<genpkey> command generates a private key.
[B<-verbose>]
[B<numbits>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<genrsa> command generates an RSA private key.
[B<-enginesdir>]
[B<-modulesdir> ]
[B<-dsoext>]
-[B<-dirfilesep>]
+[B<-dirnamesep>]
[B<-listsep>]
[B<-seeds>]
[B<-cpusettings>]
[B<-rcid> I<digest>]
[B<->I<digest>]
+=for comment ifdef multi
+
=head1 DESCRIPTION
The Online Certificate Status Protocol (OCSP) enables applications to
[B<-writerand> I<file>]
{I<password>}
+=for comment ifdef crypt
+
=head1 DESCRIPTION
The B<passwd> command computes the hash of a password typed at
[B<-no-CApath>]
[B<-CSP> I<name>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<pkcs12> command allows PKCS#12 files (sometimes referred to as
[B<-noout>]
[B<-engine> I<id>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<pkcs7> command processes PKCS#7 files in DER or PEM format.
[B<-scrypt_r> I<r>]
[B<-scrypt_p> I<p>]
+=for comment ifdef engine scrypt scrypt_N scrypt_r scrypt_p
+
=head1 DESCRIPTION
The B<pkcs8> command processes private keys in PKCS#8 format. It can handle
[B<-check>]
[B<-pubcheck>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<pkey> command processes public or private keys. They can be converted
[B<-engine> I<id>]
[B<-check>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<pkeyparam> command processes public key algorithm parameters.
[B<-engine> I<id>]
[B<-engine_impl>]
+=for comment ifdef engine engine_impl
+
=head1 DESCRIPTION
The B<pkeyutl> command can be used to perform low level public key operations
=head1 SYNOPSIS
B<openssl provider>
+[B<-help>]
[B<-v>]
[B<-vv>]
[B<-vvv>]
=over 4
+=item B<-help>
+
+Print out a usage message.
+
=item B<-v> B<-vv> B<-vvv>
Provides information about each specified provider.
[B<-hex>]
I<num>
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<rand> command outputs I<num> pseudo-random bytes after seeding
[B<-sm2-id> I<string>]
[B<-sm2-hex-id> I<hex-string>]
+=for comment ifdef engine keygen_engine sm2-id sm2-hex-id
+
=head1 DESCRIPTION
The B<req> command primarily creates and processes certificate requests
[B<-RSAPublicKey_out>]
[B<-engine> I<id>]
+=for comment ifdef pvk-strong pvk-weak pvk-none engine
+
=head1 DESCRIPTION
The B<rsa> command processes RSA keys. They can be converted between various
[B<-hexdump>]
[B<-asn1parse>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<rsautl> command can be used to sign, verify, encrypt and decrypt
[B<-enable_pha>]
[I<host>:I<port>]
+=for comment ifdef engine ssl_client_engine ct noct ctlogfile
+
+=for comment ifdef ssl3 unix 4 6 use_srtp status trace wdebug nextprotoneg
+
+=for comment ifdef ssl3 tls1 tls1_1 tls1_2 tls1_3 dtls mtu dtls1 dtls1_2
+
+=for comment ifdef sctp_label_bug sctp
+
+=for comment ifdef srpuser srppass srp_lateuser srp_moregroups srp_strength
+
=head1 DESCRIPTION
The B<s_client> command implements a generic SSL/TLS client which connects
[B<-no_anti_replay>]
[B<-http_server_binmode>]
+=for comment ifdef unix 4 6 unlink no_dhe nextprotoneg use_srtp engine
+
+=for comment ifdef status status_verbose status_timeout status_url status_file
+
+=for comment ifdef psk_hint srpvfile srpuserseed sctp sctp_label_bug
+
+=for comment ifdef sctp sctp_label_bug trace mtu timeout listen
+
+=for comment ifdef ssl3 tls1 tls1_1 tls1_2 tls1_3 dtls mtu dtls1 dtls1_2
+
=head1 DESCRIPTION
The B<s_server> command implements a generic SSL/TLS server which listens
[B<-cipher> I<cipherlist>]
[B<-ciphersuites> I<val>]
+=for comment ifdef ssl3 tls1 tls1_1 tls1_2 tls1_3
+
=head1 DESCRIPTION
The B<s_time> command implements a generic SSL/TLS client which connects to a
[B<-md> I<digest>]
[cert.pem]...
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<smime> command handles S/MIME mail. It can encrypt, decrypt, sign and
[B<-bytes> I<num>]
[B<algorithm...>]
+=for comment ifdef cmac multi async_jobs engine
+
=head1 DESCRIPTION
This command is used to test the performance of cryptographic algorithms.
[B<-verify>]
[B<-engine> I<id>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<spkac> command processes Netscape signed public key and challenge
[B<-passout> I<arg>]
[I<user...>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<srp> command is used to maintain an SRP (secure remote password)
[B<-verify_name> I<name>]
[B<-x509_strict>]
+=for comment ifdef engine
+
=head1 DESCRIPTION
The B<ts> command is a basic Time Stamping Authority (TSA) client and server
[B<->]
[certificates]
+=for comment ifdef engine sm2-id sm2-hex-id
+
=head1 DESCRIPTION
The B<verify> command verifies certificate chains.
[B<-engine> I<id>]
[B<-preserve_dates>]
+=for comment ifdef engine subject_hash_old issuer_hash_old
+
=head1 DESCRIPTION
The B<x509> command is a multi purpose certificate utility. It can be
}
}
+# Cipher/digests to skip if not documented
my %skips = (
'aes128' => 1,
'aes192' => 1,
'des' => 1,
'des3' => 1,
'idea' => 1,
- '[cipher]' => 1,
- '[digest]' => 1,
+ 'cipher' => 1,
+ 'digest' => 1,
);
sub checkflags {
my $doc = shift;
my %cmdopts;
my %docopts;
+ my %localskips;
# Get the list of options in the command.
open CFH, "./apps/openssl list --options $cmd|"
while ( <CFH> ) {
chop;
last if /DESCRIPTION/;
+ if ( /=for comment ifdef (.*)/ ) {
+ foreach my $f ( split / /, $1 ) {
+ $localskips{$f} = 1;
+ }
+ next;
+ }
next unless /\[B<-([^ >]+)/;
+ my $opt = $1;
+ $opt = $1 if $opt =~ /I<(.*)/;
$docopts{$1} = 1;
}
close CFH;
}
if ( scalar @undocced > 0 ) {
foreach ( @undocced ) {
- err("doc/man1/$cmd.pod: Missing -$_");
+ err("$doc: undocumented option -$_");
}
}
}
if ( scalar @unimpl > 0 ) {
foreach ( @unimpl ) {
- next if defined $skips{$_};
- err("doc/man1/$cmd.pod: Not implemented -$_");
+ next if defined $skips{$_} || defined $localskips{$_};
+ err("$cmd documented but not implemented -$_");
}
}
}