PEM_read_CMS.3ossl 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
  2. .\"
  3. .\" Standard preamble:
  4. .\" ========================================================================
  5. .de Sp \" Vertical space (when we can't use .PP)
  6. .if t .sp .5v
  7. .if n .sp
  8. ..
  9. .de Vb \" Begin verbatim text
  10. .ft CW
  11. .nf
  12. .ne \\$1
  13. ..
  14. .de Ve \" End verbatim text
  15. .ft R
  16. .fi
  17. ..
  18. .\" Set up some character translations and predefined strings. \*(-- will
  19. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  20. .\" double quote, and \*(R" will give a right double quote. \*(C+ will
  21. .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
  22. .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
  23. .\" nothing in troff, for use with C<>.
  24. .tr \(*W-
  25. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  26. .ie n \{\
  27. . ds -- \(*W-
  28. . ds PI pi
  29. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  30. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  31. . ds L" ""
  32. . ds R" ""
  33. . ds C` ""
  34. . ds C' ""
  35. 'br\}
  36. .el\{\
  37. . ds -- \|\(em\|
  38. . ds PI \(*p
  39. . ds L" ``
  40. . ds R" ''
  41. . ds C`
  42. . ds C'
  43. 'br\}
  44. .\"
  45. .\" Escape single quotes in literal strings from groff's Unicode transform.
  46. .ie \n(.g .ds Aq \(aq
  47. .el .ds Aq '
  48. .\"
  49. .\" If the F register is >0, we'll generate index entries on stderr for
  50. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  51. .\" entries marked with X<> in POD. Of course, you'll have to process the
  52. .\" output yourself in some meaningful fashion.
  53. .\"
  54. .\" Avoid warning from groff about undefined register 'F'.
  55. .de IX
  56. ..
  57. .nr rF 0
  58. .if \n(.g .if rF .nr rF 1
  59. .if (\n(rF:(\n(.g==0)) \{\
  60. . if \nF \{\
  61. . de IX
  62. . tm Index:\\$1\t\\n%\t"\\$2"
  63. ..
  64. . if !\nF==2 \{\
  65. . nr % 0
  66. . nr F 2
  67. . \}
  68. . \}
  69. .\}
  70. .rr rF
  71. .\"
  72. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  73. .\" Fear. Run. Save yourself. No user-serviceable parts.
  74. . \" fudge factors for nroff and troff
  75. .if n \{\
  76. . ds #H 0
  77. . ds #V .8m
  78. . ds #F .3m
  79. . ds #[ \f1
  80. . ds #] \fP
  81. .\}
  82. .if t \{\
  83. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  84. . ds #V .6m
  85. . ds #F 0
  86. . ds #[ \&
  87. . ds #] \&
  88. .\}
  89. . \" simple accents for nroff and troff
  90. .if n \{\
  91. . ds ' \&
  92. . ds ` \&
  93. . ds ^ \&
  94. . ds , \&
  95. . ds ~ ~
  96. . ds /
  97. .\}
  98. .if t \{\
  99. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  100. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  101. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  102. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  103. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  104. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  105. .\}
  106. . \" troff and (daisy-wheel) nroff accents
  107. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  108. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  109. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  110. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  111. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  112. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  113. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  114. .ds ae a\h'-(\w'a'u*4/10)'e
  115. .ds Ae A\h'-(\w'A'u*4/10)'E
  116. . \" corrections for vroff
  117. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  118. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  119. . \" for low resolution devices (crt and lpr)
  120. .if \n(.H>23 .if \n(.V>19 \
  121. \{\
  122. . ds : e
  123. . ds 8 ss
  124. . ds o a
  125. . ds d- d\h'-1'\(ga
  126. . ds D- D\h'-1'\(hy
  127. . ds th \o'bp'
  128. . ds Th \o'LP'
  129. . ds ae ae
  130. . ds Ae AE
  131. .\}
  132. .rm #[ #] #H #V #F C
  133. .\" ========================================================================
  134. .\"
  135. .IX Title "PEM_READ_CMS 3ossl"
  136. .TH PEM_READ_CMS 3ossl "2024-09-03" "3.3.2" "OpenSSL"
  137. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  138. .\" way too many mistakes in technical documents.
  139. .if n .ad l
  140. .nh
  141. .SH "NAME"
  142. DECLARE_PEM_rw,
  143. PEM_read_CMS,
  144. PEM_read_bio_CMS,
  145. PEM_write_CMS,
  146. PEM_write_bio_CMS,
  147. PEM_write_DHxparams,
  148. PEM_write_bio_DHxparams,
  149. PEM_read_ECPKParameters,
  150. PEM_read_bio_ECPKParameters,
  151. PEM_write_ECPKParameters,
  152. PEM_write_bio_ECPKParameters,
  153. PEM_read_ECPrivateKey,
  154. PEM_write_ECPrivateKey,
  155. PEM_write_bio_ECPrivateKey,
  156. PEM_read_EC_PUBKEY,
  157. PEM_read_bio_EC_PUBKEY,
  158. PEM_write_EC_PUBKEY,
  159. PEM_write_bio_EC_PUBKEY,
  160. PEM_read_NETSCAPE_CERT_SEQUENCE,
  161. PEM_read_bio_NETSCAPE_CERT_SEQUENCE,
  162. PEM_write_NETSCAPE_CERT_SEQUENCE,
  163. PEM_write_bio_NETSCAPE_CERT_SEQUENCE,
  164. PEM_read_PKCS8,
  165. PEM_read_bio_PKCS8,
  166. PEM_write_PKCS8,
  167. PEM_write_bio_PKCS8,
  168. PEM_write_PKCS8_PRIV_KEY_INFO,
  169. PEM_read_bio_PKCS8_PRIV_KEY_INFO,
  170. PEM_read_PKCS8_PRIV_KEY_INFO,
  171. PEM_write_bio_PKCS8_PRIV_KEY_INFO,
  172. PEM_read_SSL_SESSION,
  173. PEM_read_bio_SSL_SESSION,
  174. PEM_write_SSL_SESSION,
  175. PEM_write_bio_SSL_SESSION,
  176. PEM_read_X509_PUBKEY,
  177. PEM_read_bio_X509_PUBKEY,
  178. PEM_write_X509_PUBKEY,
  179. PEM_write_bio_X509_PUBKEY
  180. \&\- PEM object encoding routines
  181. .SH "SYNOPSIS"
  182. .IX Header "SYNOPSIS"
  183. .Vb 1
  184. \& #include <openssl/pem.h>
  185. \&
  186. \& DECLARE_PEM_rw(name, TYPE)
  187. \&
  188. \& TYPE *PEM_read_TYPE(FILE *fp, TYPE **a, pem_password_cb *cb, void *u);
  189. \& TYPE *PEM_read_bio_TYPE(BIO *bp, TYPE **a, pem_password_cb *cb, void *u);
  190. \& int PEM_write_TYPE(FILE *fp, const TYPE *a);
  191. \& int PEM_write_bio_TYPE(BIO *bp, const TYPE *a);
  192. .Ve
  193. .PP
  194. The following functions have been deprecated since OpenSSL 3.0, and can be
  195. hidden entirely by defining \fB\s-1OPENSSL_API_COMPAT\s0\fR with a suitable version value,
  196. see \fBopenssl_user_macros\fR\|(7):
  197. .PP
  198. .Vb 1
  199. \& #include <openssl/pem.h>
  200. \&
  201. \& int PEM_write_DHxparams(FILE *out, const DH *dh);
  202. \& int PEM_write_bio_DHxparams(BIO *out, const DH *dh);
  203. \& EC_GROUP *PEM_read_ECPKParameters(FILE *fp, EC_GROUP **x, pem_password_cb *cb, void *u);
  204. \& EC_GROUP *PEM_read_bio_ECPKParameters(BIO *bp, EC_GROUP **x, pem_password_cb *cb, void *u);
  205. \& int PEM_write_ECPKParameters(FILE *out, const EC_GROUP *x);
  206. \& int PEM_write_bio_ECPKParameters(BIO *out, const EC_GROUP *x),
  207. \&
  208. \& EC_KEY *PEM_read_EC_PUBKEY(FILE *fp, EC_KEY **x, pem_password_cb *cb, void *u);
  209. \& EC_KEY *PEM_read_bio_EC_PUBKEY(BIO *bp, EC_KEY **x, pem_password_cb *cb, void *u);
  210. \& int PEM_write_EC_PUBKEY(FILE *out, const EC_KEY *x);
  211. \& int PEM_write_bio_EC_PUBKEY(BIO *out, const EC_KEY *x);
  212. \&
  213. \& EC_KEY *PEM_read_ECPrivateKey(FILE *out, EC_KEY **x, pem_password_cb *cb, void *u);
  214. \& EC_KEY *PEM_read_bio_ECPrivateKey(BIO *out, EC_KEY **x, pem_password_cb *cb, void *u);
  215. \& int PEM_write_ECPrivateKey(FILE *out, const EC_KEY *x, const EVP_CIPHER *enc,
  216. \& const unsigned char *kstr, int klen,
  217. \& pem_password_cb *cb, void *u);
  218. \& int PEM_write_bio_ECPrivateKey(BIO *out, const EC_KEY *x, const EVP_CIPHER *enc,
  219. \& const unsigned char *kstr, int klen,
  220. \& pem_password_cb *cb, void *u);
  221. .Ve
  222. .SH "DESCRIPTION"
  223. .IX Header "DESCRIPTION"
  224. All of the functions described on this page are deprecated.
  225. Applications should use \fBOSSL_ENCODER_to_bio()\fR and \fBOSSL_DECODER_from_bio()\fR
  226. instead.
  227. .PP
  228. In the description below, \fB\f(BI\s-1TYPE\s0\fB\fR is used
  229. as a placeholder for any of the OpenSSL datatypes, such as \fBX509\fR.
  230. The macro \fBDECLARE_PEM_rw\fR expands to the set of declarations shown in
  231. the next four lines of the synopsis.
  232. .PP
  233. These routines convert between local instances of \s-1ASN1\s0 datatypes and
  234. the \s-1PEM\s0 encoding. For more information on the templates, see
  235. \&\s-1\fBASN1_ITEM\s0\fR\|(3). For more information on the lower-level routines used
  236. by the functions here, see \fBPEM_read\fR\|(3).
  237. .PP
  238. \&\fBPEM_read_\f(BI\s-1TYPE\s0\fB\fR() reads a PEM-encoded object of \fB\f(BI\s-1TYPE\s0\fB\fR from the file
  239. \&\fIfp\fR and returns it. The \fIcb\fR and \fIu\fR parameters are as described in
  240. \&\fBpem_password_cb\fR\|(3).
  241. .PP
  242. \&\fBPEM_read_bio_\f(BI\s-1TYPE\s0\fB\fR() is similar to \fBPEM_read_\f(BI\s-1TYPE\s0\fB\fR() but reads from
  243. the \s-1BIO\s0 \fIbp\fR.
  244. .PP
  245. \&\fBPEM_write_\f(BI\s-1TYPE\s0\fB\fR() writes the \s-1PEM\s0 encoding of the object \fIa\fR to the file
  246. \&\fIfp\fR.
  247. .PP
  248. \&\fBPEM_write_bio_\f(BI\s-1TYPE\s0\fB\fR() similarly writes to the \s-1BIO\s0 \fIbp\fR.
  249. .SH "NOTES"
  250. .IX Header "NOTES"
  251. These functions make no assumption regarding the pass phrase received from the
  252. password callback.
  253. It will simply be treated as a byte sequence.
  254. .SH "RETURN VALUES"
  255. .IX Header "RETURN VALUES"
  256. \&\fBPEM_read_\f(BI\s-1TYPE\s0\fB\fR() and \fBPEM_read_bio_\f(BI\s-1TYPE\s0\fB\fR() return a pointer to an
  257. allocated object, which should be released by calling \fB\f(BI\s-1TYPE\s0\fB_free\fR(), or
  258. \&\s-1NULL\s0 on error.
  259. .PP
  260. \&\fBPEM_write_\f(BI\s-1TYPE\s0\fB\fR() and \fBPEM_write_bio_\f(BI\s-1TYPE\s0\fB\fR() return 1 for success or 0 for failure.
  261. .SH "SEE ALSO"
  262. .IX Header "SEE ALSO"
  263. \&\fBPEM_read\fR\|(3),
  264. \&\fBpassphrase\-encoding\fR\|(7)
  265. .SH "HISTORY"
  266. .IX Header "HISTORY"
  267. The functions \fBPEM_write_DHxparams()\fR, \fBPEM_write_bio_DHxparams()\fR,
  268. \&\fBPEM_read_ECPKParameters()\fR, \fBPEM_read_bio_ECPKParameters()\fR,
  269. \&\fBPEM_write_ECPKParameters()\fR, \fBPEM_write_bio_ECPKParameters()\fR,
  270. \&\fBPEM_read_EC_PUBKEY()\fR, \fBPEM_read_bio_EC_PUBKEY()\fR,
  271. \&\fBPEM_write_EC_PUBKEY()\fR, \fBPEM_write_bio_EC_PUBKEY()\fR,
  272. \&\fBPEM_read_ECPrivateKey()\fR, \fBPEM_read_bio_ECPrivateKey()\fR,
  273. \&\fBPEM_write_ECPrivateKey()\fR and \fBPEM_write_bio_ECPrivateKey()\fR
  274. were deprecated in OpenSSL 3.0.
  275. .SH "COPYRIGHT"
  276. .IX Header "COPYRIGHT"
  277. Copyright 1998\-2023 The OpenSSL Project Authors. All Rights Reserved.
  278. .PP
  279. Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
  280. this file except in compliance with the License. You can obtain a copy
  281. in the file \s-1LICENSE\s0 in the source distribution or at
  282. <https://www.openssl.org/source/license.html>.