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,16 +135,15 @@ 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 {{{ */
$categories = array();
if(isset($options['K'])) {
/* Parse categories {{{ */
$categories = array();
if(isset($options['K'])) {
$categorynames = explode(',', $options['K']);
foreach($categorynames as $categoryname) {
$cat = $dms->getDocumentCategoryByName($categoryname);
@ -154,11 +153,11 @@ if(isset($options['K'])) {
echo "Category '".$categoryname."' not found".PHP_EOL;
}
}
} /* }}} */
} /* }}} */
/* Parse document attributes. {{{ */
$document_attributes = array();
if (isset($options['a'])) {
/* Parse document attributes. {{{ */
$document_attributes = array();
if (isset($options['a'])) {
$docattr = array();
if (is_array($options['a'])) {
$docattr = $options['a'];
@ -180,11 +179,11 @@ if (isset($options['a'])) {
}
$document_attributes[$attrdef->getID()] = $attrVal;
}
} /* }}} */
} /* }}} */
/* Parse version attributes. {{{ */
$version_attributes = array();
if (isset($options['A'])) {
/* Parse version attributes. {{{ */
$version_attributes = array();
if (isset($options['A'])) {
$verattr = array();
if (is_array($options['A'])) {
$verattr = $options['A'];
@ -206,15 +205,15 @@ if (isset($options['A'])) {
}
$version_attributes[$attrdef->getID()] = $attrVal;
}
} /* }}} */
} /* }}} */
/* Create a global user object {{{ */
if($username) {
/* Create a global user object {{{ */
if($username) {
if(!($user = $dms->getUserByLogin($username))) {
echo "No such user '".$username."'.";
exit;
}
} else
} else
$user = $dms->getUser(1);
$dms->setUser($user);