AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eure Anregungen für das DEC 5.3 gebraucht

Ein Thema von Assertor · begonnen am 13. Mai 2010 · letzter Beitrag vom 18. Mär 2018
Antwort Antwort
Seite 1 von 10  1 23     Letzte »    
Assertor

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

Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 16:07
Hallo DPler,

wie einige von Euch vielleicht schon wissen, arbeite ich derzeit an der DEC 5.3.

Bisher sind folgende Änderungen schon fertig:
  • Eine recht umfangreiche interne Umstellung von Binary/RawByteString auf TBytes (array of Bytes in älteren Delphis)
  • Bugfixes für C++ Builder Kompatibilität
  • Anpassung der Conditional Defines
  • Erweitere Fehlerbehandlung und Prüfung von Eingabedaten
Folgendes ist geplant:
  • Rewrite aller Formattings (hex, base32, base64 etc)
  • Komplexe GUI Demo
  • Self-Tests mit Testvektoren
  • Unittests
Wenn alles fertig ist, gibt es auch einen Link zum neuen "zu Hause" der DEC (Luckie bekommt natürlich auch wieder ein Release).

In diesem Thread geht es um Überlegungen und Wünschen zum nächsten Release. Neue Hashes und Cipher wird es in dieser Version nicht geben, dafür fehlt leider die Zeit. Konkret ergeben sich durch meine Arbeit einige Umstellungen, wobei ich den Aufwand für die Konvertierung von DEC 5.1 und 5.2 nutzenden Projekten so gering wie möglich halten werde. Prinzipiell entfällt aber der Datentyp Binary, da nun alles auf Bytes arbeitet. Im Gegensatz zu früheren Code-Snippets hier im Forum, wird diese Umstellung keine zusätzlichen Sicherheitsprobleme schaffen, da immer auf den Eingabedaten gearbeitet wird, diese also nicht unnötig vervielfältigt werden und im Speicher rumfliegen.

Wo ich jetzt die Anregung von Euch, den DEC Nutzern, gebrauchen kann: Das gewünschte Stringhandling in den Formatierungsklassen (TDECFormat, TFormat_xyz). Es soll ja auch die Möglichkeit geben z.B. HEX zu Strings und Strings zu HEX zu wandeln. Technisch soweit kein Problem, aber es kommen je nach Art des Ziels natürlich unterschiedliche Ergebnisse raus.

Angenommen, es gäbe z.B. die folgenden Funktionen für TDECFormat:
Delphi-Quellcode:
class function EncodeString(const Value: string): string; overload;
class function DecodeString(const Value: RawByteString): string; overload;
class function EncodeAnsiString(const Value: AnsiString): AnsiString; overload;
class function DecodeAnsiString(const Value: RawByteString): AnsiString; overload;
class function EncodeWideString(const Value: WideString): WideString; overload;
class function DecodeWideString(const Value: RawByteString): WideString; overload;
Würde ich nun TFormat_HEX.DecodeString('74657374') in einem aktuellen unicodefähigen Delphi aufrufen, bekäme ich ja nur unlesbaren Quatsch heraus, bei TFormat_HEX.DecodeAnsiString('74657374') jedoch den AnsiString "test". TFormat_HEX.EncodeString('test') liefert bei Unicode ja das Ergebnis 7400650073007400, bei EncodeAnsiString('test') natürlich die 74657374.

Ich hätte das gerne zusammengelegt, jedoch finde ich keine allgemeingültige Lösung. Es wäre Hellsehen gefordert zu wissen, ob die Eingabedaten in HEX Ansi oder Unicode sind.

Hat jemand eine Idee hierzu? Was wäre Euch lieber, wäre es so wie oben gepostet für jedermann verständlich? Oder würdet Ihr für DecodeString('74657374') das Ergebnis "test" immer erwarten, egal ob Unicode oder ANSI (was ja eigentlich verkehrt wäre)?

Es geht hier nur um das Format-Handling von Strings, die Byte/Buffer-Methoden und Cipher/Hashes sind hiervon natürlich nicht betroffen.

Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 16:20
Vorweg: Ich kenne das DEC nicht wirklich (man hat ja nie genug Zeit, eigentlich wollte ich es mir schon lange genauer ansehen...).

