¿Cuál es la diferencia entre las API EVP_Cipher * y EVP_Encrypt * de openssl?

0

Estoy usando openssl 1.0.2o para escribir un código de cifrado simétrico para cifrar algunos datos en la memoria. openssl parece tener dos API similares para hacer esto:

int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
    ENGINE *impl, unsigned char *key, unsigned char *iv);
int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
    int *outl, unsigned char *in, int inl);
int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out,
    int *outl);

y

int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
    ENGINE *impl, unsigned char *key, unsigned char *iv, int enc);
int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
    int *outl, unsigned char *in, int inl);
int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm,
    int *outl);

Solo veo pequeñas diferencias en la interfaz. Estoy usando AES-256-CBC. No estoy especificando un motor no predeterminado.

¿Una API es más nueva que la otra o es preferida por alguna razón? No he encontrado ninguna documentación que explique cuándo se debe usar una con preferencia a la otra.

    
pregunta echawkes 28.08.2018 - 01:34
fuente

0 respuestas

Lea otras preguntas en las etiquetas