summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/man/CMS_compress.3
diff options
context:
space:
mode:
authorschwarze <>2019-08-10 23:41:22 +0000
committerschwarze <>2019-08-10 23:41:22 +0000
commitcc47a3abfdbd325bb89055dfd451213698f0850e (patch)
tree3f70859fec97a5fc0a89365840d52dc9deee7bf9 /src/lib/libcrypto/man/CMS_compress.3
parenta7f0a908e25ca54df61944e40d7165ba5d79d244 (diff)
downloadopenbsd-cc47a3abfdbd325bb89055dfd451213698f0850e.tar.gz
openbsd-cc47a3abfdbd325bb89055dfd451213698f0850e.tar.bz2
openbsd-cc47a3abfdbd325bb89055dfd451213698f0850e.zip
Re-convert and re-import the CMS manual pages from OpenSSL 1.1.1
(which are still under a free license) with pod2mdoc(1) now that jsing@ has begun work to provide these APIs. Some formatting was improved and some typos were fixed, but apart from that, little was changed, so there is still much to polish.
Diffstat (limited to 'src/lib/libcrypto/man/CMS_compress.3')
-rw-r--r--src/lib/libcrypto/man/CMS_compress.3157
1 files changed, 157 insertions, 0 deletions
diff --git a/src/lib/libcrypto/man/CMS_compress.3 b/src/lib/libcrypto/man/CMS_compress.3
new file mode 100644
index 0000000000..64bab79617
--- /dev/null
+++ b/src/lib/libcrypto/man/CMS_compress.3
@@ -0,0 +1,157 @@
1.\" $OpenBSD: CMS_compress.3,v 1.3 2019/08/10 23:41:22 schwarze Exp $
2.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
3.\"
4.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
5.\" Copyright (c) 2008 The OpenSSL Project. All rights reserved.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\"
11.\" 1. Redistributions of source code must retain the above copyright
12.\" notice, this list of conditions and the following disclaimer.
13.\"
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\" notice, this list of conditions and the following disclaimer in
16.\" the documentation and/or other materials provided with the
17.\" distribution.
18.\"
19.\" 3. All advertising materials mentioning features or use of this
20.\" software must display the following acknowledgment:
21.\" "This product includes software developed by the OpenSSL Project
22.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
23.\"
24.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
25.\" endorse or promote products derived from this software without
26.\" prior written permission. For written permission, please contact
27.\" openssl-core@openssl.org.
28.\"
29.\" 5. Products derived from this software may not be called "OpenSSL"
30.\" nor may "OpenSSL" appear in their names without prior written
31.\" permission of the OpenSSL Project.
32.\"
33.\" 6. Redistributions of any form whatsoever must retain the following
34.\" acknowledgment:
35.\" "This product includes software developed by the OpenSSL Project
36.\" for use in the OpenSSL Toolkit (http://www.openssl.org/)"
37.\"
38.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
39.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
40.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
41.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
42.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
44.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
45.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
46.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
47.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
48.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
49.\" OF THE POSSIBILITY OF SUCH DAMAGE.
50.\"
51.Dd $Mdocdate: August 10 2019 $
52.Dt CMS_COMPRESS 3
53.Os
54.Sh NAME
55.Nm CMS_compress
56.Nd create a CMS CompressedData structure
57.Sh SYNOPSIS
58.In openssl/cms.h
59.Ft CMS_ContentInfo *
60.Fo CMS_compress
61.Fa "BIO *in"
62.Fa "int comp_nid"
63.Fa "unsigned int flags"
64.Fc
65.Sh DESCRIPTION
66.Fn CMS_compress
67creates and returns a CMS CompressedData structure.
68.Fa comp_nid
69is the compression algorithm to use or
70.Dv NID_undef
71to use the default algorithm (zlib compression).
72.Fa in
73is the content to be compressed.
74.Fa flags
75is an optional set of flags.
76.Pp
77The only currently supported compression algorithm is zlib using the NID
78.Dv NID_zlib_compression .
79.Pp
80If zlib support is not compiled in, then
81.Fn CMS_compress
82will return an error.
83.Pp
84If the
85.Dv CMS_TEXT
86flag is set, MIME headers for type text/plain are prepended to the data.
87.Pp
88Normally the supplied content is translated into MIME canonical format
89(as required by the S/MIME specifications); if
90.Dv CMS_BINARY
91is set, no translation occurs.
92This option should be used if the supplied data is in binary format.
93Otherwise, the translation will corrupt it.
94If
95.Dv CMS_BINARY
96is set then
97.Dv CMS_TEXT
98is ignored.
99.Pp
100If the
101.Dv CMS_STREAM
102flag is set, a partial
103.Vt CMS_ContentInfo
104structure is returned suitable for streaming I/O: no data is read from
105the BIO
106.Fa in .
107.Pp
108The compressed data is included in the
109.Vt CMS_ContentInfo
110structure unless
111.Dv CMS_DETACHED
112is set, in which case it is omitted.
113This is rarely used in practice and is not supported by
114.Xr SMIME_write_CMS 3 .
115.Pp
116If the flag
117.Dv CMS_STREAM
118is set, the returned
119.Vt CMS_ContentInfo
120structure is
121.Em not
122complete and outputting its contents via a function that does not
123properly finalize the
124.Vt CMS_ContentInfo
125structure will give unpredictable results.
126.Pp
127Several functions including
128.Xr SMIME_write_CMS 3 ,
129.Xr i2d_CMS_bio_stream 3 ,
130and
131.Xr PEM_write_bio_CMS_stream 3
132finalize the structure.
133Alternatively finalization can be performed by obtaining the streaming
134ASN1
135.Vt BIO
136directly using
137.Xr BIO_new_CMS 3 .
138.Pp
139Additional compression parameters such as the zlib compression level
140cannot currently be set.
141.Sh RETURN VALUES
142.Fn CMS_compress
143returns either a
144.Vt CMS_ContentInfo
145structure or
146.Dv NULL
147if an error occurred.
148The error can be obtained from
149.Xr ERR_get_error 3 .
150.Sh SEE ALSO
151.Xr CMS_uncompress 3
152.Sh HISTORY
153.Fn CMS_compress
154was added to OpenSSL 0.9.8.
155The
156.Dv CMS_STREAM
157flag was added in OpenSSL 1.0.0.