os/ossrv/ssl/libcrypto/src/crypto/comp/comp.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
sl@0
     3
sl@0
     4
Redistribution and use in source and binary forms, with or without 
sl@0
     5
modification, are permitted provided that the following conditions are met:
sl@0
     6
sl@0
     7
* Redistributions of source code must retain the above copyright notice, this 
sl@0
     8
  list of conditions and the following disclaimer.
sl@0
     9
* Redistributions in binary form must reproduce the above copyright notice, 
sl@0
    10
  this list of conditions and the following disclaimer in the documentation 
sl@0
    11
  and/or other materials provided with the distribution.
sl@0
    12
* Neither the name of Nokia Corporation nor the names of its contributors 
sl@0
    13
  may be used to endorse or promote products derived from this software 
sl@0
    14
  without specific prior written permission.
sl@0
    15
sl@0
    16
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
sl@0
    17
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
sl@0
    18
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
sl@0
    19
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
sl@0
    20
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
sl@0
    21
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
sl@0
    22
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
sl@0
    23
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
sl@0
    24
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
sl@0
    25
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
sl@0
    26
sl@0
    27
Description:
sl@0
    28
*/
sl@0
    29
sl@0
    30
sl@0
    31
#ifndef HEADER_COMP_H
sl@0
    32
#define HEADER_COMP_H
sl@0
    33
#ifdef SYMBIAN
sl@0
    34
#include <e32def.h>
sl@0
    35
#endif
sl@0
    36
#include <openssl/crypto.h>
sl@0
    37
sl@0
    38
#ifdef  __cplusplus
sl@0
    39
extern "C" {
sl@0
    40
#endif
sl@0
    41
#ifdef SYMBIAN
sl@0
    42
#include <e32def.h>
sl@0
    43
#endif
sl@0
    44
typedef struct comp_ctx_st COMP_CTX;
sl@0
    45
sl@0
    46
typedef struct comp_method_st
sl@0
    47
	{
sl@0
    48
	int type;		/* NID for compression library */
sl@0
    49
	const char *name;	/* A text string to identify the library */
sl@0
    50
	int (*init)(COMP_CTX *ctx);
sl@0
    51
	void (*finish)(COMP_CTX *ctx);
sl@0
    52
	int (*compress)(COMP_CTX *ctx,
sl@0
    53
			unsigned char *out, unsigned int olen,
sl@0
    54
			unsigned char *in, unsigned int ilen);
sl@0
    55
	int (*expand)(COMP_CTX *ctx,
sl@0
    56
		      unsigned char *out, unsigned int olen,
sl@0
    57
		      unsigned char *in, unsigned int ilen);
sl@0
    58
	/* The following two do NOTHING, but are kept for backward compatibility */
sl@0
    59
	long (*ctrl)(void);
sl@0
    60
	long (*callback_ctrl)(void);
sl@0
    61
	} COMP_METHOD;
sl@0
    62
sl@0
    63
struct comp_ctx_st
sl@0
    64
	{
sl@0
    65
	COMP_METHOD *meth;
sl@0
    66
	unsigned long compress_in;
sl@0
    67
	unsigned long compress_out;
sl@0
    68
	unsigned long expand_in;
sl@0
    69
	unsigned long expand_out;
sl@0
    70
sl@0
    71
	CRYPTO_EX_DATA	ex_data;
sl@0
    72
	};
sl@0
    73
sl@0
    74
sl@0
    75
IMPORT_C COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
sl@0
    76
IMPORT_C void COMP_CTX_free(COMP_CTX *ctx);
sl@0
    77
IMPORT_C int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
sl@0
    78
	unsigned char *in, int ilen);
sl@0
    79
IMPORT_C int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
sl@0
    80
	unsigned char *in, int ilen);
sl@0
    81
IMPORT_C COMP_METHOD *COMP_rle(void );
sl@0
    82
IMPORT_C COMP_METHOD *COMP_zlib(void );
sl@0
    83
sl@0
    84
/* BEGIN ERROR CODES */
sl@0
    85
/* The following lines are auto generated by the script mkerr.pl. Any changes
sl@0
    86
 * made after this point may be overwritten when the script is next run.
sl@0
    87
 */
sl@0
    88
IMPORT_C void ERR_load_COMP_strings(void);
sl@0
    89
sl@0
    90
/* Error codes for the COMP functions. */
sl@0
    91
sl@0
    92
/* Function codes. */
sl@0
    93
sl@0
    94
/* Reason codes. */
sl@0
    95
sl@0
    96
#ifdef  __cplusplus
sl@0
    97
}
sl@0
    98
#endif
sl@0
    99
#endif