Hallo OTS,
Zitat von
OTS:
Ich weiß nicht ob das hier die richtige Stelle ist, aber ich hab da mal ne Frage zu einer Portierung von D2007 -> D2010.
Ich habe bis D2007 die
DEC Version 3.0 eingesetzt und bin mit der Portierung auf D2010 auf die
DEC Version 5.2 umgestiegen. Ich habe nun ein Problem bei der Dekodierung von Dateien die mit der 3.0 Version Blowfish-Verschlüsselt wurden. Die letzten Bytes einer
DEC 5.2 Verschlüsselung unterscheiden sich von der
DEC 3.0 Verschlüsselung.
[...]
Ich habe
DEC 3.0 und
DEC 5.2 verglichen und mit der Modifikation "MyEncodeCFS8" funktioniert es wieder.
Mein Problem ist das ich nicht wirklich verstehe warum das so ist.
Kann mir da jemand weiter helfen?
Ja, das von Dir beobachtete Verhalten liegt am veränderten Padding zwischen der
DEC 3 und
DEC 5. Diese Änderung liegt also schon ein paar Jahre zurück und hat nichts mit Deiner Delphi 2010 Umstellung zu tun.
Hagen hat seinerzeit bei der Entwicklung der
DEC 5.1 das Padding für den CTS Feedback Mode ersetzt. Deswegen auch cmCTS
x. Die
DEC 3 hatte dort ein CFS Padding (CFS auf Blockgröße), nun ist es ein CFS8 (im
DEC Source steht es auch bei cmCFS8 vermerkt als 8Bit CFS, double CFB).
In der nächsten
DEC wird es sehr wahrscheinlich ein zusätzlichen Cipher Mode für genau diese Abwärtskompatibilität geben. Deine Anpassung entspricht übrigens einem Padding von cmCFSx auf Blockgröße - und genau dies wird in Zukunft automatisch im Cipher Mode cmCTSxx zur Verfügung stehen (aber bitte nur für Abwärtskompatibilität nutzen!).
Gruß,
Assertor
P.S.: Wenn Du es für Dich anpasst, denke auch an den Decoder. Dort ist dies auch zu machen.