From 550a68d8644903805aa3700a25f8a196e2ef22b9 Mon Sep 17 00:00:00 2001 From: schwarze Date: Fri, 25 Aug 2023 18:22:41 +0000 Subject: [PATCH] In evp.h rev.s 1.90 and 1.97, tb@ provided EVP_CIPHER_CTX_get_cipher_data(3) and EVP_CIPHER_CTX_set_cipher_data(3). Import the manual page from the OpenSSL 1.1 branch, which is still under a free licence, with several improvements by me. --- .../man/EVP_CIPHER_CTX_get_cipher_data.3 | 109 ++++++++++++++++++ lib/libcrypto/man/Makefile | 3 +- lib/libcrypto/man/evp.3 | 5 +- 3 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 lib/libcrypto/man/EVP_CIPHER_CTX_get_cipher_data.3 diff --git a/lib/libcrypto/man/EVP_CIPHER_CTX_get_cipher_data.3 b/lib/libcrypto/man/EVP_CIPHER_CTX_get_cipher_data.3 new file mode 100644 index 00000000000..910d3f00f36 --- /dev/null +++ b/lib/libcrypto/man/EVP_CIPHER_CTX_get_cipher_data.3 @@ -0,0 +1,109 @@ +.\" $OpenBSD: EVP_CIPHER_CTX_get_cipher_data.3,v 1.1 2023/08/25 18:22:41 schwarze Exp $ +.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400 +.\" +.\" This file was written by Matt Caswell +.\" Copyright (c) 2016 The OpenSSL Project. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in +.\" the documentation and/or other materials provided with the +.\" distribution. +.\" +.\" 3. All advertising materials mentioning features or use of this +.\" software must display the following acknowledgment: +.\" "This product includes software developed by the OpenSSL Project +.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)" +.\" +.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to +.\" endorse or promote products derived from this software without +.\" prior written permission. For written permission, please contact +.\" openssl-core@openssl.org. +.\" +.\" 5. Products derived from this software may not be called "OpenSSL" +.\" nor may "OpenSSL" appear in their names without prior written +.\" permission of the OpenSSL Project. +.\" +.\" 6. Redistributions of any form whatsoever must retain the following +.\" acknowledgment: +.\" "This product includes software developed by the OpenSSL Project +.\" for use in the OpenSSL Toolkit (http://www.openssl.org/)" +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +.\" OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd $Mdocdate: August 25 2023 $ +.Dt EVP_CIPHER_CTX_GET_CIPHER_DATA 3 +.Os +.Sh NAME +.Nm EVP_CIPHER_CTX_get_cipher_data , +.Nm EVP_CIPHER_CTX_set_cipher_data +.Nd inspect and modify EVP_CIPHER_CTX objects +.Sh SYNOPSIS +.In openssl/evp.h +.Ft void * +.Fo EVP_CIPHER_CTX_get_cipher_data +.Fa "const EVP_CIPHER_CTX *ctx" +.Fc +.Ft void * +.Fo EVP_CIPHER_CTX_set_cipher_data +.Fa "EVP_CIPHER_CTX *ctx" +.Fa "void *cipher_data" +.Fc +.Sh DESCRIPTION +.Fn EVP_CIPHER_CTX_get_cipher_data +returns a pointer to the cipher data of +.Fa ctx . +The format and content of this data is specific to the algorithm +and to the particular implementation of the cipher. +For example, this data can be used by engines +to store engine specific information. +The data is automatically allocated and freed by OpenSSL, so +applications and engines should not normally free this directly (but see +below). +.Pp +.Fn EVP_CIPHER_CTX_set_cipher_data +allows an application or engine to replace the existing cipher data +with new data, transfering ownership of +.Fa cipher_data +to the +.Fa ctx +object. +A pointer to any existing cipher data is returned from this function. +If the old data is no longer required, +it should be freed through a call to +.Xr free 3 . +.Sh RETURN VALUES +.Fn EVP_CIPHER_CTX_get_cipher_data +returns an internal pointer owned by +.Fa ctx . +.Pp +.Fn EVP_CIPHER_CTX_set_cipher_data +returns a pointer to the old cipher data of +.Fa ctx +and transfers ownership to the caller. +.Sh SEE ALSO +.Xr evp 3 , +.Xr EVP_EncryptInit 3 +.Sh HISTORY +.Fn EVP_CIPHER_CTX_get_cipher_data +and +.Fn EVP_CIPHER_CTX_set_cipher_data +first appeared in OpenSSL 1.1.0 and have been available since +.Ox 7.1 . diff --git a/lib/libcrypto/man/Makefile b/lib/libcrypto/man/Makefile index 27e64c494f9..24b53b9eb13 100644 --- a/lib/libcrypto/man/Makefile +++ b/lib/libcrypto/man/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.262 2023/08/25 05:29:35 tb Exp $ +# $OpenBSD: Makefile,v 1.263 2023/08/25 18:22:41 schwarze Exp $ .include @@ -164,6 +164,7 @@ MAN= \ ESS_SIGNING_CERT_new.3 \ EVP_AEAD_CTX_init.3 \ EVP_BytesToKey.3 \ + EVP_CIPHER_CTX_get_cipher_data.3 \ EVP_CIPHER_meth_new.3 \ EVP_DigestInit.3 \ EVP_DigestSignInit.3 \ diff --git a/lib/libcrypto/man/evp.3 b/lib/libcrypto/man/evp.3 index 02e21b85709..92a6c6a416f 100644 --- a/lib/libcrypto/man/evp.3 +++ b/lib/libcrypto/man/evp.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: evp.3,v 1.18 2023/08/25 05:29:35 tb Exp $ +.\" $OpenBSD: evp.3,v 1.19 2023/08/25 18:22:41 schwarze Exp $ .\" full merge up to: OpenSSL man7/evp 24a535ea Sep 22 13:14:20 2020 +0100 .\" .\" This file was written by Ulf Moeller , @@ -193,12 +193,13 @@ operations are more efficient using the high-level interfaces. .Xr d2i_PrivateKey 3 , .Xr ENGINE_get_cipher 3 , .Xr ENGINE_register_RSA 3 , -.Xr EVP_AEAD_CTX_init 3 , .Xr EVP_add_cipher 3 , +.Xr EVP_AEAD_CTX_init 3 , .Xr EVP_aes_128_cbc 3 , .Xr EVP_BytesToKey 3 , .Xr EVP_camellia_128_cbc 3 , .Xr EVP_chacha20 3 , +.Xr EVP_CIPHER_CTX_get_cipher_data 3 , .Xr EVP_CIPHER_meth_new 3 , .Xr EVP_des_cbc 3 , .Xr EVP_DigestInit 3 , -- 2.20.1