mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
fixed bug in aes
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-GenericTunneling@6297 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
66de50508b
commit
cd2d702e44
@ -81,10 +81,10 @@ int main(int argc,char *argv[])
|
||||
for(int j=0;j<8;++j)
|
||||
salt[j] = lrand48() & 0xff ;
|
||||
|
||||
unsigned char output_data[source_string.size() + 1 + 16] ;
|
||||
uint32_t output_data_length = source_string.size() + 1 + 16 ;
|
||||
unsigned char output_data[source_string.size() + 16] ;
|
||||
uint32_t output_data_length = source_string.size() + 16 ;
|
||||
|
||||
CHECK(RsAes::aes_crypt_8_16( (const uint8_t*)source_string.c_str(),source_string.length()+1,key_data,salt,output_data,output_data_length)) ;
|
||||
CHECK(RsAes::aes_crypt_8_16( (const uint8_t*)source_string.c_str(),source_string.length(),key_data,salt,output_data,output_data_length)) ;
|
||||
|
||||
std::cerr << "Round " << i << " salt=" ;
|
||||
printHex(salt,8) ;
|
||||
@ -92,19 +92,19 @@ int main(int argc,char *argv[])
|
||||
printHex(output_data,output_data_length) ;
|
||||
std::cerr << std::endl;
|
||||
|
||||
unsigned char output_data2[output_data_length + 1 + 16] ;
|
||||
uint32_t output_data_length2 = output_data_length + 1 + 16 ;
|
||||
unsigned char output_data2[output_data_length + 16] ;
|
||||
uint32_t output_data_length2 = output_data_length + 16 ;
|
||||
|
||||
CHECK(RsAes::aes_decrypt_8_16(output_data,output_data_length,key_data,salt,output_data2,output_data_length2)) ;
|
||||
|
||||
// std::cerr << " output_length = " << output_data_length2 << ", decrypted string = " ;
|
||||
// printHex(output_data2,output_data_length2) ;
|
||||
// std::cerr << std::endl;
|
||||
std::cerr << " output_length = " << output_data_length2 << ", decrypted string = " ;
|
||||
printHex(output_data2,output_data_length2) ;
|
||||
std::cerr << std::endl;
|
||||
|
||||
CHECK(std::string( (const char *)output_data2,output_data_length2) == source_string) ;
|
||||
}
|
||||
|
||||
FINALREPORT("Sha1Test") ;
|
||||
FINALREPORT("AESTest") ;
|
||||
return TESTRESULT() ;
|
||||
}
|
||||
|
||||
|
@ -57,15 +57,13 @@ bool RsAes::aes_crypt_8_16(const uint8_t *input_data,uint32_t input_data_length,
|
||||
if(output_data_length < (uint32_t)c_len)
|
||||
return false ;
|
||||
|
||||
output_data_length = c_len ;
|
||||
|
||||
/* update ciphertext, c_len is filled with the length of ciphertext generated,
|
||||
*len is the size of plaintext in bytes */
|
||||
|
||||
EVP_EncryptUpdate(&e_ctx, output_data, &c_len, input_data, input_data_length);
|
||||
|
||||
/* update ciphertext with the final remaining bytes */
|
||||
EVP_EncryptFinal_ex(&e_ctx, const_cast<uint8_t*>(input_data)+c_len, &f_len);
|
||||
EVP_EncryptFinal_ex(&e_ctx, output_data+c_len, &f_len);
|
||||
|
||||
output_data_length = c_len + f_len;
|
||||
|
||||
@ -109,7 +107,7 @@ bool RsAes::aes_decrypt_8_16(const uint8_t *input_data,uint32_t input_data_lengt
|
||||
EVP_DecryptUpdate(&e_ctx, output_data, &c_len, input_data, input_data_length);
|
||||
|
||||
/* update ciphertext with the final remaining bytes */
|
||||
EVP_DecryptFinal_ex(&e_ctx, const_cast<uint8_t*>(input_data)+c_len, &f_len);
|
||||
EVP_DecryptFinal_ex(&e_ctx, output_data+c_len, &f_len);
|
||||
|
||||
output_data_length = c_len + f_len;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user