Added parameter 'key' to encryption methods to allow own keys
[core.git] / inc / classes / main / streams / crypto / class_McryptStream.php
index 732ab56c838d6e9eddd92f3640e17743b7fc78f1..a0fc4b53a149a8efee6b3a7b351d14d941c8d2ce 100644 (file)
@@ -58,15 +58,19 @@ class McryptStream extends BaseStream implements EncryptableStream {
         * Encrypt the string with fixed salt
         *
         * @param       $str            The unencrypted string
+        * @param       $key            Optional key, if none provided, a random key will be generated
         * @return      $encrypted      Encrypted string
         */
-       public function encryptStream ($str) {
+       public function encryptStream ($str, $key = null) {
                // Init crypto module
                $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
                $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
 
-               // Generate key
-               $key = $this->getRngInstance()->generateKey();
+               // Generate key, if none provided
+               if (is_null($key)) {
+                       // None provided
+                       $key = $this->getRngInstance()->generateKey();
+               } // END - if
 
                // Add some "garbage" to the string
                switch ($this->getRngInstance()->randomNumber(0, 8)) {