We became aware that 2 PHP functions used by former Ossn releases are no longer available with PHP 7.4
Our recommended solution is to update your Ossn to the latest version
- BEFORE switching to PHP 7.4
If you don't want to update your outdated Ossn for whatever reason, you need to apply 2 fixes this way:
libraries
ossn.lib.system.php
to your local PCossn.lib.system.php
as ossn.lib.system.php.BAK
ossn.lib.system.php
on your PCfunction ossn_string_encrypt($string = '', $key = '') {
if (empty($string)) {
return false;
}
if (empty($key)) {
$key = ossn_site_settings('site_key');
}
$key = ossn_string_encrypt_key_cycled($key);
//string also need to be at least 16 bytes
$string = utf8_encode($string);
if (strlen($string) % 8) {
$string = str_pad($string, strlen($string) + 8 - strlen($string) % 8, "\0");
}
$size = openssl_cipher_iv_length('bf-ecb');
$mcgetvi = openssl_random_pseudo_bytes($size);
return trim(openssl_encrypt($string, "bf-ecb", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $mcgetvi));
}
function ossn_string_encrypt($string = '', $key = '') {
if (empty($string)) {
return false;
}
if (strlen($string) % 8) {
$string = str_pad($string, strlen($string) + 8 - strlen($string) % 8, "\0");
}
if (empty($key)) {
$key = ossn_site_settings('site_key');
}
$key = ossn_string_encrypt_key_cycled($key);
return openssl_encrypt($string, "bf-ecb", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);
}
function ossn_string_decrypt($string = '', $key = '') {
if (empty($string)) {
return false;
}
if (empty($key)) {
$key = ossn_site_settings('site_key');
}
$key = ossn_string_encrypt_key_cycled($key);
$size = openssl_cipher_iv_length('bf-ecb');
$mcgetvi = openssl_random_pseudo_bytes($size);
//note mcrypt and now this acting mcrpyt adds the spaces to make 16 bytes if its less then 16 bytes
//you can use trim() to get orignal data without spaces
return openssl_decrypt($string, "bf-ecb", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $mcgetvi);
}
function ossn_string_decrypt($string = '', $key = '') {
if (empty($string)) {
return false;
}
if (empty($key)) {
$key = ossn_site_settings('site_key');
}
$key = ossn_string_encrypt_key_cycled($key);
return trim(openssl_decrypt($string, "bf-ecb", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING));
}
ossn.lib.system.php
back to your site