home | search | help  
home page università di genova

Marco Ferrante
English version Home page
Versione italiana Pagina principale
Cifratura DM 24/06/2004

Delphi/OpenSSL
English version English version
Versione italiana Versione italiana

Delphi import unit per OpenSSL DLL

RSA+MD5 signature

A nice contribute by Dim (Russia)

Require libeay32.pas, v. >= 0.7

// Equivalent to:
//   openssl dgst -md5 -sign private.pem -hex -out test.hex 
function Sign_RSA_MD5(privatekey,msg: string): string;
var
Len: cardinal;
mdctx: EVP_MD_CTX;
inbuf, outbuf: array [0..1023] of char;
key: pEVP_PKEY;
begin
StrPCopy(inbuf, msg);
InitOpenSSL;
key:=ReadPrivateKey(privatekey);
EVP_SignInit(@mdctx, EVP_md5());
EVP_SignUpdate(@mdctx, @inbuf, StrLen(inbuf));
EVP_SignFinal(@mdctx, @outbuf, Len, key);
FreeOpenSSL;
BinToHex(outbuf, inbuf,Len);
inbuf[2*Len]:=#0;
result := StrPas(inbuf);
end;