Hola buen dia.
Tengo problema con una funcion que utiliza la siguiente instruccion:
Código Delphi
[-]
var inbuf: array [0..500000000] of ansichar;
Esta instruccion funciona bien cuando el valor maximo es de 1000000.
El codigo completo donde la utilizo es este:
Código Delphi
[-]
function CalculaSelloConBig(cadenaoriginal: string; Hash:THash; key: pEVP_PKEY): string;
var inbuf: array [0..500000000] of ansichar;
outbuf: array [0..1024] of ansichar;
mdctx: EVP_MD_CTX;
Len: cardinal;
begin
StrPCopy(inbuf,UTF8Encode(cadenaoriginal));
if Hash = MD5 then EVP_SignInit(@mdctx,EVP_md5());
if Hash = SHA1 then EVP_SignInit(@mdctx,EVP_sha1());
EVP_SignUpdate(@mdctx,@inbuf,StrLen(inbuf));
EVP_SignFinal(@mdctx,@outbuf,Len,key);
result := BinToBase64(@outbuf,Len);
end;
El problema que se presenta es al momento de ejecucion se aborta el programa solo diciendo que: El programa xxxx.exe dejo de funcionar.
Cualquier ayuda se los agradesco.