aboutsummaryrefslogtreecommitdiff
path: root/secure/lib/libcrypto/man/man3/CMS_decrypt.3
diff options
context:
space:
mode:
Diffstat (limited to 'secure/lib/libcrypto/man/man3/CMS_decrypt.3')
-rw-r--r--secure/lib/libcrypto/man/man3/CMS_decrypt.3149
1 files changed, 36 insertions, 113 deletions
diff --git a/secure/lib/libcrypto/man/man3/CMS_decrypt.3 b/secure/lib/libcrypto/man/man3/CMS_decrypt.3
index 9717fc6152d2..60fff4ceeee6 100644
--- a/secure/lib/libcrypto/man/man3/CMS_decrypt.3
+++ b/secure/lib/libcrypto/man/man3/CMS_decrypt.3
@@ -1,4 +1,5 @@
-.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -15,29 +16,12 @@
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -68,79 +52,19 @@
. \}
.\}
.rr rF
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "CMS_DECRYPT 3ossl"
-.TH CMS_DECRYPT 3ossl "2023-09-19" "3.0.11" "OpenSSL"
+.TH CMS_DECRYPT 3ossl 2025-07-01 3.5.1 OpenSSL
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
-.SH "NAME"
+.SH NAME
CMS_decrypt, CMS_decrypt_set1_pkey_and_peer,
CMS_decrypt_set1_pkey, CMS_decrypt_set1_password
\&\- decrypt content from a CMS envelopedData structure
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/cms.h>
@@ -153,52 +77,51 @@ CMS_decrypt_set1_pkey, CMS_decrypt_set1_password
\& int CMS_decrypt_set1_password(CMS_ContentInfo *cms,
\& unsigned char *pass, ossl_ssize_t passlen);
.Ve
-.SH "DESCRIPTION"
+.SH DESCRIPTION
.IX Header "DESCRIPTION"
-\&\fBCMS_decrypt()\fR extracts the decrypted content from a \s-1CMS\s0 EnvelopedData
+\&\fBCMS_decrypt()\fR extracts the decrypted content from a CMS EnvelopedData
or AuthEnvelopedData structure.
It uses \fBCMS_decrypt_set1_pkey()\fR to decrypt the content
-with the recipient private key \fIpkey\fR if \fIpkey\fR is not \s-1NULL.\s0
-In this case, it is recommended to provide the associated certificate
-in \fIcert\fR \- see the \s-1NOTES\s0 below.
-\&\fIout\fR is a \s-1BIO\s0 to write the content to and
+with the recipient private key \fIpkey\fR if \fIpkey\fR is not NULL.
+In this case, the associated certificate is recommended to provide in \fIcert\fR \-
+see the NOTES below.
+\&\fIout\fR is a BIO to write the content to and
\&\fIflags\fR is an optional set of flags.
-If \fIpkey\fR is \s-1NULL\s0 the function assumes that decryption was already done
+If \fIpkey\fR is NULL the function assumes that decryption was already done
(e.g., using \fBCMS_decrypt_set1_pkey()\fR or \fBCMS_decrypt_set1_password()\fR) and just
-provides the content unless \fIcert\fR, \fIdcont\fR, and \fIout\fR are \s-1NULL\s0 as well.
+provides the content unless \fIcert\fR, \fIdcont\fR, and \fIout\fR are NULL as well.
The \fIdcont\fR parameter is used in the rare case where the encrypted content
-is detached. It will normally be set to \s-1NULL.\s0
+is detached. It will normally be set to NULL.
.PP
\&\fBCMS_decrypt_set1_pkey_and_peer()\fR decrypts the CMS_ContentInfo structure \fIcms\fR
using the private key \fIpkey\fR, the corresponding certificate \fIcert\fR, which is
-recommended to be supplied but may be \s-1NULL,\s0
-and the (optional) originator certificate \fIpeer\fR.
-On success, it also records in \fIcms\fR the decryption key \fIpkey\fR, and this
+recommended but may be NULL, and the (optional) originator certificate \fIpeer\fR.
+On success, it also records in \fIcms\fR the decryption key \fIpkey\fR, and then
should be followed by \f(CW\*(C`CMS_decrypt(cms, NULL, NULL, dcont, out, flags)\*(C'\fR.
This call deallocates any decryption key stored in \fIcms\fR.
.PP
\&\fBCMS_decrypt_set1_pkey()\fR is the same as
-\&\fBCMS_decrypt_set1_pkey_and_peer()\fR with \fIpeer\fR being \s-1NULL.\s0
+\&\fBCMS_decrypt_set1_pkey_and_peer()\fR with \fIpeer\fR being NULL.
.PP
\&\fBCMS_decrypt_set1_password()\fR decrypts the CMS_ContentInfo structure \fIcms\fR
using the secret \fIpass\fR of length \fIpasslen\fR.
-On success, it also records in \fIcms\fR the decryption key used, and this
+On success, it also records in \fIcms\fR the decryption key used, and then
should be followed by \f(CW\*(C`CMS_decrypt(cms, NULL, NULL, dcont, out, flags)\*(C'\fR.
This call deallocates any decryption key stored in \fIcms\fR.
-.SH "NOTES"
+.SH NOTES
.IX Header "NOTES"
Although the recipients certificate is not needed to decrypt the data it is
-needed to locate the appropriate (of possible several) recipients in the \s-1CMS\s0
+needed to locate the appropriate (of possible several) recipients in the CMS
structure.
.PP
-If \fIcert\fR is set to \s-1NULL\s0 all possible recipients are tried. This case however
-is problematic. To thwart the \s-1MMA\s0 attack (Bleichenbacher's attack on
-\&\s-1PKCS\s0 #1 v1.5 \s-1RSA\s0 padding) all recipients are tried whether they succeed or
+If \fIcert\fR is set to NULL all possible recipients are tried. This case however
+is problematic. To thwart the MMA attack (Bleichenbacher's attack on
+PKCS #1 v1.5 RSA padding) all recipients are tried whether they succeed or
not. If no recipient succeeds then a random symmetric key is used to decrypt
the content: this will typically output garbage and may (but is not guaranteed
to) ultimately return a padding error only. If \fBCMS_decrypt()\fR just returned an
error when all recipient encrypted keys failed to decrypt an attacker could
-use this in a timing attack. If the special flag \fB\s-1CMS_DEBUG_DECRYPT\s0\fR is set
+use this in a timing attack. If the special flag \fBCMS_DEBUG_DECRYPT\fR is set
then the above behaviour is modified and an error \fBis\fR returned if no
recipient encrypted key can be decrypted \fBwithout\fR generating a random
content encryption key. Applications should use this flag with
@@ -206,18 +129,18 @@ content encryption key. Applications should use this flag with
open to attack.
.PP
It is possible to determine the correct recipient key by other means (for
-example looking them up in a database) and setting them in the \s-1CMS\s0 structure
-in advance using the \s-1CMS\s0 utility functions such as \fBCMS_set1_pkey()\fR,
+example looking them up in a database) and setting them in the CMS structure
+in advance using the CMS utility functions such as \fBCMS_set1_pkey()\fR,
or use \fBCMS_decrypt_set1_password()\fR if the recipient has a symmetric key.
-In these cases both \fIcert\fR and \fIpkey\fR should be set to \s-1NULL.\s0
+In these cases both \fIcert\fR and \fIpkey\fR should be set to NULL.
.PP
To process KEKRecipientInfo types \fBCMS_set1_key()\fR or \fBCMS_RecipientInfo_set0_key()\fR
and \fBCMS_RecipientInfo_decrypt()\fR should be called before \fBCMS_decrypt()\fR and
-\&\fIcert\fR and \fIpkey\fR set to \s-1NULL.\s0
+\&\fIcert\fR and \fIpkey\fR set to NULL.
.PP
The following flags can be passed in the \fIflags\fR parameter.
.PP
-If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \f(CW\*(C`text/plain\*(C'\fR are deleted
+If the \fBCMS_TEXT\fR flag is set MIME headers for type \f(CW\*(C`text/plain\*(C'\fR are deleted
from the content. If the content is not of type \f(CW\*(C`text/plain\*(C'\fR then an error is
returned.
.SH "RETURN VALUES"
@@ -226,7 +149,7 @@ returned.
\&\fBCMS_decrypt_set1_pkey()\fR, and \fBCMS_decrypt_set1_password()\fR
return either 1 for success or 0 for failure.
The error can be obtained from \fBERR_get_error\fR\|(3).
-.SH "BUGS"
+.SH BUGS
.IX Header "BUGS"
The \fBset1_\fR part of these function names is misleading
and should better read: \fBwith_\fR.
@@ -236,15 +159,15 @@ mentioned in \fBCMS_verify()\fR also applies to \fBCMS_decrypt()\fR.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBERR_get_error\fR\|(3), \fBCMS_encrypt\fR\|(3)
-.SH "HISTORY"
+.SH HISTORY
.IX Header "HISTORY"
\&\fBCMS_decrypt_set1_pkey_and_peer()\fR and \fBCMS_decrypt_set1_password()\fR
were added in OpenSSL 3.0.
-.SH "COPYRIGHT"
+.SH COPYRIGHT
.IX Header "COPYRIGHT"
-Copyright 2008\-2023 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2008\-2020 The OpenSSL Project Authors. All Rights Reserved.
.PP
-Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
+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 \s-1LICENSE\s0 in the source distribution or at
+in the file LICENSE in the source distribution or at
<https://www.openssl.org/source/license.html>.