comp.h revision 109998
1
2#ifndef HEADER_COMP_H
3#define HEADER_COMP_H
4
5#include <openssl/crypto.h>
6
7#ifdef  __cplusplus
8extern "C" {
9#endif
10
11typedef struct comp_method_st
12	{
13	int type;		/* NID for compression library */
14	const char *name;	/* A text string to identify the library */
15	int (*init)();
16	void (*finish)();
17	int (*compress)();
18	int (*expand)();
19	long (*ctrl)();
20	long (*callback_ctrl)();
21	} COMP_METHOD;
22
23typedef struct comp_ctx_st
24	{
25	COMP_METHOD *meth;
26	unsigned long compress_in;
27	unsigned long compress_out;
28	unsigned long expand_in;
29	unsigned long expand_out;
30
31	CRYPTO_EX_DATA	ex_data;
32	} COMP_CTX;
33
34
35COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
36void COMP_CTX_free(COMP_CTX *ctx);
37int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
38	unsigned char *in, int ilen);
39int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
40	unsigned char *in, int ilen);
41COMP_METHOD *COMP_rle(void );
42COMP_METHOD *COMP_zlib(void );
43
44/* BEGIN ERROR CODES */
45/* The following lines are auto generated by the script mkerr.pl. Any changes
46 * made after this point may be overwritten when the script is next run.
47 */
48void ERR_load_COMP_strings(void);
49
50/* Error codes for the COMP functions. */
51
52/* Function codes. */
53
54/* Reason codes. */
55
56#ifdef  __cplusplus
57}
58#endif
59#endif
60