comp.h revision 68651
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 );
42#ifdef ZLIB
43COMP_METHOD *COMP_zlib(void );
44#endif
45
46/* BEGIN ERROR CODES */
47/* The following lines are auto generated by the script mkerr.pl. Any changes
48 * made after this point may be overwritten when the script is next run.
49 */
50
51/* Error codes for the COMP functions. */
52
53/* Function codes. */
54
55/* Reason codes. */
56
57#ifdef  __cplusplus
58}
59#endif
60#endif
61
62