Code: Select all
unit enigma_ide;
interface
const
WM_PUBLIC = 1;
WM_PRIVATE = 2;
MAX_STRING_SIZE = 255;
// Ctypt hash types, possible hash values for functions:
// EP_CryptHashBuffer
// EP_CryptHashStringA
// EP_CryptHashStringW
// EP_CryptHashFileA
// EP_CryptHashFileW
HASH_XOR32 = 0;
HASH_MD2 = 1;
HASH_MD5 = 2;
HASH_RipeMD160 = 3;
HASH_SH1 = 4;
HASH_SHA224 = 5;
HASH_SHA256 = 6;
HASH_SHA384 = 7;
HASH_SHA512 = 8;
type
TWMContent = record
WMType : integer;
Name : PAnsiChar;
NameLen : integer;
Text : PAnsiChar;
TextLen : integer;
FileName : PAnsiChar;
FileNameLen : integer;
AFile : pointer;
AFileLen : integer;
end;
PWMContent = ^TWMContent;
{API for registration}
function EP_RegSaveKey ( Name : PAnsiChar; Key : PAnsiChar) : boolean; stdcall;
function EP_RegLoadKey( var Name : PAnsiChar; var Key : PAnsiChar) : boolean; stdcall;
function EP_RegDeleteKey : boolean; stdcall;
function EP_RegCheckKey ( Name : PAnsiChar; Key : PAnsiChar) : boolean; stdcall;
function EP_RegLoadAndCheckKey : boolean; stdcall;
function EP_RegCheckAndSaveKey( Name : PAnsiChar; Key : PAnsiChar) : boolean; stdcall;
function EP_RegHardwareID : PAnsiChar; stdcall;
function EP_RegKeyCreationDate( var Year, Month, Day : Cardinal) : boolean; stdcall;
function EP_RegKeyExpirationDate( var Year, Month, Day : Cardinal) : boolean; stdcall;
{API for trial}
function EP_TrialExecutions( var Total, Left : Cardinal) : boolean; stdcall;
function EP_TrialDays( var Total, Left : Cardinal) : boolean; stdcall;
function EP_TrialExpirationDate( var Year, Month, Day : Cardinal) : boolean; stdcall;
function EP_TrialDateTillDate( var StartYear, StartMonth, StartDay, EndYear, EndMonth, EndDay : Cardinal) : boolean; stdcall;
function EP_TrialExecutionTime( var Total, Left : Cardinal) : boolean; stdcall;
{API Misc}
function EP_MiscGetWatermark(ID : integer; WM : PWMContent) : integer; stdcall;
{API Protection}
function EP_ProtectedStringByID(ID : integer; Buffer : pointer; Len : integer) : integer; stdcall;
function EP_ProtectedStringByKey(Key : PAnsiChar; Buffer : pointer; Len : integer) : integer; stdcall;
{API Crypt}
function EP_CryptHashBuffer(Hash : Cardinal; Buffer : pointer; Size : Cardinal; Digest : pointer) : Cardinal; stdcall;
function EP_CryptHashFileA(Hash : Cardinal; FileName : PAnsiChar; Digest : pointer) : Cardinal; stdcall;
function EP_CryptHashFileW(Hash : Cardinal; FileName : PWideChar; Digest : pointer) : Cardinal; stdcall;
function EP_CryptHashStringA(Hash : Cardinal; Str : PAnsiChar; Digest : pointer) : Cardinal; stdcall;
function EP_CryptHashStringW(Hash : Cardinal; Str : PWideChar; Digest : pointer) : Cardinal; stdcall;
{API Checkup}
function EP_CheckupCopies( var Total, Current : Cardinal) : boolean; stdcall;
function EP_CheckupIsProtected : boolean;
function EP_CheckupIsEnigmaOk : boolean;
implementation
const
enigma_api_dll_name = 'enigma_ide.dll';
function EP_RegSaveKey ( Name : PAnsiChar; Key : PAnsiChar) : boolean; external enigma_api_dll_name name 'EP_RegSaveKey';
function EP_RegLoadKey(var Name : PAnsiChar; var Key : PAnsiChar) : boolean; external enigma_api_dll_name name 'EP_RegLoadKey';
function EP_RegDeleteKey : boolean; external enigma_api_dll_name name 'EP_RegDeleteKey';
function EP_RegCheckKey ( Name : PAnsiChar; Key : PAnsiChar) : boolean; external enigma_api_dll_name name 'EP_RegCheckKey';
function EP_RegCheckAndSaveKey(Name : PAnsiChar; Key : PAnsiChar) : boolean; external enigma_api_dll_name name 'EP_RegCheckAndSaveKey';
function EP_RegLoadAndCheckKey : boolean; external enigma_api_dll_name name 'EP_RegLoadAndCheckKey';
function EP_RegHardwareID : PAnsiChar; external enigma_api_dll_name name 'EP_RegHardwareID';
function EP_RegKeyCreationDate( var Year, Month, Day : Cardinal) : boolean; external enigma_api_dll_name name 'EP_RegKeyCreationDate';
function EP_RegKeyExpirationDate( var Year, Month, Day : Cardinal) : boolean; external enigma_api_dll_name name 'EP_RegKeyExpirationDate';
function EP_TrialExecutions( var Total, Left : Cardinal) : boolean; external enigma_api_dll_name name 'EP_TrialExecutions';
function EP_TrialDays( var Total, Left : Cardinal) : boolean; external enigma_api_dll_name name 'EP_TrialDays';
function EP_TrialExpirationDate( var Year, Month, Day : Cardinal) : boolean; external enigma_api_dll_name name 'EP_TrialExpirationDate';
function EP_TrialDateTillDate( var StartYear, StartMonth, StartDay, EndYear, EndMonth, EndDay : Cardinal) : boolean; external enigma_api_dll_name name 'EP_TrialDateTillDate';
function EP_TrialExecutionTime( var Total, Left : Cardinal) : boolean; external enigma_api_dll_name name 'EP_TrialExecutionTime';
function EP_MiscGetWatermark(ID : integer; WM : PWMContent) : integer; external enigma_api_dll_name name 'EP_MiscGetWatermark';
function EP_ProtectedStringByID(ID : integer; Buffer : pointer; Len : integer) : integer; external enigma_api_dll_name name 'EP_ProtectedStringByID';
function EP_ProtectedStringByKey(Key : PAnsiChar; Buffer : pointer; Len : integer) : integer; external enigma_api_dll_name name 'EP_ProtectedStringByKey';
function EP_CryptHashBuffer(Hash : Cardinal; Buffer : pointer; Size : Cardinal; Digest : pointer) : Cardinal; external enigma_api_dll_name name 'EP_CryptHashBuffer';
function EP_CryptHashFileA(Hash : Cardinal; FileName : PAnsiChar; Digest : pointer) : Cardinal; external enigma_api_dll_name name 'EP_CryptHashFileA';
function EP_CryptHashFileW(Hash : Cardinal; FileName : PWideChar; Digest : pointer) : Cardinal; external enigma_api_dll_name name 'EP_CryptHashFileW';
function EP_CryptHashStringA(Hash : Cardinal; Str : PAnsiChar; Digest : pointer) : Cardinal; external enigma_api_dll_name name 'EP_CryptHashStringA';
function EP_CryptHashStringW(Hash : Cardinal; Str : PWideChar; Digest : pointer) : Cardinal; external enigma_api_dll_name name 'EP_CryptHashStringW';
function EP_CheckupCopies( var Total, Current : Cardinal) : boolean; external enigma_api_dll_name name 'EP_CheckupCopies';
function EP_CheckupIsProtected : boolean; external enigma_api_dll_name name 'EP_CheckupIsProtected';
function EP_CheckupIsEnigmaOk : boolean; external enigma_api_dll_name name 'EP_CheckupIsEnigmaOk';
end.
Corrections for the file Change all PChar in PansiChar...
Note also that all the exemples dont work with delphi 2009. There is a mix of Pchar PansiChar etc... The parameters are passed in Pchar or PansiChar ?