105 lines
2.7 KiB
C
105 lines
2.7 KiB
C
/*******************************************************************************
|
|
* Copyright (c) 1998 Gemplus Development
|
|
*
|
|
* Name : COMPCERT.H
|
|
*
|
|
* Description :
|
|
*
|
|
Author : Christophe Clavier
|
|
|
|
Compiler : Microsoft Visual C 1.5x/2.0
|
|
ANSI C UNIX.
|
|
|
|
Host : IBM PC and compatible machines under Windows 3.x.
|
|
UNIX machine.
|
|
|
|
* Release : 1.10.001
|
|
*
|
|
* Last Modif. : 04/03/98: V1.10.001 - New dictionary management.
|
|
* 27/08/97: V1.00.001 - First implementation.
|
|
*
|
|
********************************************************************************
|
|
*
|
|
* Warning :
|
|
*
|
|
* Remark :
|
|
*
|
|
*******************************************************************************/
|
|
|
|
/*------------------------------------------------------------------------------
|
|
Name definition:
|
|
_COMPCERT_H is used to avoid multiple inclusion.
|
|
------------------------------------------------------------------------------*/
|
|
#ifndef _COMPCERT_H
|
|
#define _COMPCERT_H
|
|
|
|
|
|
/* Errors code */
|
|
#define RV_SUCCESS 0 /* Info */
|
|
#define RV_COMPRESSION_FAILED 1 /* Warning */
|
|
#define RV_MALLOC_FAILED 2 /* Error */
|
|
#define RV_BAD_DICTIONARY 3 /* Error */
|
|
#define RV_INVALID_DATA 4 /* Error */
|
|
#define RV_BLOC_TOO_LONG 5 /* Warning */
|
|
#define RV_FILE_OPEN_FAILED 6 /* Error */
|
|
#define RV_BUFFER_TOO_SMALL 7 /* Error */
|
|
|
|
/* Dictionary mode */
|
|
#define DICT_STANDARD (0) // DLL mode only
|
|
#define DICT_REGISTRY (1)
|
|
#define DICT_FILE (2)
|
|
|
|
|
|
/*------------------------------------------------------------------------------
|
|
Types definitions
|
|
------------------------------------------------------------------------------*/
|
|
typedef unsigned char TAG;
|
|
typedef TAG* TAG_PTR;
|
|
typedef BYTE* BYTE_PTR;
|
|
|
|
#pragma pack(push, 8)
|
|
|
|
typedef struct
|
|
{
|
|
USHORT usLen;
|
|
BYTE_PTR pData;
|
|
} BLOC, * BLOC_PTR;
|
|
|
|
typedef struct
|
|
{
|
|
BLOC Asn1;
|
|
BLOC Content;
|
|
TAG Tag;
|
|
} ASN1, * ASN1_PTR;
|
|
|
|
#pragma pack(pop)
|
|
|
|
/*------------------------------------------------------------------------------
|
|
Functions Prototypes definitions
|
|
------------------------------------------------------------------------------*/
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
int CC_Init (BYTE bDictMode,
|
|
BYTE *pszDictName
|
|
);
|
|
|
|
int CC_Exit (void);
|
|
|
|
int CC_Compress (BLOC *pCert,
|
|
BLOC *pCompCert
|
|
);
|
|
|
|
int CC_Uncompress(BLOC *pCompCert,
|
|
BLOC *pUncompCert
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#endif
|