Hallo,
Zitat von
Angel4585:
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
Zitat von
himitsu:
Base32 und Base64 sind kein festes Format.
Hier wird nur ausgesagt, daß der Datenstrom in einer bestimmten Art mit 32/64 Zeichen dargestellt wird.
Welche Zeichen verwendet werden und wie die Endemarkierung vorgenommen wird (es werden ja immer Guppen zu 3 Bytes umkodiert, aber was ist, wenn der Datenstrom am Ende nur 1 oder 2 Byte hat)
Mime32/Mime64 ist eine Unterart von Base32/Base64, wo auch noch festgelegt ist, welche Zeichen verwendet werden und wie der Abschluß aussieht.
Also Korrekt wäre es, wenn es es eine Base32-Klasse gibt, von welcher die Mime32-Klasse abgeleitet ist, in welcher nur der Zeichensatz und die Endebehandlung geändert/behandelt werden.
Nach
RFC 4648 ist der Zeichensatz schon explizit für Base32, Base32hex und Base64 festgelegt (sofern es diesen Namen trägt). MIME/PEM unterscheiden sich im Soft-Wrap und Padding, alternative Zeichensatzimplementation gibt es hier und da im Internet. Sowas dann hinzuzufügen ist mit dem
DEC Code jetzt und in Zukunft lächerlich einfach.
Die alten Encodings laufen nun alle, sprich: Base16 (HEX), Base16L (HEX Lowercase),
DEC MIME32, Base64, Radix-64 (PGP Base64 mit 24-bit CRC), UU, XX und ESCAPE Encoding sind wieder lauffähig
Die Cipher und Utils sind auch nahezu fertig. Jetzt kommt noch Base32, Base32hex und dann ca. 1-2 Wochen Self-Tests Vektoren aufsetzen, UnitTests, Demos etc. Ich hatte auch schon einen Monte Carlo Test für Rijndael fertig (ja, die
DEC besteht diesen natürlich) - mal sehen ob ich den noch mit als extra Test reinbekomme.
Da jetzt alles auf Bytes arbeitet, wird es einen neuen Wrapper zum kombinieren von Salt, Data und MAC geben. Ebenso einen Splitter für das Decoding. Das sollte die Nutzung mit früherem Code erleichtern. Für normale Strings bleibt, soweit ich es überblicken kann, alles gleich.
Das ganze war bisher ziemlich aufwendig... Sehr vereinfacht gesagt, mußte für die Umstellung auf Byte Encoding und echte
Unicode-Unterstützung (ohne auf Benutzerseite "* SizeOf(Char)" machen zu müssen) der ganze Code angefasst werden und die Zusammenarbeit zwischen den Teilbereichen angepasst werden. Zusätzlich war meine Voraussetzung für die Änderungen, dass keine Duplizierung von Plaintext-Daten im Speicher erfolgen darf, da dies die Sicherheit kompromitieren könnte. Dieses Ziel ist nun erreicht - wie Hagen in einem früheren Thread mal sinngemäß sagte: Diese Umstellung ist viel Arbeit und wenn man es macht, muß man große Brötchen backen
Bisher läuft alles gut, aber ich werde noch einige Tests mit altem Code machen müssen, um sicherzustellen das Daten aus der
DEC 5.1, 5.2 und 5.3 kompatibel zueinander sind.
Da die meisten
DEC Anwender wohl ohne Salt, Key Derivation / Mask Generation und MAC unterwegs sind, wird es auch einen Wrapper geben der dies automatisch und anpassbar erledigt. Das soll Anfängern den Einstieg erleichtern.
Gruß,
Assertor
P.S.: @taaktaak - Es kommt immer auf das Hobby an