Latest update.
This commit is contained in:
@@ -8,16 +8,16 @@ openssl-pkeyutl - public key algorithm utility
|
||||
|
||||
B<openssl> B<pkeyutl>
|
||||
[B<-help>]
|
||||
[B<-in file>]
|
||||
[B<-in> I<file>]
|
||||
[B<-rawin>]
|
||||
[B<-digest algorithm>]
|
||||
[B<-out file>]
|
||||
[B<-sigfile file>]
|
||||
[B<-inkey file>]
|
||||
[B<-keyform PEM|DER|ENGINE>]
|
||||
[B<-passin arg>]
|
||||
[B<-peerkey file>]
|
||||
[B<-peerform PEM|DER|ENGINE>]
|
||||
[B<-digest> I<algorithm>]
|
||||
[B<-out> I<file>]
|
||||
[B<-sigfile> I<file>]
|
||||
[B<-inkey> I<file>]
|
||||
[B<-keyform> B<DER>|B<PEM>|B<ENGINE>]
|
||||
[B<-passin> I<arg>]
|
||||
[B<-peerkey> I<file>]
|
||||
[B<-peerform> B<DER>|B<PEM>|B<ENGINE>]
|
||||
[B<-pubin>]
|
||||
[B<-certin>]
|
||||
[B<-rev>]
|
||||
@@ -27,21 +27,23 @@ B<openssl> B<pkeyutl>
|
||||
[B<-encrypt>]
|
||||
[B<-decrypt>]
|
||||
[B<-derive>]
|
||||
[B<-kdf algorithm>]
|
||||
[B<-kdflen length>]
|
||||
[B<-pkeyopt opt:value>]
|
||||
[B<-pkeyopt_passin opt:passarg>]
|
||||
[B<-kdf> I<algorithm>]
|
||||
[B<-kdflen> I<length>]
|
||||
[B<-pkeyopt> I<opt>:I<value>]
|
||||
[B<-pkeyopt_passin> I<opt>[:I<passarg>]]
|
||||
[B<-hexdump>]
|
||||
[B<-asn1parse>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
[B<-rand> I<files>]
|
||||
[B<-writerand> I<file>]
|
||||
[B<-engine> I<id>]
|
||||
[B<-engine_impl>]
|
||||
|
||||
=for openssl ifdef engine engine_impl
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<pkeyutl> command can be used to perform low level public key operations
|
||||
using any supported algorithm.
|
||||
This command can be used to perform low level public key
|
||||
operations using any supported algorithm.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
@@ -51,7 +53,7 @@ using any supported algorithm.
|
||||
|
||||
Print out a usage message.
|
||||
|
||||
=item B<-in filename>
|
||||
=item B<-in> I<filename>
|
||||
|
||||
This specifies the input filename to read data from or standard input
|
||||
if this option is not specified.
|
||||
@@ -63,7 +65,7 @@ message digest algorithm. The user can specify a digest algorithm by using
|
||||
the B<-digest> option. This option can only be used with B<-sign> and
|
||||
B<-verify> and must be used with the Ed25519 and Ed448 algorithms.
|
||||
|
||||
=item B<-digest algorithm>
|
||||
=item B<-digest> I<algorithm>
|
||||
|
||||
This specifies the digest algorithm which is used to hash the input data before
|
||||
signing or verifying it with the input key. This option could be omitted if the
|
||||
@@ -71,37 +73,37 @@ signature algorithm does not require one (for instance, EdDSA). If this option
|
||||
is omitted but the signature algorithm requires one, a default value will be
|
||||
used. For signature algorithms like RSA, DSA and ECDSA, SHA-256 will be the
|
||||
default digest algorithm. For SM2, it will be SM3. If this option is present,
|
||||
then the B<-rawin> option must be also specified to B<pkeyutl>.
|
||||
then the B<-rawin> option must be also specified.
|
||||
|
||||
=item B<-out filename>
|
||||
=item B<-out> I<filename>
|
||||
|
||||
Specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-sigfile file>
|
||||
=item B<-sigfile> I<file>
|
||||
|
||||
Signature file, required for B<verify> operations only
|
||||
Signature file, required for B<-verify> operations only
|
||||
|
||||
=item B<-inkey file>
|
||||
=item B<-inkey> I<file>
|
||||
|
||||
The input key file, by default it should be a private key.
|
||||
|
||||
=item B<-keyform PEM|DER|ENGINE>
|
||||
=item B<-keyform> B<DER>|B<PEM>|B<ENGINE>
|
||||
|
||||
The key format PEM, DER or ENGINE. Default is PEM.
|
||||
|
||||
=item B<-passin arg>
|
||||
=item B<-passin> I<arg>
|
||||
|
||||
The input key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
The input key password source. For more information about the format of I<arg>
|
||||
see L<openssl(1)/Pass Phrase Options>.
|
||||
|
||||
=item B<-peerkey file>
|
||||
=item B<-peerkey> I<file>
|
||||
|
||||
The peer key file, used by key derivation (agreement) operations.
|
||||
|
||||
=item B<-peerform PEM|DER|ENGINE>
|
||||
=item B<-peerform> B<DER>|B<PEM>|B<ENGINE>
|
||||
|
||||
The peer key format PEM, DER or ENGINE. Default is PEM.
|
||||
The peer key format B<PEM>, B<DER> or B<ENGINE>. Default is B<PEM>.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
@@ -142,29 +144,29 @@ Decrypt the input data using a private key.
|
||||
|
||||
Derive a shared secret using the peer key.
|
||||
|
||||
=item B<-kdf algorithm>
|
||||
=item B<-kdf> I<algorithm>
|
||||
|
||||
Use key derivation function B<algorithm>. The supported algorithms are
|
||||
Use key derivation function I<algorithm>. The supported algorithms are
|
||||
at present B<TLS1-PRF> and B<HKDF>.
|
||||
Note: additional parameters and the KDF output length will normally have to be
|
||||
set for this to work.
|
||||
See L<EVP_PKEY_CTX_set_hkdf_md(3)> and L<EVP_PKEY_CTX_set_tls1_prf_md(3)>
|
||||
for the supported string parameters of each algorithm.
|
||||
|
||||
=item B<-kdflen length>
|
||||
=item B<-kdflen> I<length>
|
||||
|
||||
Set the output length for KDF.
|
||||
|
||||
=item B<-pkeyopt opt:value>
|
||||
=item B<-pkeyopt> I<opt>:I<value>
|
||||
|
||||
Public key options specified as opt:value. See NOTES below for more details.
|
||||
|
||||
=item B<-pkeyopt_passin opt:passarg>
|
||||
=item B<-pkeyopt_passin> I<opt>[:I<passarg>]
|
||||
|
||||
Allows reading a public key option B<opt> from stdin or a password source. If
|
||||
only opt is specified, the user will be prompted to enter the value on stdin.
|
||||
Alternatively, passarg can be specified which can be any value supported by
|
||||
B<PASS PHRASE ARGUMENTS> in L<openssl(1)>.
|
||||
Allows reading a public key option I<opt> from stdin or a password source.
|
||||
If only I<opt> is specified, the user will be prompted to enter a password on
|
||||
stdin. Alternatively, I<passarg> can be specified which can be any value
|
||||
supported by L<openssl(1)/Pass phrase options>.
|
||||
|
||||
=item B<-hexdump>
|
||||
|
||||
@@ -175,22 +177,13 @@ hex dump the output data.
|
||||
Parse the ASN.1 output data, this is useful when combined with the
|
||||
B<-verifyrecover> option when an ASN1 structure is signed.
|
||||
|
||||
=item B<-rand file...>
|
||||
=item B<-rand> I<files>, B<-writerand> I<file>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
See L<openssl(1)/Random State Options> for more information.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
=item B<-engine> I<id>
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
Specifying an engine (by its unique B<id> string) will cause B<pkeyutl>
|
||||
Specifying an engine (by its unique I<id> string) will cause this command
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -198,7 +191,7 @@ for all available algorithms.
|
||||
=item B<-engine_impl>
|
||||
|
||||
When used with the B<-engine> option, it specifies to also use
|
||||
engine B<id> for crypto operations.
|
||||
engine I<id> for crypto operations.
|
||||
|
||||
=back
|
||||
|
||||
@@ -207,15 +200,15 @@ engine B<id> for crypto operations.
|
||||
The operations and options supported vary according to the key algorithm
|
||||
and its implementation. The OpenSSL operations and options are indicated below.
|
||||
|
||||
Unless otherwise mentioned all algorithms support the B<digest:alg> option
|
||||
Unless otherwise mentioned all algorithms support the B<digest:>I<alg> option
|
||||
which specifies the digest in use for sign, verify and verifyrecover operations.
|
||||
The value B<alg> should represent a digest name as used in the
|
||||
The value I<alg> should represent a digest name as used in the
|
||||
EVP_get_digestbyname() function for example B<sha1>. This value is not used to
|
||||
hash the input data. It is used (by some algorithms) for sanity-checking the
|
||||
lengths of data passed in to the B<pkeyutl> and for creating the structures that
|
||||
make up the signature (e.g. B<DigestInfo> in RSASSA PKCS#1 v1.5 signatures).
|
||||
lengths of data passed in and for creating the structures that make up the
|
||||
signature (e.g. B<DigestInfo> in RSASSA PKCS#1 v1.5 signatures).
|
||||
|
||||
This utility does not hash the input data (except where -rawin is used) but
|
||||
This command does not hash the input data (except where -rawin is used) but
|
||||
rather it will use the data directly as input to the signature algorithm.
|
||||
Depending on the key type, signature type, and mode of padding, the maximum
|
||||
acceptable lengths of input data differ. The signed data can't be longer than
|
||||
@@ -236,9 +229,9 @@ B<pkeyopt> values are supported:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<rsa_padding_mode:mode>
|
||||
=item B<rsa_padding_mode:>I<mode>
|
||||
|
||||
This sets the RSA padding mode. Acceptable values for B<mode> are B<pkcs1> for
|
||||
This sets the RSA padding mode. Acceptable values for I<mode> are B<pkcs1> for
|
||||
PKCS#1 padding, B<sslv23> for SSLv23 padding, B<none> for no padding, B<oaep>
|
||||
for B<OAEP> mode, B<x931> for X9.31 mode and B<pss> for PSS.
|
||||
|
||||
@@ -256,15 +249,15 @@ verify and verifyrecover are can be performed in this mode.
|
||||
For B<pss> mode only sign and verify are supported and the digest type must be
|
||||
specified.
|
||||
|
||||
=item B<rsa_pss_saltlen:len>
|
||||
=item B<rsa_pss_saltlen:>I<len>
|
||||
|
||||
For B<pss> mode only this option specifies the salt length. Three special
|
||||
values are supported: "digest" sets the salt length to the digest length,
|
||||
"max" sets the salt length to the maximum permissible value. When verifying
|
||||
"auto" causes the salt length to be automatically determined based on the
|
||||
values are supported: B<digest> sets the salt length to the digest length,
|
||||
B<max> sets the salt length to the maximum permissible value. When verifying
|
||||
B<auto> causes the salt length to be automatically determined based on the
|
||||
B<PSS> block structure.
|
||||
|
||||
=item B<rsa_mgf1_md:digest>
|
||||
=item B<rsa_mgf1_md:>I<digest>
|
||||
|
||||
For PSS and OAEP padding sets the MGF1 digest. If the MGF1 digest is not
|
||||
explicitly set in PSS mode then the signing digest is used.
|
||||
@@ -275,11 +268,12 @@ explicitly set in PSS mode then the signing digest is used.
|
||||
|
||||
The RSA-PSS algorithm is a restricted version of the RSA algorithm which only
|
||||
supports the sign and verify operations with PSS padding. The following
|
||||
additional B<pkeyopt> values are supported:
|
||||
additional B<-pkeyopt> values are supported:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<rsa_padding_mode:mode>, B<rsa_pss_saltlen:len>, B<rsa_mgf1_md:digest>
|
||||
=item B<rsa_padding_mode:>I<mode>, B<rsa_pss_saltlen:>I<len>,
|
||||
B<rsa_mgf1_md:>I<digest>
|
||||
|
||||
These have the same meaning as the B<RSA> algorithm with some additional
|
||||
restrictions. The padding mode can only be set to B<pss> which is the
|
||||
@@ -318,8 +312,8 @@ no additional options.
|
||||
|
||||
These algorithms only support signing and verifying. OpenSSL only implements the
|
||||
"pure" variants of these algorithms so raw data can be passed directly to them
|
||||
without hashing them first. The option "-rawin" must be used with these
|
||||
algorithms with no "-digest" specified. Additionally OpenSSL only supports
|
||||
without hashing them first. The option B<-rawin> must be used with these
|
||||
algorithms with no B<-digest> specified. Additionally OpenSSL only supports
|
||||
"oneshot" operation with these algorithms. This means that the entire file to
|
||||
be signed/verified must be read into memory before processing it. Signing or
|
||||
Verifying very large files should be avoided. Additionally the size of the file
|
||||
@@ -330,17 +324,17 @@ must be known for this to work. If the size of the file cannot be determined
|
||||
|
||||
The SM2 algorithm supports sign, verify, encrypt and decrypt operations. For
|
||||
the sign and verify operations, SM2 requires an ID string to be passed in. The
|
||||
following B<pkeyopt> value is supported:
|
||||
following B<-pkeyopt> value is supported:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<sm2_id:string>
|
||||
=item B<sm2_id:>I<string>
|
||||
|
||||
This sets the ID string used in SM2 sign or verify operations. While verifying
|
||||
an SM2 signature, the ID string must be the same one used when signing the data.
|
||||
Otherwise the verification will fail.
|
||||
|
||||
=item B<sm2_hex_id:hex_string>
|
||||
=item B<sm2_hex_id:>I<hex_string>
|
||||
|
||||
This sets the ID string used in SM2 sign or verify operations. While verifying
|
||||
an SM2 signature, the ID string must be the same one used when signing the data.
|
||||
|
||||
Reference in New Issue
Block a user