Jo, die
Unit funktioniert wunderbar (hatte ich auch aus C übersetzt).
Der IV ist 4x der 4 Byte IV, ich dachte das hat mit dem OFB zu tun und wird deswegen automatisch gemacht
Naja, dann werde ich es mal auf die Art versuchen.
Edit:
Danke für die Hilfe
Es lag tatsächlich an dem IV, MultiplyBytes wandelt ihn jetzt ins richtige Format.
Delphi-Quellcode:
procedure TMapleAESOFB.AESDecrypt(
var Data: TBytes);
var
Dest, ExpIV: TBytes;
begin
ExpIV := MultiplyBytes(FIV, 4, 4);
FCipher.Init(FKey[0], 32, ExpIV[0], 16);
try
// xxx handle packets > 1460 Bytes
FCipher.Decode(Data[0], Data[0], Length(Data));
finally
FCipher.Done;
ExpIV :=
nil;
end;
NextIV;
end;
So funktioniert nun alles.