2010-09-23 14 views
7

Sono nuovo di OpenSSL. Comprendo che la crittografia deve essere eseguita utilizzando l'API EVP che funge da interfaccia comune a tutti i cifrari. modalità AES CTR sembra essere presente nella versione di OpenSSL che ho, ma la definizione per EVP_aes_128_ctr è disattivata in evp.h:È possibile utilizzare la crittografia in modalità CTR AES utilizzando l'API EVP?

#if 0 
const EVP_CIPHER *EVP_aes_128_ctr(void); 
#endif 

Qualsiasi idea del perché questo è? Posso semplicemente rimuovere il #if 0? Sarebbe gradito qualsiasi altro suggerimento su come ottenere la crittografia in modalità CTR AES a 128 bit per funzionare in OpenSSL!

Grazie!

risposta

4

A proposito, sembra che la risposta a questo è no, non ancora. Ma forse presto. Ho trovato questa discussione e-mail che indica che una patch per risolvere questo problema potrebbe essere stato presentato nel giugno 2010:

http://www.mail-archive.com/[email protected]/msg01972.html

Ma quando ho scaricato il ramo di sviluppo più recente da SVN, AES CTR ero ancora non abilitati nel EVP. Ho finito appena attuare direttamente, per il quale ho trovato questo link utile:

AES CTR 256 Encryption Mode of operation on OpenSSL

1

sto usando la modalità AES CTR 128 e funziona. Sto usando libssl1.0.0 (non sono sicuro se sto rispondendo alla domanda giusta! Spero che sarebbe utile). Ecco una parte del mio codice:

EVP_CipherInit_ex(ctx, EVP_aes_128_ctr(), NULL, key, iv,1); 
EVP_CipherUpdate (ctx, ciphertext, &len, plaintext, plaintext_len); 
/* Finalise the encryption. */ 
if(! EVP_CipherFinal_ex(ctx, ciphertext + len, &len)) handleErrors(); 
/*setting padding option*/ 
EVP_CIPHER_CTX_set_padding(ctx,0); 
/* Clean up */ 
EVP_CIPHER_CTX_free(ctx); 
Problemi correlati