Hola,
Pude compilar y ejecutar CORRECTAMENTE el c贸digo (modificado para Fivewin) que viene en el archivo crypt.prg en la carpeta Tests del Contrib de Hbssl, es decir, puede encriptar y desencriptar utilizando el algoritmo "AES-192-OFB" como viene el ejemplo original (recortado):
//--inicio del c贸digo
SSL_INIT()
OpenSSL_add_all_ciphers()
ctx := hb_EVP_CIPHER_CTX_create()
EVP_CIPHER_CTX_init( ctx )
//--------- IMPLEMENTADO EN UNA FUNCION INDEPENDIENTE como ENCRIPTA(cData)
EVP_EncryptInit( ctx, "AES-192-OFB", cKey )
? EVP_CIPHER_CTX_cipher( ctx )
? EVP_CIPHER_block_size( EVP_CIPHER_CTX_cipher( ctx ) )
encrypted := ""
result := ""
EVP_EncryptUpdate( ctx, @result, cData )
encrypted += result
EVP_EncryptFinal( ctx, @result )
encrypted += result
? "ENCRYTPTED", ">" + hb_StrToHex( encrypted ) + "<"
? ">" + encrypted + "<"
ctx := hb_EVP_CIPHER_CTX_create()
//-----------IMPLEMENTADO EN UNA FUNCION INDEPENDIENTE como DESENCRIPTA(cDataEncrypted)
EVP_DecryptInit( ctx, "AES-192-OFB", cKey )
decrypted := ""
result := ""
EVP_DecryptUpdate( ctx, @result, cDataEncrypted )
decrypted += result
EVP_DecryptFinal( ctx, @result )
decrypted += result
? "DECRYTPTED", ">" + decrypted + "<"
RETURN ( hb_StrToHex(decrypted ) )
//----Fin del codigo
Al convertir el ejemplo a dos funciones independientes, una para encriptar y otra para desencriptar, sin embargo, no arroja el mismo resultado al tratar de desencriptar.
Pienso que es posible que este algoritmo requiera una IV (Initiation Vector) y no se lo he dado. No se lo doy porque no conozco su nombre, sintaxis ni la estructura para hacerlo. Puede tambien ser otro problema que desconozco. Sin embargo si alimento desde un archivo Txt el texto encriptado, la funci贸n lo desencripta correctamente, pienso que es eso porque estoy simulando el programa original distribuido en crypt.prg y las variables necesarias est谩n inicializadas correctamente. Mucho les agradecer茅 si alguien puede decirme que me falta para que funcione la funci贸n de Desencripta(cDataEncrypted) en forma independiente (del ejemplo original).
Muchas gracias por su atenci贸n.