2017-01-06 22:41:04 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2017-06-06 20:37:41 +08:00
|
|
|
RSA-PSS - EVP_PKEY RSA-PSS algorithm support
|
2017-01-06 22:41:04 +08:00
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
2017-06-06 20:37:41 +08:00
|
|
|
The B<RSA-PSS> EVP_PKEY implementation is a restricted version of the RSA
|
|
|
|
algorithm which only supports signing, verification and key generation
|
|
|
|
using PSS padding modes with optional parameter restrictions.
|
2017-01-06 22:41:04 +08:00
|
|
|
|
|
|
|
It has associated private key and public key formats.
|
|
|
|
|
|
|
|
This algorithm shares several control operations with the B<RSA> algorithm
|
|
|
|
but with some restrictions described below.
|
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
=head2 Signing and Verification
|
2017-01-06 22:41:04 +08:00
|
|
|
|
2017-05-19 08:16:38 +08:00
|
|
|
Signing and verification is similar to the B<RSA> algorithm except the
|
2017-01-07 06:49:01 +08:00
|
|
|
padding mode is always PSS. If the key in use has parameter restrictions then
|
2017-01-06 22:41:04 +08:00
|
|
|
the corresponding signature parameters are set to the restrictions:
|
2017-01-07 06:49:01 +08:00
|
|
|
for example, if the key can only be used with digest SHA256, MGF1 SHA256
|
2017-01-06 22:41:04 +08:00
|
|
|
and minimum salt length 32 then the digest, MGF1 digest and salt length
|
|
|
|
will be set to SHA256, SHA256 and 32 respectively.
|
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
=head2 Key Generation
|
2017-01-06 22:41:04 +08:00
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
By default no parameter restrictions are placed on the generated key.
|
2017-01-06 22:41:04 +08:00
|
|
|
|
2017-06-06 20:37:41 +08:00
|
|
|
=head1 NOTES
|
|
|
|
|
|
|
|
The public key format is documented in RFC4055.
|
|
|
|
|
|
|
|
The PKCS#8 private key format used for RSA-PSS keys is similar to the RSA
|
|
|
|
format except it uses the B<id-RSASSA-PSS> OID and the parameters field, if
|
|
|
|
present, restricts the key parameters in the same way as the public key.
|
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
=head1 CONFORMING TO
|
2017-01-06 22:41:04 +08:00
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
RFC 4055
|
2017-01-06 22:41:04 +08:00
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
L<EVP_PKEY_CTX_set_rsa_pss_keygen_md(3)>,
|
|
|
|
L<EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(3)>,
|
|
|
|
L<EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(3)>,
|
2017-01-06 22:41:04 +08:00
|
|
|
L<EVP_PKEY_CTX_new(3)>,
|
|
|
|
L<EVP_PKEY_CTX_ctrl_str(3)>,
|
|
|
|
L<EVP_PKEY_derive(3)>
|
|
|
|
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
2018-04-13 16:14:40 +08:00
|
|
|
Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
|
2017-01-06 22:41:04 +08:00
|
|
|
|
2018-12-06 21:05:22 +08:00
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
2017-01-06 22:41:04 +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
|