LDAP: enable ldap admin password encryption to avoid having clear password in the configuration file -refs BT#20849
parent
66e8f9d63b
commit
a528ca1375
@ -0,0 +1,52 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
/** |
||||||
|
* This script is to generate the encrypted password for LDAP admin to be used |
||||||
|
* when the parameter "ldap_encrypt_admin_password" is set to true |
||||||
|
* this encrypted password will be decrypted by the function api_decrypt_ldap_password |
||||||
|
*/ |
||||||
|
|
||||||
|
//exit; |
||||||
|
|
||||||
|
require_once __DIR__.'/../../main/inc/global.inc.php'; |
||||||
|
|
||||||
|
// Usage |
||||||
|
echo "This generate the encryption of the password passed in parameter.".PHP_EOL; |
||||||
|
|
||||||
|
$password = ''; |
||||||
|
if (!empty($argv[1])) { |
||||||
|
$password = $argv[1]; |
||||||
|
} else { |
||||||
|
echo "Password not defined in parameter. Please try again, passing it as argument to this script".PHP_EOL; |
||||||
|
echo "Usage: php ldap_encrypt_admin_password.php password".PHP_EOL; |
||||||
|
echo " password The original clear ldap admin's password".PHP_EOL; |
||||||
|
exit(); |
||||||
|
} |
||||||
|
|
||||||
|
if (!empty(api_get_configuration_value('ldap_encrypt_admin_password'))) { |
||||||
|
echo "The encrypted password is : " . encrypt(api_get_configuration_value('ldap_encrypt_admin_password'), $password) .PHP_EOL; |
||||||
|
} else { |
||||||
|
echo "There is no salt defined in app/config/configuration.php for variable 'ldap_admin_password_salt'".PHP_EOL.PHP_EOL; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function encrypt($secret, $data) |
||||||
|
{ |
||||||
|
$secret = hex2bin($secret); |
||||||
|
$iv = random_bytes(12); |
||||||
|
$tag = ''; |
||||||
|
|
||||||
|
$encrypted = openssl_encrypt( |
||||||
|
$data, |
||||||
|
'aes-256-gcm', |
||||||
|
$secret, |
||||||
|
OPENSSL_RAW_DATA, |
||||||
|
$iv, |
||||||
|
$tag, |
||||||
|
'', |
||||||
|
16 |
||||||
|
); |
||||||
|
|
||||||
|
return base64_encode($iv) . base64_encode($encrypted . $tag); |
||||||
|
} |
Loading…
Reference in new issue