Ver Mensaje Individual
  #1  
Antiguo 08-05-2012
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Reputación: 20
weke Va por buen camino
Question "Stream read error" al descodificar

Buenas tardes,
he migrado una aplicación de Delphi 7 a Delphi 2010 y me he encontrado con un problema en una función para descodificar la contraseña de acceso a la configuración de la aplicación.
Hasta ahora la aplicación estaba funcionando correctamente pero al hacer la migración me devuelve error en la línea "Src.ReadBuffer(Size,Sizeof(Size));".

A continuación pongo el código fuente de la función a ver si es que se me está pasando algo.

Código Delphi [-]
function Descifrar(Str,Clave: AnsiString): AnsiString;
var
  Src: TMemoryStream;
  Dst: TStringStream;
  Size: Integer;
  Key: TAESKey;
  ExpandedKey: TAESExpandedKey;
begin
  Result:= ''; //Result:= EmptyStr;
  Src:= TMemoryStream.Create;
  try
    Dst:= TStringStream.Create(Str);
    try
      StrToStream(Str,Src);
      Src.Position:= 0;
      FillChar(Key,Sizeof(Key),#0);
      if Length(Clave) > Sizeof(Key) then
          move(PChar(Clave)^,Key,Sizeof(key))
      else
          move(PChar(Clave)^,Key,Length(Clave));
      AESExpandKey(ExpandedKey,Key);
      // Leemos el tamaño del texto
      Src.ReadBuffer(Size,Sizeof(Size));
      AESDecryptStreamECB(Src,Dst,ExpandedKey);
      Dst.Size:= Size;
      Result:= Dst.DataString;
    finally
      Dst.Free;
    end;
  finally
    Src.Free;
  end;
end;

Muchas gracias de antemano y un saludo.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita