New Release 2.1 with better plugins support now released .

I use simple plugin definition for support passwords

[pascal]
library PwdPlugin;

uses
AsphyreDef,
encodeplugins,
Classes;

{$R *.res}
var password:string;

function proc_encode(Source, Dest: Pointer; SourceSize, DestSize: Longword):Integer;
begin
Result:=SourceSize;
if Result>DestSize then Result:=DestSize;
Move(source^,Dest^,Result);
end;

function proc_decode(Source, Dest: Pointer; SourceSize, DestSize: Longword):Integer;
begin
Result:=SourceSize;
if Result>DestSize then Result:=DestSize;
Move(source^,Dest^,Result);
end;

function proc_params(Source, Dest: Pointer; SourceSize, DestSize: Longword):Integer;
begin
password:=PChar(Source);
Result:=errNone;
end;

function proc_reset(Source, Dest: Pointer; SourceSize, DestSize: Longword):Integer;
begin
password:='';
Result:=errNone;
end;

function PluginEnum(EnumFunc: TEnumFunc; MiscParam: Longword): Integer; stdcall;export;
begin
Result:=errUnknownError;
if not EnumFunc(attribName, 0,'Password test plugin',MiscParam) then Exit;
if not EnumFunc(attribID, 0,'PwdPlugin',MiscParam) then Exit;
if not EnumFunc(attribVersion,$100,'',MiscParam) then Exit;
if not EnumFunc(attribMinVersion,0,'',MiscParam) then Exit;
if not EnumFunc(attribFlags,flagEncode,'Crypt data block',MiscParam) then Exit;
if not EnumFunc(attribFlags,flagDecode,'Uncrypt data block',MiscParam) then Exit;
if not EnumFunc(attribFlags,flagParams,'Set password',MiscParam) then Exit;
if not EnumFunc(attribFlags,flagReset+99,'MySecureProc',M iscParam) then Exit;
Result:=0;
end;

function PluginExec(Source, Dest: Pointer; SourceSize, DestSize, Flags: Longword): Integer; stdcall;export;
begin
case Flags of
flagEncode : Result:=proc_encode(Source,Dest,SourceSize,DestSiz e);
flagDecode : Result:=proc_decode(Source,Dest,SourceSize,DestSiz e);
flagParams : Result:=proc_params(Source,Dest,SourceSize,DestSiz e);
flagReset : Result:=proc_reset(Source,Dest,SourceSize,DestSize );
else
Result := errFlags;
end;
end;

exports
PluginEnum,
PluginExec;
end.
[/pascal]

Is it right way ?