Necesito encriptar un texto, utilizando el cifrado AES256, con la clave que me indican, pero necesitan que sea modo CBC y con vector de inicialización que he calculado previamente.
Lo más cerca que he conseguido es utilizando el siguiente método:
CALL METHOD CL_SEC_SXML_WRITER=>ENCRYPT
EXPORTING
PLAINTEXT = lv_text
KEY = lv_key
ALGORITHM = cl_sec_sxml_writer=>co_aes256_algorithm
IMPORTING
CIPHERTEXT = lv_ciph
.
Pero no le puedo indicar que sea modo CBC y el vector de inicialización para el cifrado AES256.
En la documentación que me han pasado, hay un ejemplo en PHP de la forma de encriptar, por si mi explicación no es muy clara y con el ejemplo se entiende mejor.
$apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
// Encryption vector initialization
$secretiv = hash("SHA256", $apikey, true);
// Encryption for sparams
function Encrypt($string) { global $secret, $secretiv;
$output = false;
$output = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secret), "encchk=1/" .$string, MCRYPT_MODE_CBC, $secretiv);
return rtrim(strtr(base64_encode($output), '+/', '-_'), '=');
}
Si alguien me puede indicar de alguna forma cómo utilizar el vector de inicialización, sería de gran ayuda.