PKCS7_decrypt.3ossl 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. .\" -*- mode: troff; coding: utf-8 -*-
  2. .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
  3. .\"
  4. .\" Standard preamble:
  5. .\" ========================================================================
  6. .de Sp \" Vertical space (when we can't use .PP)
  7. .if t .sp .5v
  8. .if n .sp
  9. ..
  10. .de Vb \" Begin verbatim text
  11. .ft CW
  12. .nf
  13. .ne \\$1
  14. ..
  15. .de Ve \" End verbatim text
  16. .ft R
  17. .fi
  18. ..
  19. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
  20. .ie n \{\
  21. . ds C` ""
  22. . ds C' ""
  23. 'br\}
  24. .el\{\
  25. . ds C`
  26. . ds C'
  27. 'br\}
  28. .\"
  29. .\" Escape single quotes in literal strings from groff's Unicode transform.
  30. .ie \n(.g .ds Aq \(aq
  31. .el .ds Aq '
  32. .\"
  33. .\" If the F register is >0, we'll generate index entries on stderr for
  34. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  35. .\" entries marked with X<> in POD. Of course, you'll have to process the
  36. .\" output yourself in some meaningful fashion.
  37. .\"
  38. .\" Avoid warning from groff about undefined register 'F'.
  39. .de IX
  40. ..
  41. .nr rF 0
  42. .if \n(.g .if rF .nr rF 1
  43. .if (\n(rF:(\n(.g==0)) \{\
  44. . if \nF \{\
  45. . de IX
  46. . tm Index:\\$1\t\\n%\t"\\$2"
  47. ..
  48. . if !\nF==2 \{\
  49. . nr % 0
  50. . nr F 2
  51. . \}
  52. . \}
  53. .\}
  54. .rr rF
  55. .\" ========================================================================
  56. .\"
  57. .IX Title "PKCS7_DECRYPT 3ossl"
  58. .TH PKCS7_DECRYPT 3ossl 2025-01-17 3.4.0 OpenSSL
  59. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  60. .\" way too many mistakes in technical documents.
  61. .if n .ad l
  62. .nh
  63. .SH NAME
  64. PKCS7_decrypt \- decrypt content from a PKCS#7 envelopedData structure
  65. .SH SYNOPSIS
  66. .IX Header "SYNOPSIS"
  67. .Vb 1
  68. \& #include <openssl/pkcs7.h>
  69. \&
  70. \& int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags);
  71. .Ve
  72. .SH DESCRIPTION
  73. .IX Header "DESCRIPTION"
  74. \&\fBPKCS7_decrypt()\fR extracts and decrypts the content from a PKCS#7 envelopedData
  75. structure. \fBpkey\fR is the private key of the recipient, \fBcert\fR is the
  76. recipients certificate, \fBdata\fR is a BIO to write the content to and
  77. \&\fBflags\fR is an optional set of flags.
  78. .SH NOTES
  79. .IX Header "NOTES"
  80. Although the recipients certificate is not needed to decrypt the data it is needed
  81. to locate the appropriate (of possible several) recipients in the PKCS#7 structure.
  82. .PP
  83. The following flags can be passed in the \fBflags\fR parameter.
  84. .PP
  85. If the \fBPKCS7_TEXT\fR flag is set MIME headers for type \fBtext/plain\fR are deleted
  86. from the content. If the content is not of type \fBtext/plain\fR then an error is
  87. returned.
  88. .SH "RETURN VALUES"
  89. .IX Header "RETURN VALUES"
  90. \&\fBPKCS7_decrypt()\fR returns either 1 for success or 0 for failure.
  91. The error can be obtained from \fBERR_get_error\fR\|(3)
  92. .SH BUGS
  93. .IX Header "BUGS"
  94. \&\fBPKCS7_decrypt()\fR must be passed the correct recipient key and certificate. It would
  95. be better if it could look up the correct key and certificate from a database.
  96. .PP
  97. The lack of single pass processing and need to hold all data in memory as
  98. mentioned in \fBPKCS7_sign()\fR also applies to \fBPKCS7_verify()\fR.
  99. .SH "SEE ALSO"
  100. .IX Header "SEE ALSO"
  101. \&\fBERR_get_error\fR\|(3), \fBPKCS7_encrypt\fR\|(3)
  102. .SH COPYRIGHT
  103. .IX Header "COPYRIGHT"
  104. Copyright 2002\-2016 The OpenSSL Project Authors. All Rights Reserved.
  105. .PP
  106. Licensed under the Apache License 2.0 (the "License"). You may not use
  107. this file except in compliance with the License. You can obtain a copy
  108. in the file LICENSE in the source distribution or at
  109. <https://www.openssl.org/source/license.html>.