Skip to content

Comments

Script to find undocumented options#4136

Closed
johndoe31415 wants to merge 1 commit intoopenssl:masterfrom
johndoe31415:find_undocumented_opts
Closed

Script to find undocumented options#4136
johndoe31415 wants to merge 1 commit intoopenssl:masterfrom
johndoe31415:find_undocumented_opts

Conversation

@johndoe31415
Copy link
Contributor

@johndoe31415 johndoe31415 commented Aug 10, 2017

This script browses the manpages and tries all command line options and
shows where the two differ: Undocumented options (i.e., where an option
the help page mentions, but that doesn't appear in the manpage) and
unsupported options (i.e., where an option appears in the manpage, but
not in the help page).

I'm aware that most other scripts are written in Perl, but I'm unable to code any perl and wrote this script just to find discrepancies in the docs. So I thought I'd give it a shot to anyone who is interested.

This script browses the manpages and tries all command line options and
shows where the two differ: Undocumented options (i.e., where an option
the help page mentions, but that doesn't appear in the manpage) and
unsupported options (i.e., where an option appears in the manpage, but
not in the help page).
@johndoe31415
Copy link
Contributor Author

For the record, I wrote this because I believed #3043 to have the root cause in an option that's undocumented in the manpage (-ignore_errs). For reference, this is what it spits out for current master:

ca: Undocumented options are:
	* crlsec
	* sigopt
ciphers: Unsupported options are:
	* ssl3
	* tls1_3
cms: Undocumented options are:
	* EncryptedData_decrypt
	* aes128-wrap
	* aes192-wrap
	* aes256-wrap
	* allow_proxy_certs
	* debug_decrypt
	* des3-wrap
	* engine
	* indef
	* issuer_checks
	* keyform
	* no_attr_verify
	* no_content_verify
	* nosigs
	* noverify
	* pwri_password
	* receipt_request_first
	* verify_retcode
cms: Unsupported options are:
	* no_signer_cert_verify
crl: Undocumented options are:
	* badsig
	* crlnumber
	* fingerprint
	* gendelta
	* hash_old
	* key
	* keyform
	* no-CAfile
	* no-CApath
	* verify
dgst: Undocumented options are:
	* debug
	* mac
	* macopt
	* sigopt
dgst: Unsupported options are:
	* I
dsa: Undocumented options are:
	* pvk-none
	* pvk-strong
	* pvk-weak
enc: Undocumented options are:
	* base64
	* v
enc: Unsupported options are:
	* z
engine: Undocumented options are:
	* help
	* vvvv
errstr: Undocumented options are:
	* help
exit: Manpage for command entirely missing
gendsa: Undocumented options are:
	* passout
genpkey: Unsupported options are:
	* cipher
genrsa: Undocumented options are:
	* F4
help: Manpage for command entirely missing
list: Undocumented options are:
	* missing-help
ocsp: Undocumented options are:
	* allow_proxy_certs
	* badsig
	* ignore_err
	* issuer_checks
	* rmd
	* timeout
ocsp: Unsupported options are:
	* md5
passwd: Undocumented options are:
	* reverse
pkcs12: Undocumented options are:
	* LMK
	* engine
	* nodes
	* nomac
	* nomaciter
pkcs7: Undocumented options are:
	* print
pkey: Unsupported options are:
	* cipher
prime: Manpage for command entirely missing
rand: Undocumented options are:
	* engine
rehash: Undocumented options are:
	* compat
	* h
	* help
	* n
	* old
	* v
req: Undocumented options are:
	* pkeyopt
	* sigopt
rsa: Undocumented options are:
	* pvk-none
	* pvk-strong
	* pvk-weak
rsautl: Undocumented options are:
	* engine
	* oaep
	* passin
	* rev
	* x931
s_client: Undocumented options are:
	* CRL
	* CRLform
	* allow_proxy_certs
	* brief
	* build_chain
	* cert_chain
	* chainCAfile
	* chainCApath
	* client_sigalgs
	* crl_download
	* debug_broken_protocol
	* dhparam
	* groups
	* host
	* issuer_checks
	* keymatexport
	* keymatexportlen
	* legacy_renegotiation
	* legacy_server_connect
	* msgfile
	* mtu
	* name
	* named_curve
	* no_legacy_server_connect
	* no_renegotiation
	* no_resumption_on_reneg
	* nocommands
	* noct
	* port
	* prexit
	* psk
	* psk_identity
	* psk_session
	* record_padding
	* security_debug
	* security_debug_verbose
	* srp_lateuser
	* srp_moregroups
	* srp_strength
	* srppass
	* srpuser
	* ssl_client_engine
	* ssl_config
	* strict
	* timeout
	* use_srtp
	* verifyCAfile
	* verifyCApath
	* verify_quiet
	* xcert
	* xcertform
	* xchain
	* xchain_build
	* xkey
	* xkeyform
s_client: Unsupported options are:
	* sctp
	* ssl3
	* tls1_3
s_server: Undocumented options are:
	* psk_session
s_server: Unsupported options are:
	* sctp
	* ssl3
	* tls1_3
	* trace
s_time: Undocumented options are:
	* cafile
s_time: Unsupported options are:
	* CAfile
	* nbio
	* ssl3
sess_id: Undocumented options are:
	* cert
smime: Undocumented options are:
	* allow_proxy_certs
	* engine
	* issuer_checks
	* keyform
	* no_check_time
	* noattr
	* nocerts
	* nochain
	* nodetach
	* nointern
	* nosigs
	* nosmimecap
	* noverify
speed: Undocumented options are:
	* async_jobs
	* mb
	* misalign
	* mr
	* multi
srp: Manpage for command entirely missing
ts: Undocumented options are:
	* allow_proxy_certs
	* attime
	* auth_level
	* check_ss_sig
	* crl_check
	* crl_check_all
	* explicit_policy
	* extended_crl
	* help
	* ignore_critical
	* inhibit_any
	* inhibit_map
	* issuer_checks
	* no_alt_chains
	* no_check_time
	* partial_chain
	* policy
	* policy_check
	* policy_print
	* purpose
	* query
	* reply
	* suiteB_128
	* suiteB_128_only
	* suiteB_192
	* trusted_first
	* use_deltas
	* verify
	* verify_depth
	* verify_email
	* verify_hostname
	* verify_ip
	* verify_name
	* x509_strict
ts: Unsupported options are:
	* sha1
verify: Undocumented options are:
	* issuer_checks
version: Undocumented options are:
	* r
x509: Undocumented options are:
	* badsig
	* checkemail
	* checkhost
	* checkip
	* issuer_hash_old
	* next_serial
	* nocert
	* sigopt
	* subject_hash_old

@richsalz
Copy link
Contributor

wow, long comment :)
I like this. It probably has to be in perl. (Which is sad because I prefer python) And perhaps part of find-doc-nits? I can use your python script as the basis for find-doc-nits integration if necessary.

@johndoe31415
Copy link
Contributor Author

Hi Rich, yup I feared this -- maybe it's still useful for someone, even when it never makes it mainline :-)

@paulidale
Copy link
Contributor

Is having a Python script in the distro okay if it isn't run by the build system?
This seems like it would be useful even if only manually run (by those who've got Python installed).

@paulidale
Copy link
Contributor

Or in the tools repo?

@richsalz
Copy link
Contributor

I'm going to translate to perl and put it in the find-doc-nits script. I think it's highly useful!

@richsalz
Copy link
Contributor

BTW, you should look at the "list --missing-help" command.

@richsalz richsalz mentioned this pull request Aug 12, 2017
@richsalz
Copy link
Contributor

Closing in favor of #4144.
Thanks for the idea!

@richsalz richsalz closed this Aug 12, 2017
@kroeckx kroeckx mentioned this pull request Apr 1, 2020
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants