diff --git a/inc/SP/Account/Account.class.php b/inc/SP/Account/Account.class.php
index 714ca089..a52c4ac2 100644
--- a/inc/SP/Account/Account.class.php
+++ b/inc/SP/Account/Account.class.php
@@ -24,6 +24,7 @@
namespace SP\Account;
+use SP\Core\Crypt\Crypt;
use SP\Core\OldCrypt;
use SP\Core\Exceptions\SPException;
use SP\Core\Session;
@@ -303,9 +304,9 @@ class Account extends AccountBase implements AccountInterface
*/
protected function setPasswordEncrypted($masterPass = null)
{
- $securedKey = Crypt\Crypt::makeSecuredKey($masterPass);
+ $securedKey = Crypt::makeSecuredKey($masterPass);
- $this->accountData->setAccountPass(Crypt\Crypt::encrypt($this->accountData->getAccountPass(), $securedKey));
+ $this->accountData->setAccountPass(Crypt::encrypt($this->accountData->getAccountPass(), $securedKey));
$this->accountData->setAccountIV($securedKey);
}
diff --git a/inc/SP/Account/AccountCrypt.php b/inc/SP/Account/AccountCrypt.php
index 1594665c..34c2a2a5 100644
--- a/inc/SP/Account/AccountCrypt.php
+++ b/inc/SP/Account/AccountCrypt.php
@@ -24,6 +24,7 @@
namespace SP\Account;
+use SP\Core\Crypt\Crypt;
use SP\Core\OldCrypt;
use SP\Core\Exceptions\SPException;
use SP\Core\Session;
@@ -100,9 +101,9 @@ class AccountCrypt
$decryptedPass = OldCrypt::getDecrypt($account->account_pass, $account->account_IV, $currentMasterPass);
- $securedKey = Crypt\Crypt::makeSecuredKey($currentMasterPass);
+ $securedKey = Crypt::makeSecuredKey($currentMasterPass);
- $AccountData->setAccountPass(Crypt\Crypt::encrypt($decryptedPass, $securedKey));
+ $AccountData->setAccountPass(Crypt::encrypt($decryptedPass, $securedKey));
$AccountData->setAccountIV($securedKey);
try {
@@ -176,11 +177,11 @@ class AccountCrypt
$LogMessage->addDetails(__('IV de encriptación incorrecto', false), sprintf('%s (%d)', $account->account_name, $account->account_id));
}
- $currentSecuredKey = Crypt\Crypt::unlockSecuredKey($account->account_IV, $currentMasterPass);
- $decryptedPass = Crypt\Crypt::decrypt($account->account_pass, $currentSecuredKey);
+ $currentSecuredKey = Crypt::unlockSecuredKey($account->account_IV, $currentMasterPass);
+ $decryptedPass = Crypt::decrypt($account->account_pass, $currentSecuredKey);
- $newSecuredKey = Crypt\Crypt::makeSecuredKey($newMasterPass);
- $AccountData->setAccountPass(Crypt\Crypt::encrypt($decryptedPass, $newSecuredKey));
+ $newSecuredKey = Crypt::makeSecuredKey($newMasterPass);
+ $AccountData->setAccountPass(Crypt::encrypt($decryptedPass, $newSecuredKey));
$AccountData->setAccountIV($newSecuredKey);
try {
diff --git a/inc/SP/Account/AccountHistoryCrypt.php b/inc/SP/Account/AccountHistoryCrypt.php
index 3b816d78..4e11b986 100644
--- a/inc/SP/Account/AccountHistoryCrypt.php
+++ b/inc/SP/Account/AccountHistoryCrypt.php
@@ -25,6 +25,8 @@
namespace SP\Account;
use SP\Config\ConfigDB;
+use SP\Core\Crypt\Crypt;
+use SP\Core\Crypt\Hash;
use SP\Core\OldCrypt;
use SP\Core\Exceptions\SPException;
use SP\Log\Email;
@@ -83,7 +85,7 @@ class AccountHistoryCrypt
$AccountDataBase->id = 0;
$AccountDataBase->pass = '';
$AccountDataBase->iv = '';
- $AccountDataBase->hash = Crypt\Hash::hashKey($currentMasterPass);
+ $AccountDataBase->hash = Hash::hashKey($currentMasterPass);
foreach ($accountsPass as $account) {
$AccountData = clone $AccountDataBase;
@@ -107,9 +109,9 @@ class AccountHistoryCrypt
$decryptedPass = OldCrypt::getDecrypt($account->acchistory_pass, $account->acchistory_IV, $currentMasterPass);
- $securedKey = Crypt\Crypt::makeSecuredKey($currentMasterPass);
+ $securedKey = Crypt::makeSecuredKey($currentMasterPass);
- $AccountData->pass = Crypt\Crypt::encrypt($decryptedPass, $securedKey);
+ $AccountData->pass = Crypt::encrypt($decryptedPass, $securedKey);
$AccountData->iv = $securedKey;
try {
@@ -184,7 +186,7 @@ class AccountHistoryCrypt
$AccountDataBase->id = 0;
$AccountDataBase->pass = '';
$AccountDataBase->iv = '';
- $AccountDataBase->hash = Crypt\Hash::hashKey($newMasterPass);
+ $AccountDataBase->hash = Hash::hashKey($newMasterPass);
foreach ($accountsPass as $account) {
$AccountData = clone $AccountDataBase;
@@ -206,11 +208,11 @@ class AccountHistoryCrypt
$LogMessage->addDetails(__('IV de encriptación incorrecto', false), sprintf('%s (%d)', $account->acchistory_name, $account->acchistory_id));
}
- $currentSecuredKey = Crypt\Crypt::unlockSecuredKey($account->acchistory_IV, $currentMasterPass);
- $decryptedPass = Crypt\Crypt::decrypt($account->acchistory_pass, $currentSecuredKey);
+ $currentSecuredKey = Crypt::unlockSecuredKey($account->acchistory_IV, $currentMasterPass);
+ $decryptedPass = Crypt::decrypt($account->acchistory_pass, $currentSecuredKey);
- $newSecuredKey = Crypt\Crypt::makeSecuredKey($newMasterPass);
- $AccountData->acchistory_pass = Crypt\Crypt::encrypt($decryptedPass, $newSecuredKey);
+ $newSecuredKey = Crypt::makeSecuredKey($newMasterPass);
+ $AccountData->acchistory_pass = Crypt::encrypt($decryptedPass, $newSecuredKey);
$AccountData->acchistory_IV = $newSecuredKey;
try {
diff --git a/inc/SP/Api/SyspassApi.class.php b/inc/SP/Api/SyspassApi.class.php
index 15535de8..50424aa9 100644
--- a/inc/SP/Api/SyspassApi.class.php
+++ b/inc/SP/Api/SyspassApi.class.php
@@ -31,6 +31,7 @@ use SP\Account\AccountUtil;
use SP\Core\Acl;
use SP\Core\ActionsInterface;
use SP\Core\Backup;
+use SP\Core\Crypt\Crypt;
use SP\Core\OldCrypt;
use SP\Core\Exceptions\SPException;
use SP\DataModel\AccountExtData;
@@ -84,11 +85,11 @@ class SyspassApi extends ApiBase
$LogMessage->addDetails(__('Origen', false), 'API');
$this->Log->writeLog();
- $securedKey = Crypt\Crypt::unlockSecuredKey($AccountData->getAccountIV(), $this->mPass);
+ $securedKey = Crypt::unlockSecuredKey($AccountData->getAccountIV(), $this->mPass);
$ret = [
'itemId' => $accountId,
- 'pass' => Crypt\Crypt::decrypt($AccountData->getAccountPass(), $securedKey)
+ 'pass' => Crypt::decrypt($AccountData->getAccountPass(), $securedKey)
];
if ($this->getParam('details', false, 0)) {
diff --git a/inc/SP/Controller/AccountController.class.php b/inc/SP/Controller/AccountController.class.php
index d8f00b17..463d0a68 100644
--- a/inc/SP/Controller/AccountController.class.php
+++ b/inc/SP/Controller/AccountController.class.php
@@ -34,6 +34,7 @@ use SP\Account\UserAccounts;
use SP\Config\Config;
use SP\Core\Acl;
use SP\Core\ActionsInterface;
+use SP\Core\Crypt\Crypt;
use SP\Core\OldCrypt;
use SP\Core\Exceptions\SPException;
use SP\Core\Init;
@@ -150,11 +151,11 @@ class AccountController extends ControllerBase implements ActionsInterface
$AccountPassData = $this->Account->getAccountPassData();
// Obtener la llave de la clave maestra
- $securedKey = Crypt\Crypt::unlockSecuredKey($PublicLinkData->getPassIV(), Config::getConfig()->getPasswordSalt() . $PublicLinkData->getLinkHash());
+ $securedKey = Crypt::unlockSecuredKey($PublicLinkData->getPassIV(), Config::getConfig()->getPasswordSalt() . $PublicLinkData->getLinkHash());
// Desencriptar la clave de la cuenta
- $accountSecuredKey = Crypt\Crypt::unlockSecuredKey($AccountPassData->getAccountIV(), Crypt\Crypt::decrypt($PublicLinkData->getPass(), $securedKey));
- $accountPass = Crypt\Crypt::decrypt($AccountPassData->getAccountPass(), $accountSecuredKey);
+ $accountSecuredKey = Crypt::unlockSecuredKey($AccountPassData->getAccountIV(), Crypt::decrypt($PublicLinkData->getPass(), $securedKey));
+ $accountPass = Crypt::decrypt($AccountPassData->getAccountPass(), $accountSecuredKey);
$this->view->assign('useImage', Config::getConfig()->isPublinksImageEnabled() || Config::getConfig()->isAccountPassToImage());
diff --git a/inc/SP/Controller/ConfigActionController.class.php b/inc/SP/Controller/ConfigActionController.class.php
index 9e7b52ae..6a9c4b00 100644
--- a/inc/SP/Controller/ConfigActionController.class.php
+++ b/inc/SP/Controller/ConfigActionController.class.php
@@ -24,25 +24,21 @@
namespace SP\Controller;
-use SP\Account\Account;
use SP\Account\AccountCrypt;
-use SP\Account\AccountHistory;
use SP\Account\AccountHistoryCrypt;
use SP\Config\Config;
use SP\Config\ConfigDB;
use SP\Core\ActionsInterface;
use SP\Core\Backup;
-use SP\Core\OldCrypt;
use SP\Core\Crypt\Hash;
+use SP\Core\Crypt\Session as CryptSession;
use SP\Core\CryptMasterPass;
use SP\Core\Exceptions\SPException;
use SP\Core\Init;
use SP\Core\Messages\LogMessage;
use SP\Core\Messages\NoticeMessage;
use SP\Core\Session;
-use SP\Core\SessionUtil;
use SP\Core\XmlExport;
-use SP\Html\Html;
use SP\Http\Request;
use SP\Import\Import;
use SP\Import\ImportParams;
@@ -590,7 +586,7 @@ class ConfigActionController implements ItemControllerInterface
$this->LogMessage->setAction(__('Actualizar Clave Maestra', false));
- if (ConfigDB::setValue('masterPwd', Hash::hashKey(Crypt\Session::getSessionKey()))) {
+ if (ConfigDB::setValue('masterPwd', Hash::hashKey(CryptSession::getSessionKey()))) {
$this->LogMessage->addDescription(__('Hash de clave maestra actualizado', false));
$this->JsonResponse->setStatus(0);
diff --git a/inc/SP/Controller/ItemShowController.class.php b/inc/SP/Controller/ItemShowController.class.php
index 8f4ec64c..7f348fd4 100644
--- a/inc/SP/Controller/ItemShowController.class.php
+++ b/inc/SP/Controller/ItemShowController.class.php
@@ -31,7 +31,8 @@ use SP\Account\AccountAcl;
use SP\Account\AccountHistory;
use SP\Api\ApiTokensUtil;
use SP\Core\ActionsInterface;
-use SP\Core\OldCrypt;
+use SP\Core\Crypt\Crypt;
+use SP\Core\Crypt\Session as CryptSession;
use SP\Core\Exceptions\ItemException;
use SP\Core\Plugin\PluginUtil;
use SP\Core\Session;
@@ -513,8 +514,8 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
throw new ItemException(__('Clave maestra actualizada', false) . '
' . __('Reinicie la sesión para cambiarla', false));
}
- $securedKey = Crypt\Crypt::unlockSecuredKey($AccountData->getAccountIV(), Crypt\Session::getSessionKey());
- $accountClearPass = Crypt\Crypt::decrypt($AccountData->getAccountPass(), $securedKey);
+ $securedKey = Crypt::unlockSecuredKey($AccountData->getAccountIV(), CryptSession::getSessionKey());
+ $accountClearPass = Crypt::decrypt($AccountData->getAccountPass(), $securedKey);
if (!$isHistory) {
$Account->incrementDecryptCounter();
diff --git a/inc/SP/Controller/LoginController.class.php b/inc/SP/Controller/LoginController.class.php
index 53a1788f..dc1030be 100644
--- a/inc/SP/Controller/LoginController.class.php
+++ b/inc/SP/Controller/LoginController.class.php
@@ -30,7 +30,6 @@ use SP\Auth\AuthUtil;
use SP\Auth\Browser\BrowserAuthData;
use SP\Auth\Database\DatabaseAuthData;
use SP\Auth\Ldap\LdapAuthData;
-use SP\Core\Crypt\Crypt;
use SP\Core\Crypt\Session as CryptSession;
use SP\Core\CryptMasterPass;
use SP\Core\DiFactory;
diff --git a/inc/SP/Core/Init.class.php b/inc/SP/Core/Init.class.php
index 585330f0..e43cb661 100644
--- a/inc/SP/Core/Init.class.php
+++ b/inc/SP/Core/Init.class.php
@@ -40,6 +40,7 @@ use SP\Storage\DBUtil;
use SP\Util\Checks;
use SP\Util\Json;
use SP\Util\Util;
+use SP\Core\Crypt\Session as CryptSession;
defined('APP_ROOT') || die();
@@ -143,7 +144,7 @@ class Init
Language::setLanguage(true);
DiFactory::getTheme()->initTheme(true);
- if (self::isLoggedIn()){
+ if (self::isLoggedIn()) {
// Recargar los permisos del perfil de usuario
Session::setUserProfile(Profile::getItem()->getById(Session::getUserData()->getUserProfileId()));
// Reset de los datos de ACL de cuentas
@@ -165,8 +166,8 @@ class Init
// Comprobar si es cierre de sesión
self::checkLogout();
- // Comprobar la versión y actualizarla
- self::checkDbVersion();
+ // Comprobar si es necesario actualizar componentes
+ self::checkUpgrade();
// Inicializar la sesión
self::initSession();
@@ -305,8 +306,8 @@ class Init
* Devuelve un error utilizando la plantilla de error o en formato JSON
*
* @param string $message con la descripción del error
- * @param string $hint opcional, con una ayuda sobre el error
- * @param bool $headers
+ * @param string $hint opcional, con una ayuda sobre el error
+ * @param bool $headers
* @throws \SP\Core\Exceptions\SPException
*/
public static function initError($message, $hint = '', $headers = false)
@@ -495,6 +496,16 @@ class Init
}
}
+ /**
+ * Comprobar si el usuario está logado.
+ *
+ * @returns bool
+ */
+ public static function isLoggedIn()
+ {
+ return (DiFactory::getDBStorage()->getDbStatus() === 0 && Session::getUserData()->getUserLogin());
+ }
+
/**
* Comprueba que la aplicación esté instalada
* Esta función comprueba si la aplicación está instalada. Si no lo está, redirige al instalador.
@@ -555,16 +566,6 @@ class Init
return false;
}
- /**
- * Comprobar si el usuario está logado.
- *
- * @returns bool
- */
- public static function isLoggedIn()
- {
- return (DiFactory::getDBStorage()->getDbStatus() === 0 && Session::getUserData()->getUserLogin());
- }
-
/**
* Comprobar si es necesario cerrar la sesión
*/
@@ -613,62 +614,17 @@ class Init
}
/**
- * Comrpueba y actualiza la versión de la aplicación.
- *
- * @throws \SP\Core\Exceptions\SPException
+ * Comprobar si es necesario actualizar componentes
*/
- private static function checkDbVersion()
+ private static function checkUpgrade()
{
- if (self::$SUBURI !== '/index.php' || Request::analyze('logout', 0) === 1) {
+ if (self::$SUBURI !== '/index.php') {
return;
}
- $update = false;
- $databaseVersion = (int)str_replace('.', '', ConfigDB::getValue('version'));
$appVersion = (int)implode(Util::getVersion(true));
- if ($databaseVersion < $appVersion
- && Request::analyze('nodbupgrade', 0) === 0
- && Upgrade::needDBUpgrade($databaseVersion)
- ) {
- if (!self::checkMaintenanceMode(true)) {
- $upgradeKey = Config::getConfig()->getUpgradeKey();
-
- if (empty($upgradeKey)) {
- Config::getConfig()->setUpgradeKey(sha1(uniqid(mt_rand(), true)));
- Config::getConfig()->setMaintenance(true);
- Config::saveConfig(null, false);
- }
-
- self::initError(__('La aplicación necesita actualizarse'), sprintf(__('Si es un administrador pulse en el enlace: %s'), '' . __('Actualizar') . ''));
- } else {
- $action = Request::analyze('a');
- $hash = Request::analyze('h');
- $confirm = Request::analyze('chkConfirm', false, false, true);
-
- if ($confirm === true
- && $action === 'upgrade'
- && $hash === Config::getConfig()->getUpgradeKey()
- ) {
- try {
- $update = Upgrade::doUpgrade($databaseVersion);
-
- ConfigDB::setValue('version', $appVersion);
- Config::getConfig()->setMaintenance(false);
- Config::getConfig()->setUpgradeKey('');
- Config::saveConfig();
- } catch (SPException $e) {
- $hint = $e->getHint() . '