public static function encrypt($plaintext, $key) { // Set up encryption parameters. $plaintext_utf8 = utf8_encode($plaintext); $inputData = cryptoHelpers::convertStringToByteArray($plaintext); $keyAsNumbers = cryptoHelpers::toNumbers(bin2hex($key)); $keyLength = count($keyAsNumbers); $iv = cryptoHelpers::generateSharedKey(16); $encrypted = AES::encrypt($inputData, AES::modeOfOperation_CBC, $keyAsNumbers, $keyLength, $iv); // Set up output format (space delimeted "plaintextsize iv cipher") $retVal = $encrypted['originalsize'] . " " . cryptoHelpers::toHex($iv) . " " . cryptoHelpers::toHex($encrypted['cipher']); return $retVal; }
function wplc_encrypt_msg($plaintext) { $wplc_pro_settings = get_option("WPLC_PRO_SETTINGS"); if (isset($wplc_pro_settings['wplc_enable_encryption']) && $wplc_pro_settings['wplc_enable_encryption'] == 1) { $api_key = get_option('wplc_api_key'); if ($api_key != '') { $api_key = substr($api_key, 0, 10); $plaintext_utf8 = utf8_encode($plaintext); $inputData = cryptoHelpers::convertStringToByteArray($plaintext); $keyAsNumbers = cryptoHelpers::toNumbers(bin2hex($api_key)); $keyLength = count($keyAsNumbers); $iv = cryptoHelpers::generateSharedKey(16); $encrypted = AES::encrypt($inputData, AES::modeOfOperation_CBC, $keyAsNumbers, $keyLength, $iv); $retVal = $encrypted['originalsize'] . " " . cryptoHelpers::toHex($iv) . " " . cryptoHelpers::toHex($encrypted['cipher']); $message = array('e' => 1, 'm' => $retVal); return maybe_serialize($message); } else { $message = array('e' => 0, 'm' => $plaintext); return maybe_serialize($message); } } else { $message = array('e' => 0, 'm' => $plaintext); return maybe_serialize($message); } }