; 
; Exports of file DRMClien.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY DRMClien.DLL
EXPORTS
DllMain
CanDecrypt
Decrypt
RequestLicense
ProcessResponse
Bind
KeyExchange
GetVersion
CanDecryptEx
BindEx
; public: __thiscall CDRMLiteCrypto::CDRMLiteCrypto(void)
??0CDRMLiteCrypto@@QAE@XZ
; public: __thiscall CDRMLiteCrypto::~CDRMLiteCrypto(void)
??1CDRMLiteCrypto@@QAE@XZ
SetAppSec
SetLicenseStore
GetPMLicenseFileName
GetPMLicenseSize
CreatePMLicense
GenerateNewLicense
Encrypt
InitAppCerts
QueryXferToPM
; public: long __thiscall CDRMLiteCrypto::BackupLicenses(unsigned long,unsigned short *,struct IUnknown *,int *,void *)
?BackupLicenses@CDRMLiteCrypto@@QAEJKPAGPAUIUnknown@@PAHPAX@Z
; public: long __thiscall CDRMLiteCrypto::CreatePMLicenseForJD(char const *,unsigned char *,unsigned long,struct PMLICENSE *,unsigned char *)
?CreatePMLicenseForJD@CDRMLiteCrypto@@QAEJPBDPAEKPAUPMLICENSE@@1@Z
; public: long __thiscall CDRMLiteCrypto::EncryptFast(char const *,unsigned long,unsigned char *,unsigned char *)
?EncryptFast@CDRMLiteCrypto@@QAEJPBDKPAE1@Z
; public: long __thiscall CDRMLiteCrypto::EncryptIndirectFast(char const *,unsigned long,unsigned char *,unsigned char *)
?EncryptIndirectFast@CDRMLiteCrypto@@QAEJPBDKPAE1@Z
; public: long __thiscall CDRMLiteCrypto::GenerateNewLicenseEx(unsigned long,unsigned char *,unsigned char *,unsigned char *,char * *,char * *,unsigned char *)
?GenerateNewLicenseEx@CDRMLiteCrypto@@QAEJKPAE00PAPAD10@Z
; public: long __thiscall CDRMLiteCrypto::GetLicenses(char const *,struct PMLICENSE *,unsigned long *,unsigned long,void *,unsigned long *,unsigned char *)
?GetLicenses@CDRMLiteCrypto@@QAEJPBDPAUPMLICENSE@@PAKKPAX2PAE@Z
; public: long __thiscall CDRMLiteCrypto::GetPublicKey(struct PKCERT *)
?GetPublicKey@CDRMLiteCrypto@@QAEJPAUPKCERT@@@Z
; public: long __thiscall CDRMLiteCrypto::QueryXferToJD(char const *,unsigned char *,unsigned long,unsigned char *)
?QueryXferToJD@CDRMLiteCrypto@@QAEJPBDPAEK1@Z
; public: long __thiscall CDRMLiteCrypto::QueryXferToPMEx(char const *,unsigned long,unsigned long *,unsigned char *,unsigned long,unsigned char *,unsigned long,unsigned long *,unsigned char *)
?QueryXferToPMEx@CDRMLiteCrypto@@QAEJPBDKPAKPAEK2K12@Z
; public: long __thiscall CDRMLiteCrypto::RestoreLicenses(unsigned long,unsigned char *,unsigned short *,struct IUnknown *,int *,void *)
?RestoreLicenses@CDRMLiteCrypto@@QAEJKPAEPAGPAUIUnknown@@PAHPAX@Z
DllRegisterServer
DllUnregisterServer
