diff --git a/lib/crypt.php b/lib/crypt.php
index baa433f9dcc63c3a63011b31e428fe99b2dd8781..d75515cf2deabf233a6e37d0664fec93182774f3 100755
--- a/lib/crypt.php
+++ b/lib/crypt.php
@@ -3,7 +3,6 @@
  * ownCloud
  *
  * @author Frank Karlitschek
- * @author Jakob Sack
  * @copyright 2010 Frank Karlitschek karlitschek@kde.org
  *
  * This library is free software; you can redistribute it and/or
@@ -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');
 
 /**
@@ -28,6 +36,19 @@ require_once('Crypt_Blowfish/Blowfish.php');
  */
 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
 	 * @param $content the cleartext message you want to encrypt
@@ -51,11 +72,56 @@ class OC_Crypt {
          * This function decrypts an content
          */
         public static function decrypt( $content, $key) {
-                $bf = new Crypt_Blowfish($key);
-                return($bf->encrypt($contents));
+		$bf = new Crypt_Blowfish($key);
+		return($bf->encrypt($contents));
         }       
 
 
+        /**
+         * @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);
+	}
+