blob: efc8454dde0349929df57d1522ff782fb14dc55d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
.Dd $Mdocdate: November 5 2016 $
.Dt PKCS7_DECRYPT 3
.Os
.Sh NAME
.Nm PKCS7_decrypt
.Nd decrypt content from a PKCS#7 envelopedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h
.Ft int
.Fo PKCS7_decrypt
.Fa "PKCS7 *p7"
.Fa "EVP_PKEY *pkey"
.Fa "X509 *cert"
.Fa "BIO *data"
.Fa "int flags"
.Fc
.Sh DESCRIPTION
.Fn PKCS7_decrypt
extracts and decrypts the content from a PKCS#7 envelopedData structure.
.Fa pkey
is the private key of the recipient,
.Fa cert
is the recipient's certificate,
.Fa data
is a
.Vt BIO
to write the content to and
.Fa flags
is an optional set of flags.
.Pp
.Xr OpenSSL_add_all_algorithms 3
(or equivalent) should be called before using this function or errors
about unknown algorithms will occur.
.Pp
Although the recipient's certificate is not needed to decrypt the data,
it is needed to locate the appropriate (of possible several) recipients
in the PKCS#7 structure.
.Pp
If the
.Dv PKCS7_TEXT
.Fa flag
is set, MIME headers for type
.Sy text/plain
are deleted from the content.
If the content is not of type
.Sy text/plain ,
an error is returned.
.Sh RETURN VALUES
.Fn PKCS7_decrypt
returns 1 for success or 0 for failure.
The error can be obtained from
.Xr ERR_get_error 3
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_encrypt 3
.Sh HISTORY
.Fn PKCS7_decrypt
was added to OpenSSL 0.9.5.
.Sh BUGS
.Fn PKCS7_decrypt
must be passed the correct recipient key and certificate.
It would be better if it could look up the correct key and certificate
from a database.
.Pp
The lack of single pass processing and need to hold all data in memory
as mentioned in
.Xr PKCS7_sign 3
also applies to
.Xr PKCS7_decrypt 3 .
|