comp.h revision 656d9c7f52f88b3a3daccafa7655dec086c4756e
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_ctx_st COMP_CTX; 12 13typedef struct comp_method_st 14 { 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 */ 26 long (*ctrl)(void); 27 long (*callback_ctrl)(void); 28 } COMP_METHOD; 29 30struct comp_ctx_st 31 { 32 COMP_METHOD *meth; 33 unsigned long compress_in; 34 unsigned long compress_out; 35 unsigned long expand_in; 36 unsigned long expand_out; 37 38 CRYPTO_EX_DATA ex_data; 39 }; 40 41 42COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); 43void COMP_CTX_free(COMP_CTX *ctx); 44int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, 45 unsigned char *in, int ilen); 46int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, 47 unsigned char *in, int ilen); 48COMP_METHOD *COMP_rle(void ); 49COMP_METHOD *COMP_zlib(void ); 50void COMP_zlib_cleanup(void); 51 52#ifdef HEADER_BIO_H 53#ifdef ZLIB 54BIO_METHOD *BIO_f_zlib(void); 55#endif 56#endif 57 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. 61 */ 62void ERR_load_COMP_strings(void); 63 64/* Error codes for the COMP functions. */ 65 66/* Function codes. */ 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 71 72/* Reason codes. */ 73#define COMP_R_ZLIB_DEFLATE_ERROR 99 74#define COMP_R_ZLIB_INFLATE_ERROR 100 75#define COMP_R_ZLIB_NOT_SUPPORTED 101 76 77#ifdef __cplusplus 78} 79#endif 80#endif 81