Expand description
PKCS#1 v1.5 support as described in RFC8017 Β§ 8.2.
Warning
PKCS#1 v1.5 padding has a longstanding history of issues generally classed as
Bleichenbacher Attacks which were originally discovered in 1998 but keep reappearing in
various forms again and again over the course of decades, including most recently in the 2023
Marvin Attack, which the rsa crate is still vulnerable to.
These attacks can result in complete plaintext recovery for encryption, or signature forgery, leading to a total failure of either confidentiality or integrity.
Unless explicitly needed for compatibility reasons, we recommend against using PKCS#1 v1.5, and suggest using PSS or OAEP instead (if there is a requirement to use RSA).
Β§Usage
ModulesΒ§
- decrypting_
key π - encrypting_
key π - oid π
- signature π
RSASSA-PKCS1-v1_5signatures.- signing_
key π - verifying_
key π
StructsΒ§
- Decrypting
Key - Decryption key for PKCS#1 v1.5 decryption as described in RFC8017 Β§ 7.2.
- Encrypting
Key - Encryption key for PKCS#1 v1.5 encryption as described in RFC8017 Β§ 7.2.
- Pkcs1v15
Encrypt - Encryption using PKCS#1 v1.5 padding.
- Pkcs1v15
Sign RSASSA-PKCS1-v1_5: digital signatures using PKCS#1 v1.5 padding.- Signature
RSASSA-PKCS1-v1_5signatures as described in RFC8017 Β§ 8.2.- Signing
Key - Signing key for
RSASSA-PKCS1-v1_5signatures as described in RFC8017 Β§ 8.2. - Verifying
Key - Verifying key for
RSASSA-PKCS1-v1_5signatures as described in RFC8017 Β§ 8.2.
TraitsΒ§
- RsaSignature
Associated Oid - A trait which associates an RSA-specific OID with a type.
FunctionsΒ§
- decrypt π
- Decrypts a plaintext using RSA and the padding scheme from PKCS#1 v1.5.
- encrypt π
- Encrypts the given message with RSA and the padding scheme from PKCS#1 v1.5. The message must be no longer than the length of the public modulus minus 11 bytes.
- sign π
- Calculates the signature of hashed using
RSASSA-PKCS1-V1_5-SIGN from RSA PKCS#1 v1.5. Note that
hashedmust be the result of hashing the input message using the given hash function. If hash isNone, hashed is signed directly. This isnβt advisable except for interoperability. - verify π
- Verifies an RSA PKCS#1 v1.5 signature.