/**
  * Crea una clave temporal para encriptar la clave maestra y guardarla.
  *
  * @param int $maxTime El tiempo máximo de validez de la clave
  * @return bool|string
  */
 public static function setTempMasterPass($maxTime = 14400)
 {
     // Encriptar la clave maestra con hash aleatorio generado
     $randomKey = Crypt::generateAesKey(Util::generate_random_bytes());
     $pass = Crypt::mkCustomMPassEncrypt($randomKey, SessionUtil::getSessionMPass());
     if (!is_array($pass)) {
         return false;
     }
     ConfigDB::setCacheConfigValue('tempmaster_pass', bin2hex($pass[0]));
     ConfigDB::setCacheConfigValue('tempmaster_passiv', bin2hex($pass[1]));
     ConfigDB::setCacheConfigValue('tempmaster_passhash', Crypt::mkHashPassword($randomKey));
     ConfigDB::setCacheConfigValue('tempmaster_passtime', time());
     ConfigDB::setCacheConfigValue('tempmaster_maxtime', time() + $maxTime);
     ConfigDB::setCacheConfigValue('tempmaster_attempts', 0);
     if (!ConfigDB::writeConfig(true)) {
         return false;
     }
     // Guardar la clave temporal hasta que finalice la sesión
     Session::setTemporaryMasterPass($randomKey);
     return $randomKey;
 }
Beispiel #2
0
 /**
  * Desencriptar la clave maestra de la sesión.
  *
  * @return string con la clave maestra
  */
 public static function getSessionMPass()
 {
     $cryptPass = Crypt::generateAesKey(session_id());
     return Crypt::getDecrypt(Session::getMPass(), Session::getMPassIV(), $cryptPass);
 }
Beispiel #3
0
 /**
  * Obtener una clave de cifrado basada en la clave del usuario y un salt.
  *
  * @return string con la clave de cifrado
  */
 private function getCypherPass()
 {
     return Crypt::generateAesKey($this->_userPass . $this->_userLogin);
 }