Was mache ich falsch? Funktioniert das überhaupt zusammen mit dem
DEC oder muss ich AES_CBC_Decrypt aus deiner Lib nehmen? Wenn ja, könntest du mir da bitte erläutern, was die Parameter bedeuten bzw. was da rein muss?
Ja Du machst mM was falsch, und eigentlich sollte das mit dem
DEC dann funktionieren. Du willst doch offensichtlich AES-128 benutzen, jedenfalls wird mit
pbkdf1(hash,@Password, SizeOf(password),@Salt,2,key,16);
ein 16-Byte = 128-Bit Schlüssel generiert. Mit
Delphi-Quellcode:
var
key: array[0..63] of byte;
//..
rind.Init(key,Length(key),InitVector,SizeOf(InitVector));
stopfst Du aber 512-Bit in die Init-Routine, was den Fehler 'Zu großer Key' erklärt. Am einfachsten änderst Du die key-deklaration in
Delphi-Quellcode:
var
key: array[0..15] of byte;
oder verwendest explizit den Wert 16 in
Delphi-Quellcode:
//..
rind.Init(key,16,InitVector,SizeOf(InitVector));
Laß Dir doch einmal auf beiden Seiten den erzeugten Schlüssel an zeigen.
Wenn Du Glück hast, läuft es dann mit dieser Änderung. (Ich bin allerdings immer mißtrauisch wenn in
DEC sowas wie cmCBCx auftaucht. Wenn die Kryptotextlänge kein Vielfaches von 16 ist, schaltet mW
DEC in einen Spezialmodus - der Fairness halber: auch mein AES_CBC benutzt dann CipherTextStealing). Wenn Du mein AES verwenden willst, must Du einige Dinge 'zu Fuß' erledigen: Base64-Umwandlung, eventuell Padding (die Parameter sind eigentlich immer ctp: Pointer auf Ciphertext, ptp: Pointer auf Plaintext).