FsiFileProcess
Mit dieser Anweisung können externe Dateien komprimiert/verschlüsselt beziehungsweise entschlüsselt/dekomprimiert werden. Zusätzlich ist es mit FsiFileProcess() auch möglich die Dateien mit einem Hash-Wert zu versehen. Als Quelldatei wird die in (alpha1) angegebene externe Datei verwendet. Das Ergebnis der Verarbeitung wird in die Datei (alpha2) geschrieben. Wird der Parameter (alpha2) nicht angegeben, wird die Quelldatei durch die entstandene Datei ersetzt.
Eine Datei die mit dem Befehl FsiFileProcess() bearbeitet wurde, wird mit einem Dateifuß versehen. Dieser wird verwendet, um zu erkennen, ob eine Datei von CONZEPT 16 bereits komprimiert beziehungsweise verschlüsselt wurde und entsprechend wiederhergestellt werden kann. In diesem "Stempel" werden ebenfalls zusätzliche Informationen wie der ermittelte Hash-Wert der Datei abgelegt. Der Dateifuß wird beim Entschlüsseln beziehungsweise Dekomprimieren wieder entfernt.
Im Parameter (int3) werden die Optionen zur Dateiverarbeitung kombiniert. Folgende Optionen sind dabei möglich:
-
Die Datei wird verschlüsselt.
-
Die Datei wird komprimiert. Dabei können die Kompressionsstufen
_FsiCompressFast,_FsiCompressMed,_FsiCompressStdund_FsiCompressSlowverwendet werden. -
Die Datei wird entschlüsselt und dekomprimiert.
-
Mit
_FsiFileMD5(Message-Digest Algorithm 5) kann an eine Datei auch deren Hash-Wert angehängt werden. Wird zusätzlich zur Hash-Wert Funktionalität auch eine Komprimierung beziehungsweise Verschlüsselung durchgeführt, berechnet die Funktion den Hash-Wert erst nach der Dateiverarbeitung. Der Hash-Wert wird dann wieder bei der Entschlüsselung/Dekomprimierung der Datei mit dem Dateiinhalt verglichen. Mit dieser Funktion können Manipulationen an Dateien festgestellt werden. In diesem Fall wird_ErrDatazurückgegeben. -
Wie bei
_FsiFileMD5wird an die Datei eine CRC32-Prüfsumme angehängt. -
Wie bei
_FsiFileMD5wird an die Datei ein Hash-Wert angehängt. Dieser wird nach RIPEMD-160-Standard berechnet. -
Wie bei
_FsiFileMD5wird an die Datei ein SHA-1-Hash-Wert angehängt. -
Wie bei
_FsiFileMD5wird an die Datei ein SHA-256-Hash-Wert angehängt. -
Wie bei
_FsiFileMD5wird an die Datei ein SHA-384-Hash-Wert angehängt. -
Wie bei
_FsiFileMD5wird an die Datei ein SHA-512-Hash-Wert angehängt.
Für das Verschlüsseln beziehungsweise Entschlüsseln der Datei kann in (alpha4) optional ein eigener Schlüssel angegeben werden. Der Schlüssel darf eine maximale Länge von 64 Zeichen haben und muss beim Verschlüsselungs- und Entschlüsselungsvorgang identisch sein. Wird der Parameter (alpha4) nicht angegeben, wird ein interner Schlüssel verwendet.
Die Option _FsiEncrypt sollte immer mit einer der _FsiFile...-Optionen kombiniert werden.
Die Verfahren _FsiFileCRC32, _FsiFileMD5, _FsiFileRMD160 und _FsiFileSHA1 sind nicht kollisionssicher und sollten daher nicht zur Integritätsprüfung von Dateien verwendet werden.
Bei den _FsiCompress...-Optionen findet die Komprimierung in einem internen Format statt. Die Dateien können daher nur mit CONZEPT 16 wieder entpackt werden. Mit FsiFileCompress() können Dateien hingegen in einem standardisierten Format komprimiert werden.
Folgende Werte können von der Funktion zurückgegeben werden:
_ErrOk: Dateiverarbeitung erfolgreich durchgeführt._ErrOutOfMemory: Speicher konnte nicht angefordert werden_ErrData: Datenfehler in der externen Datei_ErrDecryption: Fehler bei der Dateientschlüsselung mit dem angegeben Schlüssel_ErrFsiReadFault: Fehler beim Lesen der externen Datei_ErrFsiWriteFault: Fehler beim Schreiben der externen Datei