Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi von DEC 3.x auf DEC 5.2. Decode mit TwoFish (https://www.delphipraxis.net/134040-von-dec-3-x-auf-dec-5-2-decode-mit-twofish.html)

Hudel1965 14. Mai 2009 14:32


von DEC 3.x auf DEC 5.2. Decode mit TwoFish
 
Hallo zusammen :-)

Habe folgendes Problem :

Ich stelle gerade eine Software von Delphi 2006 auf Delphi 2009 um. In diesem Rahmen habe ich auch die DEC Routinen von 3.x auf 5.2 upgedatet. Dabei tritt nun das Problem auf, das Dateien die mit DEC 3.x TwoFish verschlüsselt wurden, nicht mehr mit 5.2 korrekt entschlüsselt werden.

In der Version 3.x war noch der TCipherManager dabei, der nun fehlt. Habe daher die entsprechende Klasse nun direkt erzeugt, mit folgendem Code :

Delphi-Quellcode:
var
  cp : TDECCipher;

begin
  cp := ValidCipher(TCipher_Twofish).Create;
  cp.Init(AnsiString(cCipherKeyUpdateFile));
  cp.Mode:=cmCTSx;
  cp.DecodeFile(sSourceFilename, sDestFilename);
end
Wo könnte das Problem liegen ?

Vielen dank, im vorraus.

Hudel

Assertor 14. Mai 2009 17:56

Re: von DEC 3.x auf DEC 5.2. Decode mit TwoFish
 
Hallo Hudel,

hast Du die Threads zur Umstellung hier im Forum schon gelesen:
http://www.delphipraxis.net/internal...dec+umstellung
http://www.delphipraxis.net/internal...dec+umstellung
http://www.delphipraxis.net/internal...dec+umstellung

Aus dem letzten mal ein Zitat von Hagen:
Zitat:

Zitat von negaH
du musst zwingend umstellen ? Wenn ja wird es hart.
Es haben sie einige und wesentliche Änderungen vom DEC 3 zum DEC 5 ergeben und das sind ne Menge.

1.) .InitKey() und .Init() der Cipher sind nicht direkt kompatibel
2.) einige Hash Funktionen haben sich geändert, dürfte aber in diesem Falle nicht relevant sein
3.) die Cipher Modis sind komplett neu, den alten cmCTS gibts in der Form nicht mehr

Man muß
1.) die per HashManager benutzt Routine um ein Plainkey in einen Sessionkey umzuwandeln reimplementieren in DEC5
2.) die Funktionalität von .InitKey() aus DEC 3 in DEC 5 reimplementieren, das geht mit der Methode .Init() zu Fuß
3.) in DEC5s .Init() Methode ist die Überprüfung der übergeben Keys strenger, du musst also zu lange Keys schon vor der Übergabe an .init() beschneiden da ansonsten diese Methode einen Fehler meldet. In DEC3 war es so das stillschweigend das zu lange Keymaterial beschnitten wurde.

In DEC 5 ist der Mode cmCTSx kompatibel zu cmCTS aus DEC 3.

Tut mir ja leid aber mit neuem Wissen wird man in neueren Versionen eben auch Fehler der alten Versionen beseitigen, und das führt in diesem Fall zur Inkompatibilität.

Gruß Hagen

Ich befürchte, einen pauschalen Weg gibt es da nicht.

Gruß Assertor

Hudel1965 15. Mai 2009 07:34

Re: von DEC 3.x auf DEC 5.2. Decode mit TwoFish
 
Hi :-)

Danke für die Links. Da kommt ja was auf mich zu ;-)

Gruß


Hudel

Assertor 16. Mai 2009 11:18

Re: von DEC 3.x auf DEC 5.2. Decode mit TwoFish
 
Hi Hudel,

Zitat:

Zitat von Hudel1965
Danke für die Links. Da kommt ja was auf mich zu ;-)

Gerne! Ja, leider - einen universalgültigen, direkten Weg gibt es nicht. Viel Glück bei der Umstellung!

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz