Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#4

Re: Problem mit Umstellung DEC 3 nach DEC 5.2

  Alt 16. Mär 2009, 18:02
Hi,

Zitat von Twigeater:
Deine Vermutung mit dem Padding ist (soweit ich das verstehe) auch meine Erkenntnis. Nach einigen Untersuchung der internen Variablen zeigte sich das es zu Unterschieden kommt wenn die Eingangsdaten nicht Vielfaches der Blockgröße sind. Der Fall wir in 5.2 beim Cipher Mode 'cmCTSx' mit Padding bedacht, was in 3 anders war.

Nachdem ich alle Dinge bei mir durchgetestet habe, habe ich dann irgendwann mal testweise in der Unit 'DECCipher' von 5.2 in der Prozedur 'DecodeCTSx' den Aufruf bei 'if Size > 0 then' von 'DecodeCFS8' durch 'DecodeCFSx' ersetzt, was dann wieder das 3er Verhalten brachte. Ist aber nichts was ich so lassen will, zeigt mir aber das wohl dort die Ursache der Inkompatibilät liegt.
Ja, ist absolut nachvollziehbar bisher.

Zitat von Twigeater:
Da das ganze aber nicht mein Fachgebiet ist bin ich mir nicht sicher ob die Schlussfolgerung richtig ist und ob und wenn ja wie ich das ganze ohne Änderung an der Bibliothek hin bekomme.
Na, die Schlussfolgerung ist schon richtig. Aber ohne Änderung an der Datei kannst Du das wohl nicht umsetzen. Ich hab den Source gerade nicht hier, glaube aber nicht, daß diese Funktionen in der Basisklasse virtuell sind. Da die DEC5 eine vollständige Neukonzeption der alten DEC war und Hagen Strukturänderungen, Verbesserungen und Fixes vorgenommen hat, sind diese Stellenweise inkompatibel. Das ist unvermeidbar gewesen.

Wie im anderen Thread angedeutet, würde ich den Weg wählen, die Daten zu konvertieren (DEC3 -> DEC5), anstatt die DEC 5.x "umzumodeln" um mit der DEC 3 kompatibel zu sein. In Produktivsoftware ließe sich dies durch Update/Servicereleases lösen (oder z.B. ein externe DLL, die für die DEC3-Daten da ist wenn Ihr auf D2009 umstellt). Den Rest dann per Prefix o.ä.

Ich hoffe die Anregungen helfen Dir trotzdem etwas weiter. Empfehlung zur Sourceanpassung der DEC 5.2 für diesen Sonderfall möchte ich nicht geben, auch wenn Dein o.g. Vorgehen scheinbar richtig ist. Die Auswirkungen könnten weitreichender sein und mögliche Risiken enthalten, die dann unter Umständen von vielen Nutzern leider so genutzt würden.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat