From 53e9b61ae4ba5ebd4fc7d86919b5dd7c10e2625f Mon Sep 17 00:00:00 2001 From: schwarze Date: Sun, 10 Sep 2023 16:04:15 +0000 Subject: [PATCH] Mention EVP_PKEY_encrypt_old(3) and EVP_PKEY_decrypt_old(3) because some software still calls them. Put them here because despite the function and header names, they are really specific to RSA. Besides, this avoids a distraction in the more important EVP_PKEY_encrypt(3) and EVP_PKEY_decrypt(3) manual pages. --- lib/libcrypto/man/RSA_public_encrypt.3 | 94 ++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 7 deletions(-) diff --git a/lib/libcrypto/man/RSA_public_encrypt.3 b/lib/libcrypto/man/RSA_public_encrypt.3 index b1b4d2a4786..be3afdf4026 100644 --- a/lib/libcrypto/man/RSA_public_encrypt.3 +++ b/lib/libcrypto/man/RSA_public_encrypt.3 @@ -1,7 +1,24 @@ -.\" $OpenBSD: RSA_public_encrypt.3,v 1.12 2019/06/10 14:58:48 schwarze Exp $ +.\" $OpenBSD: RSA_public_encrypt.3,v 1.13 2023/09/10 16:04:15 schwarze Exp $ .\" OpenSSL RSA_public_encrypt.pod 1e3f62a3 Jul 17 16:47:13 2017 +0200 .\" -.\" This file was written by Ulf Moeller . +.\" This file is a derived work. +.\" The changes are covered by the following Copyright and license: +.\" +.\" Copyright (c) 2023 Ingo Schwarze +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" The original file was written by Ulf Moeller . .\" Copyright (c) 2000, 2004 The OpenSSL Project. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -48,12 +65,14 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED .\" OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: June 10 2019 $ +.Dd $Mdocdate: September 10 2023 $ .Dt RSA_PUBLIC_ENCRYPT 3 .Os .Sh NAME .Nm RSA_public_encrypt , -.Nm RSA_private_decrypt +.Nm RSA_private_decrypt , +.Nm EVP_PKEY_encrypt_old , +.Nm EVP_PKEY_decrypt_old .Nd RSA public key cryptography .Sh SYNOPSIS .In openssl/rsa.h @@ -73,6 +92,21 @@ .Fa "RSA *rsa" .Fa "int padding" .Fc +.In openssl/evp.h +.Ft int +.Fo EVP_PKEY_encrypt_old +.Fa "unsigned char *to" +.Fa "const unsigned char *from" +.Fa "int flen" +.Fa "EVP_PKEY *pkey" +.Fc +.Ft int +.Fo EVP_PKEY_decrypt_old +.Fa "unsigned char *to" +.Fa "const unsigned char *from" +.Fa "int flen" +.Fa "EVP_PKEY *pkey" +.Fc .Sh DESCRIPTION .Fn RSA_public_encrypt encrypts the @@ -132,16 +166,50 @@ must point to a memory section large enough to hold the decrypted data .Fn RSA_size rsa ) . .Fa padding is the padding mode that was used to encrypt the data. +.Pp +.Fn EVP_PKEY_encrypt_old +is a deprecated wrapper around +.Fn RSA_public_encrypt +that uses the +.Vt RSA +public key stored in +.Fa pkey +and +.Dv RSA_PKCS1_PADDING . +.Pp +.Fn EVP_PKEY_decrypt_old +is a deprecated wrapper around +.Fn RSA_private_decrypt +that uses the +.Vt RSA +private key stored in +.Fa pkey +and +.Dv RSA_PKCS1_PADDING . .Sh RETURN VALUES .Fn RSA_public_encrypt -returns the size of the encrypted data (i.e.\& +and +.Fn EVP_PKEY_encrypt_old +return the size of the encrypted data (i.e.\& .Fn RSA_size rsa ) . .Fn RSA_private_decrypt +and +.Fn EVP_PKEY_decrypt_old returns the size of the recovered plaintext. -.Pp -On error, -1 is returned; the error codes can be obtained by +On error, \-1 is returned; the error codes can be obtained by .Xr ERR_get_error 3 . +.Pp +In addition to the return values documented above, +.Fn EVP_PKEY_encrypt_old +may return 0 if the +.Xr EVP_PKEY_id 3 +of +.Fa pkey +is not +.Dv EVP_PKEY_RSA . .Sh SEE ALSO +.Xr EVP_PKEY_decrypt 3 , +.Xr EVP_PKEY_encrypt 3 , .Xr RSA_meth_set_priv_dec 3 , .Xr RSA_new 3 , .Xr RSA_size 3 @@ -154,6 +222,18 @@ and appeared in SSLeay 0.4 or earlier and have been available since .Ox 2.4 . .Pp +.Fn EVP_PKEY_encrypt +and +.Fn EVP_PKEY_decrypt +first appeared in SSLeay 0.9.0 and have been available since +.Ox 2.4 . +There were renamed to +.Fn EVP_PKEY_encrypt_old +and +.Fn EVP_PKEY_decrypt_old +in OpenSSL 1.0.0 and +.Ox 4.9 . +.Pp .Dv RSA_NO_PADDING is available since SSLeay 0.9.0. OAEP was added in OpenSSL 0.9.2b. -- 2.20.1