Qual è la differenza tra le API EVP_Cipher * e EVP_Encrypt * di openssl?

0

Sto usando openssl 1.0.2o per scrivere un codice di crittografia simmetrica per crittografare alcuni dati in memoria. openssl sembra avere due API simili per fare questo:

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);

e

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);

Vedo solo piccole differenze nell'interfaccia. Sto usando AES-256-CBC. Non sto specificando un motore non predefinito.

Una API è più recente dell'altra o è preferita per qualche motivo? Non ho trovato alcuna documentazione che spieghi quando uno dovrebbe essere usato preferibilmente all'altro.

    
posta echawkes 28.08.2018 - 01:34
fonte

0 risposte

Leggi altre domande sui tag