Resumiendo: el problema que tienes es la conversión de tipos de variables,
Recibes un PChar y lo necesitas convertir a ByteArray para que la función desencripte los paquetes, luego pasarlo a string y leer la información.
Ten encuentra que deberías decir si estas usando Delphi 7 o XE ya que las conversiones pueden variar entre esos 2 Delphi's
//Te dejo en Delphi XE10 un método sencillo que me funciona a mí:
Código Delphi
[-]var
ValPChar:PChar;
ValString:AnsiString;
begin
ValPChar:='testing';
ValString:=AnsiString(ValPChar);
end;
function StringToByteArray(sCadena: AnsiString): TBytes;
var
i: integer;
begin
SetLength(Result, Length(sCadena));
for i := 0 to Length(sCadena) do
Result[i - 1] := byte(sCadena[i]);
end;
function ByteArrayToString(bByteArray: TBytes): AnsiString;
var
i: integer;
begin
SetLength(Result, Length(bByteArray));
for i := 0 to Length(bByteArray) do
Result[i + 1] := AnsiChar(bByteArray[i]);
end;