2010-09-23 1 views
7

Ich bin neu bei OpenSSL. Ich verstehe, dass die Verschlüsselung mit der EVP-API durchgeführt werden sollte, die als gemeinsame Schnittstelle für alle Verschlüsselungen fungiert. AES CTR-Modus scheint in der Version von OpenSSL anwesend zu sein, die ich habe, aber die Definition für EVP_aes_128_ctr ist deaktiviert in evp.h:Kann die Verschlüsselung des AES CTR-Modus mit der EVP-API verwendet werden?

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

Jede Idee, warum das so ist? Kann ich nur die #if 0 entfernen? Irgendwelche anderen Hinweise darauf, 128-Bit-AES-CTR-Modus-Verschlüsselung zu erhalten, um in OpenSSL zu arbeiten, wären willkommen!

Danke!

Antwort

4

Btw, es sieht aus wie die Antwort darauf ist nein, noch nicht. Aber vielleicht bald. Ich fand diesen E-Mail-Thread anzeigt, dass ein Patch dieses Problem beheben kann im Juni 2010 vorgelegt hat:

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

Aber wenn ich den neuesten Entwicklungszweig von SVN heruntergeladen, AES CTR wurde noch nicht in Executive Vice President aktiviert. Ich landete nur direkt die Umsetzung, für die ich diesen Link hilfreich:

AES CTR 256 Encryption Mode of operation on OpenSSL

1

Ich bin mit AES CTR 128-Modus und es funktioniert. Ich benutze libssl1.0.0 (ich bin mir nicht sicher, ob ich die richtige Frage beantworte! Ich hoffe, es wäre hilfreich). Hier ist ein Teil meines Codes:

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