Example #1
0
 /**
  * Generates a set of keys given a random salt and a master key
  *
  * @param string $salt A random string to change the keys each encryption
  * @param string $key  The supplied key to encrypt with
  *
  * @returns array An array of keys (a cipher key, a mac key, and a IV)
  */
 protected function getKeys($salt, $key)
 {
     $ivSize = mcrypt_get_iv_size($this->cipher, $this->mode);
     $keySize = mcrypt_get_key_size($this->cipher, $this->mode);
     $length = 2 * $keySize + $ivSize;
     //$key = $this->pbkdf2('sha512', $key, $salt, $this->rounds, $length);
     $key = Encryption::pbkdf2('sha512', $key, $salt, $this->rounds, $length);
     $cipherKey = substr($key, 0, $keySize);
     $macKey = substr($key, $keySize, $keySize);
     $iv = substr($key, 2 * $keySize);
     return array($cipherKey, $macKey, $iv);
 }