EVP_KEM-RSA(7ossl)
NAME π
EVP_KEM-RSA(7ossl) β EVP_KEM RSA keytype and algorithm support β¨
Okay so bestie, welcome to the EVP_KEM-RSA(7ossl) page π This is literally all about the EVP_KEM RSA keytype and algorithm support, and it's giving main character energy in the OpenSSL 3.5 world.
DESCRIPTION π¦
The RSA keytype and its parameters are fully described in EVP_PKEY-RSA(7), no cap. And if you wanna know more about how encapsulation and decapsulation actually work, you gotta check out EVP_PKEY_encapsulate(3) and EVP_PKEY_decapsulate(3) β those are the real MVPs for the mechanics, fr fr.
RSA KEM parameters π
So when we're talking about the parameters for RSA KEM, there's this thing called "operation" (and its fancy constant is OSSL_KEM_PARAM_OPERATION, which is a <UTF8 string> btw). And here's the tea: the OpenSSL RSA Key Encapsulation Mechanism only currently supports ONE default operation (aka operating mode) right now, and it's this:
"RSASVE"β The way this works is literally so simple: the encapsulate function just generates a secret using random bytes π« and then encrypts that secret using the RSA public key (with no padding, periodt). Then the decapsulate function recovers the secret using the RSA private key. It's giving "basic but effective" energy, and honestly? Obsessed.
You can set this operation using EVP_PKEY_CTX_set_kem_op(), which is the function you'll wanna call to make it happen.
There's also these two parameters, and they're both <integer> type:
"fips-indicator"β its constant isOSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR"key-check"β its constant isOSSL_KEM_PARAM_FIPS_KEY_CHECK
These parameters are described in provider-kem(7) β so if you need the full rundown on those, go peek at that page. It's lowkey important stuff, iykyk.
CONFORMING TO π
This algorithm is literally certified by the standards, bestie π It conforms to SP800-56Br2 in these exact ways:
- Section
7.2.1.2β that's the RSASVE Generate Operation (RSASVE.GENERATE), the encapsulation vibe - Section
7.2.1.3β that's the RSASVE Recovery Operation (RSASVE.RECOVER), the decapsulation vibe
So yeah, it's fully standard-compliant and that's iconic. π
SEE ALSO π
You're gonna wanna check out all these pages too, bestie β they're all connected to this whole KEM situation:
EVP_PKEY_CTX_set_kem_op(3)β the function you use to set the operation mode β¨EVP_PKEY_encapsulate(3)β does the encapsulating, obviously π«EVP_PKEY_decapsulate(3)β does the decapsulating, duhEVP_KEYMGMT(3)β all about key management, super importantEVP_PKEY(3)β the classic EVP_PKEY page, you know itprovider-keymgmt(7)β the provider-side key management info, ngl this one's underrated
Go read them all if you wanna be a KEM expert, fr fr. π
HISTORY β
Okay so here's the timeline tea: this functionality was added in OpenSSL 3.0, which is when it first showed up to the party. But thenβ
Before OpenSSL 3.5, the"operation"parameter (operating mode) was a required parameter. So you literally HAD to specify it or things would break. But as of OpenSSL 3.5,"RSASVE"is the default operating mode, and no explicit value need be specified. So you can just let it vibe and it'll do the right thing automatically. No cap, that's a glow-up. π
So if you're on 3.5 or later, you can relax about that. If you're on an older version, you better specify it. Periodt.
COPYRIGHT π
Copyright 2020-2025 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>.
And that's the vibe check on EVP_KEM-RSA(7ossl), bestie! This masterpiece was brought to you by version 3.5.0 and it's dated 2026-09-25 β so you know it's fresh off the press. Now go forth and encapsulate those secrets like the main character you are π
β¨π¦π
π¦ 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