LIBRESSL-RSA_PADDING_ADD_PKCS1_TYPE_1(3)
πΈ NAME πΈ
okay bestie, welcome to the RSA_PADDING_ADD_PKCS1_TYPE_1(3) page from the LibreSSL Library Functions Manual β¨ β this one is all about asymmetric encryption padding π
meet the whole squad:
RSA_padding_add_PKCS1_type_1RSA_padding_check_PKCS1_type_1RSA_padding_add_PKCS1_type_2RSA_padding_check_PKCS1_type_2RSA_padding_add_PKCS1_OAEPRSA_padding_check_PKCS1_OAEPRSA_padding_add_noneRSA_padding_check_none
β¨ SYNOPSIS β¨
library βlibcryptoβ #include <openssl/rsa.h>
int
RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,
unsigned char *f, int fl);
int
RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,
unsigned char *f, int fl, int rsa_len);
int
RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,
unsigned char *f, int fl);
int
RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,
unsigned char *f, int fl, int rsa_len);
int
RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen,
unsigned char *f, int fl, unsigned char *p, int pl);
int
RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
unsigned char *f, int fl, int rsa_len, unsigned char *p, int pl);
int
RSA_padding_add_none(unsigned char *to, int tlen, unsigned char *f,
int fl);
int
RSA_padding_check_none(unsigned char *to, int tlen, unsigned char *f,
int fl, int rsa_len);
π¦ DESCRIPTION π¦
so these functions get called from the RSA encrypt, decrypt, sign, and verify functions π normally you should not be calling them from application programs, bestie β they're backstage crew, not main character energy.
however π
they can also be called directly to implement padding for other asymmetric ciphers. and listen: RSA_padding_add_PKCS1_OAEP() and RSA_padding_check_PKCS1_OAEP() may be used in an application combined with RSA_NO_PADDING in order to implement OAEP with an encoding parameter. iykyk β¨
the RSA_padding_add_*() functions encode fl bytes from f so as to fit into tlen bytes and store the result at to. an error occurs if fl does not meet the size requirements of the encoding method π
the following encoding methods are implemented:
PKCS1_type_1β PKCS #1 v2.0 EMSA-PKCS1-v1_5 (PKCS #1 v1.5 block type 1); used for signatures ποΈPKCS1_type_2β PKCS #1 v2.0 EME-PKCS1-v1_5 (PKCS #1 v1.5 block type 2) π¦PKCS1_OAEPβ PKCS #1 v2.0 EME-OAEP πnoneβ simply copy the data π«Ά
the RSA_padding_check_*() functions verify that the fl bytes at f contain a valid encoding for a rsa_len byte RSA key in the respective encoding method π and they store the recovered data of at most tlen bytes (for RSA_NO_PADDING: of size tlen) at to.
for RSA_padding_*_OAEP(), p points to the encoding parameter of length pl. p may be NULL if pl is 0 π
π RETURN VALUES π
the RSA_padding_add_*() functions return 1 on success or 0 on error π
the RSA_padding_check_*() functions return the length of the recovered data or -1 on error π
error codes can be obtained by calling ERR_get_error(3) π
π SEE ALSO π
π HISTORY π
RSA_padding_add_PKCS1_type_1(), RSA_padding_check_PKCS1_type_1(), RSA_padding_add_PKCS1_type_2(), RSA_padding_check_PKCS1_type_2(), RSA_padding_add_none(), and RSA_padding_check_none() first appeared in SSLeay 0.9.0 and have been available since OpenBSD 2.4 π§
RSA_padding_add_PKCS1_OAEP() and RSA_padding_check_PKCS1_OAEP() first appeared in OpenSSL 0.9.2b and have been available since OpenBSD 2.6 πΈ
π BUGS π
bestie, important: theRSA_padding_check_PKCS1_type_2()padding check leaks timing information which can potentially be used to mount a Bleichenbacher padding oracle attack π this is an inherent weakness in the PKCS #1 v1.5 padding design. preferPKCS1_OAEPpadding. fr fr π«Ά
π okay that's the whole page β Debian, June 8, 2025, RSA_PADDING_ADD_PKCS1_TYPE_1(3). mwah π
π¦ where this page comes from
- alpine 3.24: libressl-doc 4.3.1-r0 Β· custom
- arch rolling: libressl 4.4.0-1 Β· ISC AND custom:OpenSSL
- Copyright (c) 2000 The OpenSSL Project. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms