Provide two different function pointers for option function callbacks. This
allows for simpler code in the common cases and will allow for further
extension to support the complex cases.
Slightly simplify options parsing logic.
Only accept a single unnamed argument - the existing behaviour is to
silently accept multiple unnamed arguments, ignoring all except the last.
This behaviour was already inconsistent between openssl(1) applications;
apply the principal of least surprise. This will also simplify the addition
of upcoming functionality.
Provide a mechanism for option parsing to return the number of arguments
that it has consumed. This allows for the handling of multiple unnamed
arguments, including lists of filenames.
Teach option parsing that a single hyphen denotes the end of named options
(as currently only implemented by some of the openssl(1) applications).
Provide an option type that allows for a callback function to consume an
arbitrary number of arguments. This will allow for more complex option
handling as required by some of the openssl(1) applications.
Allow a default option to be specified by having a NULL name, but a valid
option type. In this case process the option as per normal.
Fix subtle typo.
don't leak timing info about padding errors by generating a fake key
afterwards. openssl has a more complicated fix, but it's less intrusive
for now to simply hoist the expensive part (fake key generation) up without
sweating a branch or two.
ok bcook jsing