; 
; 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
