Кислый, у меня так:
delphi Код:
function RSAEncrypt_GMP(login, psw: AnsiString; var rsakey): TBytes;
var
sD: AnsiString;
m,d,r: mpz_t;
count: Integer;
begin
RSAkeyDecode(rsakey);
if length(login)>14 then setlength(login,14);
while length(login)<14 do login:=login+#0;
if length(psw)>16 then setlength(psw,16);
while length(psw)<16 do psw:=psw+#0;
sD:=#$24#0#0+login+psw+#0#0#0#0;
mpz_init(m);
mpz_import(m,128,1,1,0,0,rsakey);
mpz_init(d);
mpz_import(d,Length(sD),1,1,0,0,sD[1]);
mpz_init(r);
mpz_powm_ui(r,d,65537,m);
count:=32;
SetLength(Result,128);
mpz_export(Result[0],count,1,4,1,0,r);
mpz_clear(r);
mpz_clear(d);
mpz_clear(m);
end;