Was Unicode angeht: Dafür gibt es doch das entsprechende Compiler Define, anhand dessen man das Vorgehen unterscheiden kann. Heißt: Gibt es dieses define, dann ist ein String ein UnicodeString, andernfalls ein AnsiString. Lässt sich das nicht auch in deinem Fall so umsetzen?

Bei mir sieht das z.B. so aus:
Delphi-Quellcode:
  {$ifdef UNICODE}
  Result := Utf8ToString(ResultString);
  {$else}
  Result := Utf8Decode(ResultString);
  {$endif}
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Assertor

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

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 16:28
Hallo jaenicke,

Zitat von jaenicke:
Vorweg: Ich kenne das DEC nicht wirklich (man hat ja nie genug Zeit, eigentlich wollte ich es mir schon lange genauer ansehen...).

Was Unicode angeht: Dafür gibt es doch das entsprechende Compiler Define, anhand dessen man das Vorgehen unterscheiden kann. Heißt: Gibt es dieses define, dann ist ein String ein UnicodeString, andernfalls ein AnsiString. Lässt sich das nicht auch in deinem Fall so umsetzen?

Bei mir sieht das z.B. so aus:
Delphi-Quellcode:
  {$ifdef UNICODE}
  Result := Utf8ToString(ResultString);
  {$else}
  Result := Utf8Decode(ResultString);
  {$endif}
Die IFDEFs sind nicht das Problem, aber UTF8 ist eine gute Idee, da es ja transparent für Plain-ASCII ist. Das wäre doch schonmal eine gute Lösung für das Encode/DecodeString! Auf die banale Idee einen UTF8 String zu nehmen, bin ich nicht mehr gekommen. So einfach und effektiv, danke

Ich muß mal testen, wie sich das im Zusammenhang mit den Funktionen Encode/DecodeAnsiString und -WideString verhält, damit ein möglichst intuitives Verhalten verhanden ist.

Viele Grüße,
Assertor

P.S.:
Zitat:
man hat ja nie genug Zeit
Weise Worte, so ist es!
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 16:32
Sau gut dass du das DEC weiterentwickelst Ich denke mal in dieser Version kann man das vergessen aber für auf lange Zeit gesehen wären eigene Implementierungen von SSL, SRP, etc. ziemlich interessant.
Zum Unicode Problem:
Da würde ich zweigleisig mit DecodeWideString und DecodeAnsiString bzw. mit DecodeStringW und DecodeStringA, ganz nach API Vorbild arbeiten. Ist wohl am wenigsten verwirrend. Zusätzlich kann man eine Funktion DecodeString implementieren die je nach Delphi Version (prüfen mit {$IFDEF UNICODE}) die W oder A Variante aufruft.
  Mit Zitat antworten Zitat
Assertor

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

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 19:37
Hi,

Zitat von Zacherl:
Sau gut dass du das DEC weiterentwickelst
Danke
Zitat von Zacherl:
Ich denke mal in dieser Version kann man das vergessen aber für auf lange Zeit gesehen wären eigene Implementierungen von SSL, SRP, etc. ziemlich interessant.
Ja, das würde für dieses Release den Rahmen sprengen. Ich habe jetzt schon dutzende Stunden dafür investiert. Aber sobald die neuen Grundlagen stehen, kann ich für zukünftige Releases ein Augenmerk auf neue Verfahren setzen.
Zitat von Zacherl:
Zum Unicode Problem:
Da würde ich zweigleisig mit DecodeWideString und DecodeAnsiString bzw. mit DecodeStringW und DecodeStringA, ganz nach API Vorbild arbeiten. Ist wohl am wenigsten verwirrend. Zusätzlich kann man eine Funktion DecodeString implementieren die je nach Delphi Version (prüfen mit {$IFDEF UNICODE}) die W oder A Variante aufruft.
Jein, es wird aber so ähnlich sein. Hintergrund ist, ich möchte die Referenzzählung für UnicodeStrings nicht verlieren. Würde ich hier auf WideString setzen wäre das der Fall, da die Compiler Magic dann hier zuschlägt. Ich könnte natürlich den UnicodeString als Typ für ältere Delphis einführen, aber dadurch gewinne ich nicht viel...

