Neu:
Post #1
- es kann direkt eine Inline-Verschlüsselung genutzt werden
einfach für den gewünschten Knoten zusweisen und alles via .Text und .Text_S wird automatisch beim Zuweisen/Auslesen ver-/entschlüsselt
Delphi-Quellcode:
Node.Crypted := '
*';
// Standardverschlüsselung nutzen (erstes in der Liste)
Node.Crypted := '
RC4';
// RC4 verwenden
Node.Text := X;
// zuweisen und automatisch verschlüsseln
X := Node.Text;
// automatisch entschlüsseln und auslesen
If Node.Crypted <> '
'
Then // nur prüfen ob es verschlüsselt ist
If Node.Crypted = '
RC4'
Then // prüfen ob es RC4 verschlüsselt ist
XML.CryptData['
RC4'] := S;
// anderen Key für RC4 festlegen
da die Verschlüsselungsroutine Zugriff auf die Node-Attribute hat, könnte man auch eine eigene Verschlüsselung zuweisen, welche z.B. über ein weiteres Attribut jeden Node mit einem eigenem Key verschlüsselt.
Delphi-Quellcode:
XML.Cryptors
// listet alle registrierten Verschlüsselungen auf
XML.SetCryptor
// setzt/lösche eine Verschlüsselung
XML.CryptProc
// siehe SetCryptor
XML.CryptData
// siehe SetCryptor
XML.CryptAttrName
// der Name des Attributes, welcher die aktive Verschlüsselung enthält
Und dann hab ich noch einen bösen Fehler in der Base64-Codierung entdeckt
bei der letzen Typenumstellung wurde die Zählweise nicht angepaßt und so kam nicht das raus, was rauskommen sollte und es konnten auch mal nette Exceptions auftauchen, da Pufferüberlauf entstand.
z.B.
alt: Inc(Pv, 3);
neu: Inc(Pv);
früher war es ein Bytearray über den gesamten String, jetzt ist z.B. Pv nur noch ein Zeiger auf
Array[0..2] of Byte.