diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php
index b9c71993213..54276b836ba 100644
--- a/htdocs/admin/security.php
+++ b/htdocs/admin/security.php
@@ -444,7 +444,7 @@ print '';
print '
';
print '| '.$langs->trans("MainDbPasswordFileConfEncrypted").' | ';
print '';
-if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
+if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || preg_match('/dolcrypt:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
print img_picto($langs->trans("Active"), 'tick');
}
diff --git a/htdocs/admin/system/security.php b/htdocs/admin/system/security.php
index b978848f54c..b80b7164a76 100644
--- a/htdocs/admin/system/security.php
+++ b/htdocs/admin/system/security.php
@@ -527,7 +527,7 @@ print ' ';
/*
$usepassinconfencrypted = 0;
global $dolibarr_main_db_pass, $dolibarr_main_db_encrypted_pass;
-if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
+if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || preg_match('/dolcrypt:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
$usepassinconfencrypted = 1;
}
print ''.$langs->trans("MainDbPasswordFileConfEncrypted").': ';
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index abbd8359c66..9f3469654c6 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -462,7 +462,7 @@ function isDolTms($timestamp)
* @param string $type Type of database (mysql, pgsql...)
* @param string $host Address of database server
* @param string $user Authorized username
- * @param string $pass Password
+ * @param string $pass Password (clear)
* @param string $name Name of database
* @param int $port Port of database server
* @return DoliDB A DoliDB instance
diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php
index 97932f9cfc6..209ab8aee13 100644
--- a/htdocs/core/lib/security.lib.php
+++ b/htdocs/core/lib/security.lib.php
@@ -178,7 +178,7 @@ function dolEncrypt($chain, $key = '', $ciphering = '', $forceseed = '')
* Note: If a backup is restored onto another instance with a different $conf->file->instance_unique_id, then decoded value will differ.
*
* @param string $chain string to decode
- * @param string $key If '', we use $conf->file->instance_unique_id
+ * @param string $key If '', we use $conf->file->dolcrypt_key else $conf->file->instance_unique_id
* @return string encoded string
* @since v17
* @see dolEncrypt(), dol_hash()
diff --git a/htdocs/install/check.php b/htdocs/install/check.php
index 04b60ddd85b..6a9f8c2603e 100644
--- a/htdocs/install/check.php
+++ b/htdocs/install/check.php
@@ -345,7 +345,7 @@ if (!file_exists($conffile)) {
// Requirements met/all ok: display the next step button
if ($checksok) {
- $ok = 0;
+ $ok = false;
// Try to create db connection
if (file_exists($conffile)) {
@@ -358,11 +358,13 @@ if (!file_exists($conffile)) {
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
// If password is encoded, we decode it
- if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
+ if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || preg_match('/dolcrypt:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
require_once $dolibarr_main_document_root.'/core/lib/security.lib.php';
if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) {
$dolibarr_main_db_encrypted_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); // We need to set this as it is used to know the password was initially encrypted
$dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
+ } elseif (preg_match('/dolcrypt:/i', $dolibarr_main_db_pass)) {
+ $dolibarr_main_db_pass = dolDecrypt($dolibarr_main_db_pass);
} else {
$dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
}
@@ -375,6 +377,7 @@ if (!file_exists($conffile)) {
$conf->db->name = $dolibarr_main_db_name;
$conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass;
+
$db = getDoliDBInstance($conf->db->type, $conf->db->host, (string) $conf->db->user, $conf->db->pass, $conf->db->name, (int) $conf->db->port);
if ($db->connected && $db->database_selected) {
$ok = true;
diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php
index 1011536b0db..2368faa0fdc 100644
--- a/htdocs/install/repair.php
+++ b/htdocs/install/repair.php
@@ -140,12 +140,14 @@ print '';
$error = 0;
// If password is encoded, we decode it
-if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
+if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || preg_match('/dolcrypt:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) {
require_once $dolibarr_main_document_root.'/core/lib/security.lib.php';
if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) {
$dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass);
$dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass);
$dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially encrypted
+ } elseif (preg_match('/dolcrypt:/i', $dolibarr_main_db_pass)) {
+ $dolibarr_main_db_pass = dolDecrypt($dolibarr_main_db_pass);
} else {
$dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
}
|