1/*
2 * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
3 *
4 * Licensed under the OpenSSL license (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
8 */
9
10#ifndef HEADER_COMP_H
11# define HEADER_COMP_H
12
13# include <openssl/opensslconf.h>
14
15# ifndef OPENSSL_NO_COMP
16# include <openssl/crypto.h>
17# include <openssl/comperr.h>
18# ifdef __cplusplus
19extern "C" {
20# endif
21
22
23
24COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
25const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx);
26int COMP_CTX_get_type(const COMP_CTX* comp);
27int COMP_get_type(const COMP_METHOD *meth);
28const char *COMP_get_name(const COMP_METHOD *meth);
29void COMP_CTX_free(COMP_CTX *ctx);
30
31int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
32 unsigned char *in, int ilen);
33int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
34 unsigned char *in, int ilen);
35
36COMP_METHOD *COMP_zlib(void);
37
38#if OPENSSL_API_COMPAT < 0x10100000L
39#define COMP_zlib_cleanup() while(0) continue
40#endif
41
42# ifdef HEADER_BIO_H
43# ifdef ZLIB
44const BIO_METHOD *BIO_f_zlib(void);
45# endif
46# endif
47
48
49# ifdef __cplusplus
50}
51# endif
52# endif
53#endif
54