library RecEncryptDLL;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
System.SysUtils,
System.Classes,
uEIAES in '..\..\..\..\CONTACTCENTER\01.Trunk\01.Source\01.Class\AES\uEIAES.pas',
Seed in '..\..\..\..\CONTACTCENTER\01.Trunk\01.Source\01.Class\Seed\Seed.pas',
SeedUtil in '..\..\..\..\CONTACTCENTER\01.Trunk\01.Source\01.Class\Seed\SeedUtil.pas',
uLog in '..\..\01.Class\uLog.pas',
uRecEncrypt in '..\..\..\..\CONTACTCENTER\01.Trunk\01.Source\01.Class\PlayerBase\uRecEncrypt.pas';
{$R *.res}
function GetAlgorithm(idx : integer) : TEncAlgorithm;
begin
case idx of
0 :
begin
result := _Unknown;
end;
1 :
begin
result := _SEED;
end;
2 :
begin
result := _AES128;
end;
3 :
begin
result := _AES192;
end;
4 :
begin
result := _AES256;
end;
5 :
begin
result := _AES128_CBC;
end;
6 :
begin
result := _AES192_CBC;
end;
7 :
begin
result := _AES256_CBC;
end;
end;
end;
function DecryptRecfile(KeyFile, sFilename : string; var ErrMsg : string) : boolean; overload; export;
var
v : TRecEncrypt;
begin
v := TRecEncrypt.Create(KeyFile);
try
result := v.DecryptRecfile(sFilename);
if not result then
ErrMsg := v.ErrMsg;
finally
v.Free;
end;
end;
function DecryptRecfile(KeyFile, sFilename, sTargetname : string; var ErrMsg : string) : boolean; overload; export;
var
v : TRecEncrypt;
begin
v := TRecEncrypt.Create(KeyFile);
try
result := v.DecryptRecfile(sFilename, sTargetname);
if not result then
ErrMsg := v.ErrMsg;
finally
v.Free;
end;
end;
function DecryptRecfile(KeyFile, sFilename : string; Target : TMemoryStream; var ErrMsg : string) : boolean; overload; export;
var
v : TRecEncrypt;
begin
v := TRecEncrypt.Create(KeyFile);
try
result := v.DecryptRecfile(sFilename, Target);
if not result then
ErrMsg := v.ErrMsg;
finally
v.Free;
end;
end;
function DecryptRecfile(KeyFile : string; src : TMemoryStream; sExt : string; var ErrMsg : string) : boolean; overload; export;
var
v : TRecEncrypt;
begin
v := TRecEncrypt.Create(KeyFile);
try
result := v.DecryptRecfile(src, sExt);
if not result then
ErrMsg := v.ErrMsg;
finally
v.Free;
end;
end;
function DecryptRecfile(KeyFile : string; src : TMemoryStream; sExt : string; Target : TMemoryStream; var ErrMsg : string) : boolean;
overload; export;
var
v : TRecEncrypt;
begin
v := TRecEncrypt.Create(KeyFile);
try
result := v.DecryptRecfile(src, sExt, Target);
if not result then
ErrMsg := v.ErrMsg;
finally
v.Free;
end;
end;
function DecryptRecfile(KeyFile : string; src : TMemoryStream; sExt, sTargetname : string; var ErrMsg : string) : boolean; overload; export;
var
v : TRecEncrypt;
begin
v := TRecEncrypt.Create(KeyFile);
try
result := v.DecryptRecfile(src, sExt, sTargetname);
if not result then
ErrMsg := v.ErrMsg;
finally
v.Free;
end;
end;
exports
DecryptRecfile(KeyFile : string; sFilename : string; var ErrMsg : string)name 'Decrypt_File',
DecryptRecfile(KeyFile : string; sFilename, sTargetname : string; var ErrMsg : string)name 'Decrypt_FileToFile',
DecryptRecfile(KeyFile : string; sFilename : string; Target : TMemoryStream; var ErrMsg : string)name 'Decrypt_FileToStream',
DecryptRecfile(KeyFile : string; src : TMemoryStream; sExt : string; var ErrMsg : string)name 'Decrypt_Stream_Ext',
DecryptRecfile(KeyFile : string; src : TMemoryStream; sExt : string; Target : TMemoryStream; var ErrMsg : string)name 'Decrypt_Stream_ExtToStream',
DecryptRecfile(KeyFile : string; src : TMemoryStream; sExt : string; sTargetname : string; var ErrMsg : string)name 'Decrypt_Stream_ExtToFile';
begin
end.
동일한 함수를 사용할때는 NAME을 붙여야 한다.
'DELPHI(델파이)' 카테고리의 다른 글
[델파이 - DELPHI] HTTPS 서버 사용시 다른 포트 바인딩 주의점 (0) | 2020.11.24 |
---|---|
[델파이 - DELPHI] INDY HTTP, TCP TLS 1.2 사용 (0) | 2020.11.24 |
[델파이 - DELPHI] WINDOWS10 알림창 (0) | 2020.11.19 |
[델파이 - DELPHI] DLL 호출바 (0) | 2020.11.19 |
Window Tail (0) | 2020.03.25 |