diff -Naur standard_moodle/backup/backuplib.php my_moodle/backup/backuplib.php --- standard_moodle/backup/backuplib.php 2009-01-24 23:05:56.000000000 +0000 +++ my_moodle/backup/backuplib.php 2010-11-01 18:03:31.000000000 +0000 @@ -2573,10 +2573,27 @@ $status = zip_files($files, "$basedir/$name"); + // MuLF Encrypt Backups + encrypt_file("$basedir/$name"); + //echo "
Status: ".$status; //Debug return $status; } + + function encrypt_file ($encryptfile) { + global $CFG; + $encryption_command = "/usr/bin/gpg -c --passphrase ".$CFG->gpgpassphrase." ".escapeshellarg(cleardoubleslashes($encryptfile)); + Exec($encryption_command); + copy($encryptfile.".gpg",$encryptfile); + } + //This function copies the final zip to the course dir function copy_zip_to_course_dir ($preferences) { diff -Naur standard_moodle/backup/restorelib.php my_moodle/backup/restorelib.php --- standard_moodle/backup/restorelib.php 2009-02-16 23:05:29.000000000 +0000 +++ my_moodle/backup/restorelib.php 2010-11-01 18:03:31.000000000 +0000 @@ -26,9 +26,30 @@ //This function unzips a zip file in the same directory that it is //It automatically uses pclzip or command line unzip function restore_unzip ($file) { + // MuLF Decrypt Backups + if (decrypt_file($file)) { + return unzip_file($file, '', false); + } - return unzip_file($file, '', false); + } + // This function decrypts file with linux gpg + function decrypt_file($decryptfile) { + global $CFG; + $decryption_command = "/usr/bin/gpg -d --passphrase ".$CFG->gpgpassphrase." -o ".escapeshellarg(cleardoubleslashes($decryptfile)).".out ".escapeshellarg(cleardoubleslashes($decryptfile)); + exec($decryption_command,$decrypt_array,$decrypt_return); + if ($decrypt_return == 0) { + copy($decryptfile.".out",$decryptfile); + return true; + } else { + if (!defined('RESTORE_SILENTLY')) { + error ("Die Wiederherstellungsdatei wurde beschädigt oder stammt nicht von diesem System. $decryptfile. $decrypt_return"); + } else { + $errorstr = "Die Wiederherstellungsdatei wurde beschädigt oder stammt nicht von diesem System. $decryptfile. $decrypt_return"; + } + + return false; + } } //This function checks if moodle.xml seems to be a valid xml file