00001
00002
00003
00004
00005 #ifndef HEADER_COMP_H
00006 #define HEADER_COMP_H
00007
00008 #if (defined(__SYMBIAN32__) && !defined(SYMBIAN))
00009 #define SYMBIAN
00010 #endif
00011
00012 #ifdef SYMBIAN
00013 #include <e32def.h>
00014 #endif
00015 #include <openssl/crypto.h>
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020 #ifdef SYMBIAN
00021 #include <e32def.h>
00022 #endif
00023 typedef struct comp_ctx_st COMP_CTX;
00024
00025 typedef struct comp_method_st
00026 {
00027 int type;
00028 const char *name;
00029 int (*init)(COMP_CTX *ctx);
00030 void (*finish)(COMP_CTX *ctx);
00031 int (*compress)(COMP_CTX *ctx,
00032 unsigned char *out, unsigned int olen,
00033 unsigned char *in, unsigned int ilen);
00034 int (*expand)(COMP_CTX *ctx,
00035 unsigned char *out, unsigned int olen,
00036 unsigned char *in, unsigned int ilen);
00037
00038 long (*ctrl)(void);
00039 long (*callback_ctrl)(void);
00040 } COMP_METHOD;
00041
00042 struct comp_ctx_st
00043 {
00044 COMP_METHOD *meth;
00045 unsigned long compress_in;
00046 unsigned long compress_out;
00047 unsigned long expand_in;
00048 unsigned long expand_out;
00049
00050 CRYPTO_EX_DATA ex_data;
00051 };
00052
00053
00054 IMPORT_C COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
00055 IMPORT_C void COMP_CTX_free(COMP_CTX *ctx);
00056 IMPORT_C int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
00057 unsigned char *in, int ilen);
00058 IMPORT_C int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
00059 unsigned char *in, int ilen);
00060 IMPORT_C COMP_METHOD *COMP_rle(void );
00061 IMPORT_C COMP_METHOD *COMP_zlib(void );
00062
00063
00064
00065
00066
00067 IMPORT_C void ERR_load_COMP_strings(void);
00068
00069
00070
00071
00072
00073
00074
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 #endif