comp.h revision 298999
1 2#ifndef HEADER_COMP_H 3# define HEADER_COMP_H 4 5# include <openssl/crypto.h> 6 7# ifdef OPENSSL_NO_COMP 8# error COMP is disabled. 9# endif 10 11#ifdef __cplusplus 12extern "C" { 13#endif 14 15typedef struct comp_ctx_st COMP_CTX; 16 17typedef struct comp_method_st { 18 int type; /* NID for compression library */ 19 const char *name; /* A text string to identify the library */ 20 int (*init) (COMP_CTX *ctx); 21 void (*finish) (COMP_CTX *ctx); 22 int (*compress) (COMP_CTX *ctx, 23 unsigned char *out, unsigned int olen, 24 unsigned char *in, unsigned int ilen); 25 int (*expand) (COMP_CTX *ctx, 26 unsigned char *out, unsigned int olen, 27 unsigned char *in, unsigned int ilen); 28 /* 29 * The following two do NOTHING, but are kept for backward compatibility 30 */ 31 long (*ctrl) (void); 32 long (*callback_ctrl) (void); 33} COMP_METHOD; 34 35struct comp_ctx_st { 36 COMP_METHOD *meth; 37 unsigned long compress_in; 38 unsigned long compress_out; 39 unsigned long expand_in; 40 unsigned long expand_out; 41 CRYPTO_EX_DATA ex_data; 42}; 43 44COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); 45void COMP_CTX_free(COMP_CTX *ctx); 46int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, 47 unsigned char *in, int ilen); 48int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, 49 unsigned char *in, int ilen); 50COMP_METHOD *COMP_rle(void); 51COMP_METHOD *COMP_zlib(void); 52void COMP_zlib_cleanup(void); 53 54# ifdef HEADER_BIO_H 55# ifdef ZLIB 56BIO_METHOD *BIO_f_zlib(void); 57# endif 58# endif 59 60/* BEGIN ERROR CODES */ 61/* 62 * The following lines are auto generated by the script mkerr.pl. Any changes 63 * made after this point may be overwritten when the script is next run. 64 */ 65void ERR_load_COMP_strings(void); 66 67/* Error codes for the COMP functions. */ 68 69/* Function codes. */ 70# define COMP_F_BIO_ZLIB_FLUSH 99 71# define COMP_F_BIO_ZLIB_NEW 100 72# define COMP_F_BIO_ZLIB_READ 101 73# define COMP_F_BIO_ZLIB_WRITE 102 74 75/* Reason codes. */ 76# define COMP_R_ZLIB_DEFLATE_ERROR 99 77# define COMP_R_ZLIB_INFLATE_ERROR 100 78# define COMP_R_ZLIB_NOT_SUPPORTED 101 79 80#ifdef __cplusplus 81} 82#endif 83#endif 84