Crypt::File - provide functions for symmetric encryption and decryption of files
version 1.01
Modul stellt Funktionen für die symetrische Ver- und Entschlüsselung von Dateien bereit und generiert/validiert einen MAC für die Authenzität- und Integritätssicherung. Das Chifrat und die MAC werden als neue Dateien mit entsprechender Endung in dem Ordner des Plaintext Files abgelegt.
Beispiel: Im Ordner Ordner01 liegt die Datei plaintext.txt
Nach der Verschlüsselung liegen in dem Ordner - plaintext.txt - plaintext.txt.enc - plaintext.txt.hmac
Nach erneuter Entschlüsselung kommt die Datei: plaintext.txt.dec hinzu oder durch die Option only_return_string => 1 erhält man Plaintext als string.
Die Verschlüsselung basiert auf dem CPAN Modul CryptX.
Es werden folgende kryptografische Verfahren genutzt:
- Symetrischer Cipher: AES,
- MAC: HMAC
- Kryptografische Hash Funktion zur Erzeugung der passenden Schlüssellänge: SHA256
Bei nicht zulässigen Parametern oder I/O Exceptions gibt es ein die/croak.
- 07.12.2018 FLS: Modul v1.0
Optionale Parameter - hmac_key: Schlüssel zur Erzeugung des HMAC, sonst wird Default Schlüssel verwendet - only_return_string: 1 nur zulässig bei decryption - cipher: AES
Convenience Funktion zur Entschlüsselung
Obligatorische Übergabeparameter: - file: Datei die verschlüsselt werden soll - key: Schlüssel für symetrischen Cipher - iv: Initialiesierungvektor
Optionale Parameter: - hmac_key: Schlüssel zur Erzeugung des HMAC, sonst wird Default Schlüssel verwendet - cipher: AES
-
Beschreibung
Verschlüsselt (encrypt) oder entschlüsselt (decrypt) Dateien.
-
Aufruf
my $r = crypt_file( file => <Datei>, # zu entschlüsselnde Datei bei crypt_mode = 'd' (decrypt) # zu verschlüsselnde Datei bei crypt_mode = 'e' (encrypt) # key , hmac_key und iv müssen bei entschlüsselung mit denen der Verschlüsselung übereinstimmen key => <Schlüssel für Entschlüsselung>, hmac_key => <checkwert mit integrität und authentizität>, iv => <initialisierungs-Vektor>, # muss mit dem zur Verschlüsselung übereinstimmen ??? cipher => <Verschlüsselungsmethode z.B. AES>, only_return_string => 1, crypt_mode => 'd' ) ;
Aufruf der Funktion crypt_file mit den folgenden Parametern: Obligatorische Parameter: - crypt_mode : 'd' oder 'e' für Decyrption oder Encryption - file: Datei die verschlüsselt werden soll - key: Schlüssel für symetrischen Cipher - iv: Initialiesierungvektor
-
Parameter
-
par1
-
par2
-
Rückgabe
The distribution is contained in a Git repository, so simply clone the repository
$ git clone git://github.com/onefloid/crypt.git
and change into the newly-created directory.
$ cd Crypt-File
The project uses Dist::Zilla
to
build the distribution, hence this will need to be installed before
continuing:
$ cpanm Dist::Zilla
To install the required prequisite packages, run the following set of commands:
$ dzil authordeps --missing | cpanm
$ dzil listdeps --author --missing | cpanm
The distribution can be tested like so:
$ dzil test
To run the full set of tests (including author and release-process tests),
add the --author
and --release
options:
$ dzil test --author --release
Florian Scherzberg [email protected]
This software is Copyright (c) 2018 by Florian Scherzberg.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)