Ich habe nun EncodeString() und DecodeString() überladen für Unicode/Ansi/Wide-String und zusätzlich Encode/DecodeAnsiString und -WideString eingeführt. Das erlaubt auch das explizite aufrufen einer gewünschten Funktion, ohne vorher einen Typcast machen zu müssen - das übernimmt dann die Compiler Magic für uns.

Die Idee mit UTF8 war toll, danke nochmal an Sebastian In jetzigen Tests läuft alles problemlos mit TFormat_Copy / TFormat_HEX - in allen 3 Stringvarianten unter D2010 bzw. 2 Varianten unter D7. Jetzt bin ich gerade an der Re-Implementierung von Base64, PGP, XX, UU und Escaped Encoding. Da hier jetzt nicht mehr auf PAnsiChar sondern PByte gearbeitet wird, ist es halt etwas Arbeit...

@Hagen: Falls Du mitliest, was ist denn Dein MIME32 für ein Format? Die Ergebnisse aus der DEC 5.1 (und 5.2) stimmen z.B. mit Base32 überhaupt nicht überein. Du hattest es kommentiert mit "MIME ähnliches Base32". Also ein eigener Formatansatz. Ich würde lieber Base32 wie in RFC4648 umsetzen. Hatte es seinerzeit einen besonderen Grund ein eigenes MIME-ähnliches Format für Base32 einzuführen?

Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#6

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 22:00
Hmm, wer lernen will, muss manchmal Fragen stellen.
Ich traue mich mal: Wer oder Was ist DEC?
Wiki hilft mir da nicht so weiter...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 22:04
DEC steht für Delphi Encryption Compendium. Dabei handelt es sich um eine Unit-Sammlung von Hagen Reddmann, die einiges bzgl. Verschlüsselung und Hashing beinhaltet.
Angehängte Dateien
Dateityp: txt dec_5_2_readme_162.txt (4,8 KB, 43x aufgerufen)
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#8

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 13. Mai 2010, 22:08
Vielen Dank!
Also für den Hobby-Programmierer (so er sich nicht akademisch mit dem Thema beschäftigt) wohl eher ein Randthema, oder?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 14. Mai 2010, 00:49
Zitat von Assertor:
@Hagen: Falls Du mitliest, was ist denn Dein MIME32 für ein Format? Die Ergebnisse aus der DEC 5.1 (und 5.2) stimmen z.B. mit Base32 überhaupt nicht überein. Du hattest es kommentiert mit "MIME ähnliches Base32". Also ein eigener Formatansatz. Ich würde lieber Base32 wie in RFC4648 umsetzen. Hatte es seinerzeit einen besonderen Grund ein eigenes MIME-ähnliches Format für Base32 einzuführen?
Ich würde vermuten, dass Hagen am base32 Algo lediglich noch eigene Verbesserungen mit eingebracht hat. Ähnlich wie bei seinem RCx Cipher, der ja eine Verbesserung von RC4 (oder wars RC5) darstellt. Den "original" base32 könnte man ja zusätzlich implementieren, ohne den alten MIME32 rauszuschmeißen oder zu ersetzen

Zitat von taaktaak:
Also für den Hobby-Programmierer (so er sich nicht akademisch mit dem Thema beschäftigt) wohl eher ein Randthema, oder?
Ganz wie dus nimmst. Ich habe mit dem DEC Hobby mäßig bereits einen Kennwort Manager programmiert und wenns um Netzwerk Kommunikation geht, kommt das DEC sowohl zum hashen als auch bei der Verschlüsselung regelmäßig in meinen privaten Projekten zum Einsatz.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Eure Anregungen für das DEC 5.3 gebraucht

  Alt 14. Mai 2010, 08:06
Ah ein neues DEC? Kann ich gut gebrauchen wo ich jetz auf D2010 umstelle, da kommts doch zu en paar Problemen mit dem bestehenden. freu mich schon
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 10  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 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