#ifndef RTSVERIF_H_ #define RTSVERIF_H_ ///////////////////////////////////////////////////////////// #ifndef RTSVERIF_IXSPEC #ifdef RTSVERIF_DLL #ifdef RTSVERIF_BUILD_DLL #define RTSVERIF_IXSPEC __declspec(dllexport) #else #define RTSVERIF_IXSPEC __declspec(dllimport) #endif//RTSVERIF_BUILD_DLL #else #define RTSVERIF_IXSPEC #endif//RTSVERIF_DLL #ifdef __cplusplus #define RTSVERIF_SPEC extern "C" RTSVERIF_IXSPEC #else #define RTSVERIF_SPEC RTSVERIF_IXSPEC #endif//__cplusplus #endif//RTSVERIF_IXSPEC ///////////////////////////////////////////////////////////// struct RTSVPipeConnection { char name[80]; int initTimeout; int operTimeout; }; struct VHANDLE__{ int unused; }; typedef struct VHANDLE__* VHANDLE; struct VIHANDLE__{ int unused; }; typedef struct VIHANDLE__* VIHANDLE; enum RTSV_CONNECT_TYPE { RTSV_PIPE=1 }; enum RTSV_ERROR { RTSV_ERROR_BAD_VHANDLE=0x7000, RTSV_ERROR_BAD_IN_PARAMETER, RTSV_ERROR_NO_CP, RTSV_ERROR_NO_CERT, RTSV_ERROR_NO_CRL, RTSV_ERROR_CRYPTO, RTSV_ERROR_INTERNAL, RTSV_ERROR_BUFFER_EXCEEDED, RTSV_ERROR_TIMEOUT, RTSV_ERROR_TIME_IS_NOT_SYNCHRONIZED, // error codes from certificate depot RTSV_CD_ERROR_INTERNAL=0x7800, RTSV_CD_ERROR_NO_CP, RTSV_CD_ERROR_BAD_CERTID, RTSV_CD_ERROR_BAD_AUTHOR_CERTID, RTSV_CD_ERROR_CP_IS_NOT_SIGNED_OR_ASSURED, RTSV_CD_ERROR_UNKNOWN_ADDRESS_IN_TO, RTSV_CD_ERROR_BIG_CP_AGE, RTSV_CD_ERROR_CERT_NOT_VALID, RTSV_CD_ERROR_CERT_BLOCKED, RTSV_CD_ERROR_CERT_DISABLED, RTSV_CD_ERROR_CERT_NOTENABLED, RTSV_CD_ERROR_CERT_BLOCKED_BUT_JUST_A_LITTLE_BIT_HARDER }; enum RTSVI_CRYPTOPACKET_TYPE { BAD_PACKET, SIMPLE_PACKET, JOINT_PACKET, //not implemented SIGNED_PACKET, ENCRYPTED_PACKET, ASSURED_PACKET }; RTSVERIF_SPEC VHANDLE RTSVInit(RTSV_CONNECT_TYPE cType,const void* param); RTSVERIF_SPEC void RTSVDeInit(VHANDLE h); RTSVERIF_SPEC int RTSVVerify(VHANDLE h,const void* inBuf,int inBufSize, VIHANDLE* pHi); RTSVERIF_SPEC int RTSVVerifyOnCertDepot(VHANDLE h,const void* inBuf,int inBufSize, void* outBuf,int* outBufSize,VIHANDLE* pHi); RTSVERIF_SPEC void RTSVIDeInit(VIHANDLE h); RTSVERIF_SPEC int RTSVIGetLevelsNumber(VIHANDLE h); RTSVERIF_SPEC const char* RTSVIGetFrom(VIHANDLE h,int level); RTSVERIF_SPEC RTSVI_CRYPTOPACKET_TYPE RTSVIGetType(VIHANDLE h,int level); RTSVERIF_SPEC const char* RTSVIGetCertificate(VIHANDLE h,int level); RTSVERIF_SPEC unsigned int RTSVIGetCertificateLen(VIHANDLE h,int level); RTSVERIF_SPEC const void* RTSVIFindBody(const void* buf,int len); RTSVERIF_SPEC int RTSVSign(VHANDLE h,const void* inBuf,int inBufSize, void* outBuf,int* outBufSize,VIHANDLE* pHi, const char *to_address); RTSVERIF_SPEC const char* RTSVIGetTime(VIHANDLE h,int level); #endif//RTSVERIF_H_