Blame doc/man3/CMS_compress.pod

Packit Service 084de1
=pod
Packit Service 084de1
Packit Service 084de1
=head1 NAME
Packit Service 084de1
Packit Service 084de1
CMS_compress - create a CMS CompressedData structure
Packit Service 084de1
Packit Service 084de1
=head1 SYNOPSIS
Packit Service 084de1
Packit Service 084de1
 #include <openssl/cms.h>
Packit Service 084de1
Packit Service 084de1
 CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);
Packit Service 084de1
Packit Service 084de1
=head1 DESCRIPTION
Packit Service 084de1
Packit Service 084de1
CMS_compress() creates and returns a CMS CompressedData structure. B<comp_nid>
Packit Service 084de1
is the compression algorithm to use or B<NID_undef> to use the default
Packit Service 084de1
algorithm (zlib compression). B<in> is the content to be compressed.
Packit Service 084de1
B<flags> is an optional set of flags.
Packit Service 084de1
Packit Service 084de1
=head1 NOTES
Packit Service 084de1
Packit Service 084de1
The only currently supported compression algorithm is zlib using the NID
Packit Service 084de1
NID_zlib_compression.
Packit Service 084de1
Packit Service 084de1
If zlib support is not compiled into OpenSSL then CMS_compress() will return
Packit Service 084de1
an error.
Packit Service 084de1
Packit Service 084de1
If the B<CMS_TEXT> flag is set MIME headers for type B<text/plain> are
Packit Service 084de1
prepended to the data.
Packit Service 084de1
Packit Service 084de1
Normally the supplied content is translated into MIME canonical format (as
Packit Service 084de1
required by the S/MIME specifications) if B<CMS_BINARY> is set no translation
Packit Service 084de1
occurs. This option should be used if the supplied data is in binary format
Packit Service 084de1
otherwise the translation will corrupt it. If B<CMS_BINARY> is set then
Packit Service 084de1
B<CMS_TEXT> is ignored.
Packit Service 084de1
Packit Service 084de1
If the B<CMS_STREAM> flag is set a partial B<CMS_ContentInfo> structure is
Packit Service 084de1
returned suitable for streaming I/O: no data is read from the BIO B<in>.
Packit Service 084de1
Packit Service 084de1
The compressed data is included in the CMS_ContentInfo structure, unless
Packit Service 084de1
B<CMS_DETACHED> is set in which case it is omitted. This is rarely used in
Packit Service 084de1
practice and is not supported by SMIME_write_CMS().
Packit Service 084de1
Packit Service 084de1
=head1 NOTES
Packit Service 084de1
Packit Service 084de1
If the flag B<CMS_STREAM> is set the returned B<CMS_ContentInfo> structure is
Packit Service 084de1
B<not> complete and outputting its contents via a function that does not
Packit Service 084de1
properly finalize the B<CMS_ContentInfo> structure will give unpredictable
Packit Service 084de1
results.
Packit Service 084de1
Packit Service 084de1
Several functions including SMIME_write_CMS(), i2d_CMS_bio_stream(),
Packit Service 084de1
PEM_write_bio_CMS_stream() finalize the structure. Alternatively finalization
Packit Service 084de1
can be performed by obtaining the streaming ASN1 B<BIO> directly using
Packit Service 084de1
BIO_new_CMS().
Packit Service 084de1
Packit Service 084de1
Additional compression parameters such as the zlib compression level cannot
Packit Service 084de1
currently be set.
Packit Service 084de1
Packit Service 084de1
=head1 RETURN VALUES
Packit Service 084de1
Packit Service 084de1
CMS_compress() returns either a CMS_ContentInfo structure or NULL if an error
Packit Service 084de1
occurred. The error can be obtained from ERR_get_error(3).
Packit Service 084de1
Packit Service 084de1
=head1 SEE ALSO
Packit Service 084de1
Packit Service 084de1
L<ERR_get_error(3)>, L<CMS_uncompress(3)>
Packit Service 084de1
Packit Service 084de1
=head1 HISTORY
Packit Service 084de1
Packit Service 084de1
The B<CMS_STREAM> flag was added in OpenSSL 1.0.0.
Packit Service 084de1
Packit Service 084de1
=head1 COPYRIGHT
Packit Service 084de1
Packit Service 084de1
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
Packit Service 084de1
Licensed under the OpenSSL license (the "License").  You may not use
Packit Service 084de1
this file except in compliance with the License.  You can obtain a copy
Packit Service 084de1
in the file LICENSE in the source distribution or at
Packit Service 084de1
L<https://www.openssl.org/source/license.html>.
Packit Service 084de1
Packit Service 084de1
=cut