1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HEADER_COMP_H
3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HEADER_COMP_H
4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/crypto.h>
6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef  __cplusplus
8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern "C" {
9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct comp_ctx_st COMP_CTX;
12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct comp_method_st
14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	{
15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	int type;		/* NID for compression library */
16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	const char *name;	/* A text string to identify the library */
17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	int (*init)(COMP_CTX *ctx);
18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	void (*finish)(COMP_CTX *ctx);
19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	int (*compress)(COMP_CTX *ctx,
20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project			unsigned char *out, unsigned int olen,
21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project			unsigned char *in, unsigned int ilen);
22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	int (*expand)(COMP_CTX *ctx,
23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project		      unsigned char *out, unsigned int olen,
24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project		      unsigned char *in, unsigned int ilen);
25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	/* The following two do NOTHING, but are kept for backward compatibility */
26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	long (*ctrl)(void);
27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	long (*callback_ctrl)(void);
28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	} COMP_METHOD;
29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectstruct comp_ctx_st
31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	{
32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	COMP_METHOD *meth;
33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	unsigned long compress_in;
34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	unsigned long compress_out;
35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	unsigned long expand_in;
36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	unsigned long expand_out;
37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	CRYPTO_EX_DATA	ex_data;
39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	};
40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCOMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid COMP_CTX_free(COMP_CTX *ctx);
44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	unsigned char *in, int ilen);
46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	unsigned char *in, int ilen);
48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCOMP_METHOD *COMP_rle(void );
49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCOMP_METHOD *COMP_zlib(void );
50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid COMP_zlib_cleanup(void);
51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef HEADER_BIO_H
53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef ZLIB
54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBIO_METHOD *BIO_f_zlib(void);
55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* BEGIN ERROR CODES */
59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following lines are auto generated by the script mkerr.pl. Any changes
60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * made after this point may be overwritten when the script is next run.
61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */
62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ERR_load_COMP_strings(void);
63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Error codes for the COMP functions. */
65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Function codes. */
67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_F_BIO_ZLIB_FLUSH				 99
68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_F_BIO_ZLIB_NEW				 100
69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_F_BIO_ZLIB_READ				 101
70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_F_BIO_ZLIB_WRITE				 102
71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Reason codes. */
73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_R_ZLIB_DEFLATE_ERROR			 99
74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_R_ZLIB_INFLATE_ERROR			 100
75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COMP_R_ZLIB_NOT_SUPPORTED			 101
76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef  __cplusplus
78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project}
79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
81