Home | History | Annotate | Download | only in comp
      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_ctx_st COMP_CTX;
     12 
     13 typedef 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 
     30 struct 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 
     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);
     51 
     52 #ifdef HEADER_BIO_H
     53 #ifdef ZLIB
     54 BIO_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  */
     62 void 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