RSA-PSS(7ossl)
π RSA-PSS β like, the EVP_PKEY glow-up of RSA (7ossl, OpenSSL, bestie β¨)
okay so this is the RSA-PSS(7ossl) page from the OpenSSL fam, and it's genuinely one of the more iconic little corner-of-the-docs situations. buckle up π
β¨ NAME β¨
RSA-PSS β the EVP_PKEY RSA-PSS algorithm support situation. that's it, that's the name. slay π
πΈ DESCRIPTION πΈ
So the RSA-PSS EVP_PKEY implementation is basically RSA but on a very strict vibe check: it's a restricted version of the RSA algorithm that only supports signing, verification and key generation using PSS padding modes, with optional parameter restrictions. that's the whole personality. no other modes invited to the party π«
It has associated private key and public key formats, obviously, because keys need a home π
And here's the tea: this algorithm shares several control operations with the RSA algorithm β but with some restrictions, which are described down below. so like, same friend group, different boundaries, iykyk π
π¦ Signing and Verification
Signing and verification is similar to the RSA algorithm, except the padding mode is always PSS. always. no negotiation. periodt β¨
And if the key in use has parameter restrictions, then the corresponding signature parameters get set to the restrictions. for example β bestie, read this carefully:
if the key can only be used with digestSHA256, MGF1SHA256and minimum salt length32, then the digest, MGF1 digest and salt length will be set toSHA256,SHA256and32respectively.
the way that it just inherits the restrictions automatically?? obsessed. π«Ά
π Key Generation
By default, no parameter restrictions are placed on the generated key. free-range key. it can be anything it wants to be π
π NOTES π
The public key format is documented in RFC4055. go read it if you're that kind of girl (respect, honestly π).
The PKCS#8 private key format used for RSA-PSS keys is similar to the RSA format β except it uses the id-RSASSA-PSS OID, and the parameters field (if present) restricts the key parameters in the same way as the public key. same energy, different OID. consistency queen π
β CONFORMING TO β
RFC 4055 β that's the one, that's the standard, we stan a compliant algorithm π
π₯ SEE ALSO π₯
EVP_PKEY_CTX_set_rsa_pss_keygen_md(3)EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(3)EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(3)EVP_PKEY_CTX_new(3)EVP_PKEY_CTX_ctrl_str(3)EVP_PKEY_derive(3)
go read all of them, i'm literally begging you, the whole friend group is linked π
πΈ COPYRIGHT πΈ
Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
ngl the license part is not the fun part but it IS the "you must not skip this" part, so here it is in full, no cuts π
okay that's the whole page bestie!! this was OpenSSL 3.5.0, dated 2026-09-25 β so if you're reading this in some other era, check your version, mwah πβ¨π¦
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms