public function encryptFile($data, $filename, $key, $base64)
 {
     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
     $iv = openssl_random_pseudo_bytes($iv_size);
     $encryptionMethod = "aes-256-cbc";
     if ($base64) {
         //if already encoded64
         if ($encryptedMessage = bin2hex($iv) . openssl_encrypt($data, $encryptionMethod, $key, 0, $iv)) {
         } else {
             return false;
         }
     } else {
         //not encoded64
         if ($encryptedMessage = bin2hex($iv) . openssl_encrypt(base64_encode($data), $encryptionMethod, $key, 0, $iv)) {
         } else {
             return false;
         }
     }
     //unset($data['filecyp']);
     if (FileWorks::writeFile($filename, $encryptedMessage) === false) {
         return false;
     } else {
         return true;
     }
 }
 public function sendOutNoPin()
 {
     $key = hex2bin($this->key);
     $encryptionMethod = "aes-256-cbc";
     $iv = hex2bin(substr($this->mail, 0, 32));
     $encrypted = base64_encode(hex2bin(substr($this->mail, 32)));
     $body = json_decode(openssl_decrypt($encrypted, $encryptionMethod, $key, 0, $iv), true);
     $body['from'] = base64_decode($body['from']);
     $email = hash('sha512', EmailparseCommand::getEmail($body['from']));
     $id = Yii::app()->user->getId();
     if (Yii::app()->db->createCommand("SELECT addressHash FROM addresses WHERE addressHash='{$email}' AND userId={$id}")->queryRow()) {
         $params[':body'] = $this->mail;
         $params[':modKey'] = $this->ModKey;
         $params[':meta'] = $this->meta;
         $params[':outside'] = 1;
         $params[':whens'] = Date("Y-m-d H:i:s");
         $params[':pass'] = $this->key;
         if (isset($this->files)) {
             foreach ($this->files as $row) {
                 $fileNames[] = $row['fname'];
                 if (FileWorks::writeFile($row['fname'], $row['data']) === false) {
                     echo '{"messageId":"fail1"}';
                 }
             }
             $params[':file'] = json_encode($fileNames);
         } else {
             $params[':file'] = null;
         }
         if (Yii::app()->db->createCommand("INSERT INTO mailToSent (meta,body,pass,modKey,whens,outside,file) VALUES(:meta,:body,:pass,:modKey,:whens,:outside,:file)")->execute($params)) {
             echo '{"messageId":' . Yii::app()->db->getLastInsertID() . '}';
         } else {
             echo '{"messageId":"fail"}';
         }
     } else {
         echo '{"messageId":"fail"}';
     }
 }