5 # include <openssl/crypto.h>
11 typedef struct comp_ctx_st COMP_CTX
;
13 typedef struct comp_method_st
{
14 int type
; /* NID for compression library */
15 const char *name
; /* A text string to identify the library */
16 int (*init
) (COMP_CTX
*ctx
);
17 void (*finish
) (COMP_CTX
*ctx
);
18 int (*compress
) (COMP_CTX
*ctx
,
19 unsigned char *out
, unsigned int olen
,
20 unsigned char *in
, unsigned int ilen
);
21 int (*expand
) (COMP_CTX
*ctx
,
22 unsigned char *out
, unsigned int olen
,
23 unsigned char *in
, unsigned int ilen
);
25 * The following two do NOTHING, but are kept for backward compatibility
28 long (*callback_ctrl
) (void);
33 unsigned long compress_in
;
34 unsigned long compress_out
;
35 unsigned long expand_in
;
36 unsigned long expand_out
;
37 CRYPTO_EX_DATA ex_data
;
40 COMP_CTX
*COMP_CTX_new(COMP_METHOD
*meth
);
41 void COMP_CTX_free(COMP_CTX
*ctx
);
42 int COMP_compress_block(COMP_CTX
*ctx
, unsigned char *out
, int olen
,
43 unsigned char *in
, int ilen
);
44 int COMP_expand_block(COMP_CTX
*ctx
, unsigned char *out
, int olen
,
45 unsigned char *in
, int ilen
);
46 COMP_METHOD
*COMP_rle(void);
47 COMP_METHOD
*COMP_zlib(void);
48 void COMP_zlib_cleanup(void);
52 BIO_METHOD
*BIO_f_zlib(void);
56 /* BEGIN ERROR CODES */
58 * The following lines are auto generated by the script mkerr.pl. Any changes
59 * made after this point may be overwritten when the script is next run.
61 void ERR_load_COMP_strings(void);
63 /* Error codes for the COMP functions. */
66 # define COMP_F_BIO_ZLIB_FLUSH 99
67 # define COMP_F_BIO_ZLIB_NEW 100
68 # define COMP_F_BIO_ZLIB_READ 101
69 # define COMP_F_BIO_ZLIB_WRITE 102
72 # define COMP_R_ZLIB_DEFLATE_ERROR 99
73 # define COMP_R_ZLIB_INFLATE_ERROR 100
74 # define COMP_R_ZLIB_NOT_SUPPORTED 101