1e71b7053SJung-uk Kim=pod 2e71b7053SJung-uk Kim 3e71b7053SJung-uk Kim=head1 NAME 4e71b7053SJung-uk Kim 5e71b7053SJung-uk KimRSA-PSS - EVP_PKEY RSA-PSS algorithm support 6e71b7053SJung-uk Kim 7e71b7053SJung-uk Kim=head1 DESCRIPTION 8e71b7053SJung-uk Kim 9e71b7053SJung-uk KimThe B<RSA-PSS> EVP_PKEY implementation is a restricted version of the RSA 10e71b7053SJung-uk Kimalgorithm which only supports signing, verification and key generation 11e71b7053SJung-uk Kimusing PSS padding modes with optional parameter restrictions. 12e71b7053SJung-uk Kim 13e71b7053SJung-uk KimIt has associated private key and public key formats. 14e71b7053SJung-uk Kim 15e71b7053SJung-uk KimThis algorithm shares several control operations with the B<RSA> algorithm 16e71b7053SJung-uk Kimbut with some restrictions described below. 17e71b7053SJung-uk Kim 18e71b7053SJung-uk Kim=head2 Signing and Verification 19e71b7053SJung-uk Kim 20e71b7053SJung-uk KimSigning and verification is similar to the B<RSA> algorithm except the 21e71b7053SJung-uk Kimpadding mode is always PSS. If the key in use has parameter restrictions then 22e71b7053SJung-uk Kimthe corresponding signature parameters are set to the restrictions: 23e71b7053SJung-uk Kimfor example, if the key can only be used with digest SHA256, MGF1 SHA256 24e71b7053SJung-uk Kimand minimum salt length 32 then the digest, MGF1 digest and salt length 25e71b7053SJung-uk Kimwill be set to SHA256, SHA256 and 32 respectively. 26e71b7053SJung-uk Kim 27e71b7053SJung-uk Kim=head2 Key Generation 28e71b7053SJung-uk Kim 29e71b7053SJung-uk KimBy default no parameter restrictions are placed on the generated key. 30e71b7053SJung-uk Kim 31e71b7053SJung-uk Kim=head1 NOTES 32e71b7053SJung-uk Kim 33e71b7053SJung-uk KimThe public key format is documented in RFC4055. 34e71b7053SJung-uk Kim 35e71b7053SJung-uk KimThe PKCS#8 private key format used for RSA-PSS keys is similar to the RSA 36e71b7053SJung-uk Kimformat except it uses the B<id-RSASSA-PSS> OID and the parameters field, if 37e71b7053SJung-uk Kimpresent, restricts the key parameters in the same way as the public key. 38e71b7053SJung-uk Kim 39e71b7053SJung-uk Kim=head1 CONFORMING TO 40e71b7053SJung-uk Kim 41e71b7053SJung-uk KimRFC 4055 42e71b7053SJung-uk Kim 43e71b7053SJung-uk Kim=head1 SEE ALSO 44e71b7053SJung-uk Kim 45e71b7053SJung-uk KimL<EVP_PKEY_CTX_set_rsa_pss_keygen_md(3)>, 46e71b7053SJung-uk KimL<EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(3)>, 47e71b7053SJung-uk KimL<EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(3)>, 48e71b7053SJung-uk KimL<EVP_PKEY_CTX_new(3)>, 49e71b7053SJung-uk KimL<EVP_PKEY_CTX_ctrl_str(3)>, 50e71b7053SJung-uk KimL<EVP_PKEY_derive(3)> 51e71b7053SJung-uk Kim 52e71b7053SJung-uk Kim=head1 COPYRIGHT 53e71b7053SJung-uk Kim 54e71b7053SJung-uk KimCopyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. 55e71b7053SJung-uk Kim 56*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 57e71b7053SJung-uk Kimthis file except in compliance with the License. You can obtain a copy 58e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at 59e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>. 60e71b7053SJung-uk Kim 61e71b7053SJung-uk Kim=cut 62