Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2023-04-18 20:13:45 +02:00
commit eb2296f814
5 changed files with 115 additions and 80 deletions

View File

@ -264,6 +264,8 @@
- comment of document, documentcontent and folder can be rendered as
markdown
- fix preview for file in drop folder
- fix export of search result
- use openssl instead of mcrypt
--------------------------------------------------------------------------------
Changes in version 5.1.30

View File

@ -391,6 +391,8 @@ function getAttributeObjectTypeText($attrdef) { /* {{{ */
case SeedDMS_Core_AttributeDefinition::objtype_documentcontent:
$ot = getMLText("documentcontent");
break;
default:
$ot = getMLText('objtype_unknown');
}
return $ot;
} /* }}} */

View File

@ -31,7 +31,7 @@ if(!defined("SEEDDMS_INSTALL") && file_exists($settings->_configFileDir."/ENABLE
/* Set an encryption key if is not set */
if(!trim($settings->_encryptionKey)) {
$settings->_encryptionKey = md5(uniqid());
$settings->_encryptionKey = bin2hex(openssl_random_pseudo_bytes(16));
$settings->save();
}

View File

@ -582,11 +582,28 @@ function checkQuota($user) { /* {{{ */
* @return string encrypted data
*/
function encryptData($key, $value) { /* {{{ */
if(function_exists('openssl_cipher_iv_length')) {
$nonceSize = openssl_cipher_iv_length('aes-256-ctr');
$nonce = openssl_random_pseudo_bytes($nonceSize);
$ciphertext = openssl_encrypt(
$value,
'aes-256-ctr',
$key,
OPENSSL_RAW_DATA,
$nonce
);
// Now let's pack the IV and the ciphertext together
// Naively, we can just concatenate
return $nonce.$ciphertext;
} else {
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
return $crypttext;
}
} /* }}} */
/**
@ -597,11 +614,26 @@ function encryptData($key, $value) { /* {{{ */
* @return string plain text data
*/
function decryptData($key, $value) { /* {{{ */
if(function_exists('openssl_cipher_iv_length')) {
$nonceSize = openssl_cipher_iv_length('aes-256-ctr');
$nonce = mb_substr($value, 0, $nonceSize, '8bit');
$ciphertext = mb_substr($value, $nonceSize, null, '8bit');
$plaintext = openssl_decrypt(
$ciphertext,
'aes-256-ctr',
$key,
OPENSSL_RAW_DATA,
$nonce
);
return $plaintext;
} else {
$crypttext = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
return trim($decrypttext);
}
} /* }}} */
/**

View File

@ -135,11 +135,10 @@ if($reqversion<1)
$reqversion=1;
include($myincpath."/inc/inc.Settings.php");
include($myincpath."/inc/inc.LogInit.php");
include($myincpath."/inc/inc.Init.php");
include($myincpath."/inc/inc.Extension.php");
include($myincpath."/inc/inc.DBInit.php");
include($myincpath."/inc/inc.ClassNotificationService.php");
include($myincpath."/inc/inc.ClassEmailNotify.php");
include($myincpath."/inc/inc.ClassController.php");
/* Parse categories {{{ */