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