1 2 #ifndef HEADER_COMP_H 3 #define HEADER_COMP_H 4 5 #include <openssl/crypto.h> 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 typedef 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 23 typedef 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 35 COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); 36 void COMP_CTX_free(COMP_CTX *ctx); 37 int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, 38 unsigned char *in, int ilen); 39 int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, 40 unsigned char *in, int ilen); 41 COMP_METHOD *COMP_rle(void ); 42 COMP_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 */ 48 void 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