Skip to content
Snippets Groups Projects
Commit 613ab41e authored by Frank Karlitschek's avatar Frank Karlitschek
Browse files

more work on the encryption library

parent 8ff736b5
Branches
No related tags found
No related merge requests found
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
* ownCloud * ownCloud
* *
* @author Frank Karlitschek * @author Frank Karlitschek
* @author Jakob Sack
* @copyright 2010 Frank Karlitschek karlitschek@kde.org * @copyright 2010 Frank Karlitschek karlitschek@kde.org
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
...@@ -21,6 +20,15 @@ ...@@ -21,6 +20,15 @@
* *
*/ */
// Todo:
// Crypt/decrypt button in the userinterface
// transparent decrypt/encrpt in filesystem.php
// don't use a password directly as encryption key. but a key which is stored on the server and encrypted with the user password. -> password change faster
require_once('Crypt_Blowfish/Blowfish.php'); require_once('Crypt_Blowfish/Blowfish.php');
/** /**
...@@ -28,6 +36,19 @@ require_once('Crypt_Blowfish/Blowfish.php'); ...@@ -28,6 +36,19 @@ require_once('Crypt_Blowfish/Blowfish.php');
*/ */
class OC_Crypt { class OC_Crypt {
static $encription_extension='.encrypted';
public static function createkey( $passcode) {
// generate a random key
$key=mt_rand(10000,99999).mt_rand(10000,99999).mt_rand(10000,99999).mt_rand(10000,99999);
// encrypt the key with the passcode of the user
$enckey=OC_Crypt::encrypt($key,$passcode);
// Write the file
file_put_contents( "$SERVERROOT/config/encryption.key", $enckey );
}
/** /**
* @brief encrypts an content * @brief encrypts an content
* @param $content the cleartext message you want to encrypt * @param $content the cleartext message you want to encrypt
...@@ -56,6 +77,51 @@ class OC_Crypt { ...@@ -56,6 +77,51 @@ class OC_Crypt {
} }
/**
* @brief encryption of a file
* @param $filename
* @param $key the encryption key
*
* This function encrypts a file
*/
public static function encryptfile( $filename, $key) {
$handleread = fopen($filename, "rb");
if($handleread<>FALSE) {
$handlewrite = fopen($filename.OC_Crypt::$encription_extension, "wb");
while (!feof($handleread)) {
$content = fread($handleread, 8192);
$enccontent=OC_CRYPT::encrypt( $content, $key);
fwrite($handlewrite, $enccontent);
}
fclose($handlewrite);
unlink($filename);
}
fclose($handleread);
}
/**
* @brief decryption of a file
* @param $filename
* @param $key the decryption key
*
* This function decrypts a file
*/
public static function decryptfile( $filename, $key) {
$handleread = fopen($filename.OC_Crypt::$encription_extension, "rb");
if($handleread<>FALSE) {
$handlewrite = fopen($filename, "wb");
while (!feof($handleread)) {
$content = fread($handleread, 8192);
$enccontent=OC_CRYPT::decrypt( $content, $key);
fwrite($handlewrite, $enccontent);
}
fclose($handlewrite);
unlink($filename.OC_Crypt::$encription_extension);
}
fclose($handleread);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment