2010-09-23 13 views
7

OpenSSL'ye yeni geliyorum. Şifreleme işleminin, tüm şifrelere ortak bir arabirim olarak hareket eden EVP API'si kullanılarak yapılması gerektiğini anlıyorum. AES TO modu ben OpenSSL sürümünde mevcut gibi görünüyor, ama EVP_aes_128_ctr için tanım evp.h içinde devre dışı: Bu yüzdenEVP API'sini kullanarak AES CTR modu şifrelemesi kullanmak mümkün mü?

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

fikrin var mı? #if 0'ı kaldırabilir miyim? OpenSSL'de çalışmak için 128 bit AES CTR modu şifrelemesi alma konusunda diğer tüm işaretçiler takdir edilecektir!

Teşekkürler!

cevap

1

: Sadece bu bağlantıyı bulduğu için, doğrudan uygulanması sona erdi. Ben libssl1.0.0 kullanıyorum (doğru soruya cevap verip vermediğimden emin değilim! Umarım yararlı olur).

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); 
: İşte benim kod parçasıdır