|
|
|
|
@ -162,27 +162,27 @@ static int testCrypto()
|
|
|
|
|
memset(buf2,0,sizeof(buf2)); |
|
|
|
|
memset(buf3,0,sizeof(buf3)); |
|
|
|
|
Salsa20 s20; |
|
|
|
|
s20.init("12345678123456781234567812345678",256,"12345678",20); |
|
|
|
|
s20.encrypt(buf1,buf2,sizeof(buf1)); |
|
|
|
|
s20.init("12345678123456781234567812345678",256,"12345678",20); |
|
|
|
|
s20.decrypt(buf2,buf3,sizeof(buf2)); |
|
|
|
|
s20.init("12345678123456781234567812345678",256,"12345678"); |
|
|
|
|
s20.encrypt20(buf1,buf2,sizeof(buf1)); |
|
|
|
|
s20.init("12345678123456781234567812345678",256,"12345678"); |
|
|
|
|
s20.decrypt20(buf2,buf3,sizeof(buf2)); |
|
|
|
|
if (memcmp(buf1,buf3,sizeof(buf1))) { |
|
|
|
|
std::cout << "FAIL (encrypt/decrypt test)" << std::endl; |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv,20); |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv); |
|
|
|
|
memset(buf1,0,sizeof(buf1)); |
|
|
|
|
memset(buf2,0,sizeof(buf2)); |
|
|
|
|
s20.encrypt(buf1,buf2,64); |
|
|
|
|
s20.encrypt20(buf1,buf2,64); |
|
|
|
|
if (memcmp(buf2,s20TV0Ks,64)) { |
|
|
|
|
std::cout << "FAIL (test vector 0)" << std::endl; |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
s20.init(s2012TV0Key,256,s2012TV0Iv,12); |
|
|
|
|
s20.init(s2012TV0Key,256,s2012TV0Iv); |
|
|
|
|
memset(buf1,0,sizeof(buf1)); |
|
|
|
|
memset(buf2,0,sizeof(buf2)); |
|
|
|
|
s20.encrypt(buf1,buf2,64); |
|
|
|
|
s20.encrypt12(buf1,buf2,64); |
|
|
|
|
if (memcmp(buf2,s2012TV0Ks,64)) { |
|
|
|
|
std::cout << "FAIL (test vector 1)" << std::endl; |
|
|
|
|
return -1; |
|
|
|
|
@ -195,34 +195,16 @@ static int testCrypto()
|
|
|
|
|
std::cout << "[crypto] Salsa20 SSE: DISABLED" << std::endl; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
std::cout << "[crypto] Benchmarking Salsa20/8... "; std::cout.flush(); |
|
|
|
|
{ |
|
|
|
|
unsigned char *bb = (unsigned char *)::malloc(1234567); |
|
|
|
|
for(unsigned int i=0;i<1234567;++i) |
|
|
|
|
bb[i] = (unsigned char)i; |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv,8); |
|
|
|
|
double bytes = 0.0; |
|
|
|
|
uint64_t start = OSUtils::now(); |
|
|
|
|
for(unsigned int i=0;i<200;++i) { |
|
|
|
|
s20.encrypt(bb,bb,1234567); |
|
|
|
|
bytes += 1234567.0; |
|
|
|
|
} |
|
|
|
|
uint64_t end = OSUtils::now(); |
|
|
|
|
SHA512::hash(buf1,bb,1234567); |
|
|
|
|
std::cout << ((bytes / 1048576.0) / ((double)(end - start) / 1000.0)) << " MiB/second (" << Utils::hex(buf1,16) << ')' << std::endl; |
|
|
|
|
::free((void *)bb); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::cout << "[crypto] Benchmarking Salsa20/12... "; std::cout.flush(); |
|
|
|
|
{ |
|
|
|
|
unsigned char *bb = (unsigned char *)::malloc(1234567); |
|
|
|
|
for(unsigned int i=0;i<1234567;++i) |
|
|
|
|
bb[i] = (unsigned char)i; |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv,12); |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv); |
|
|
|
|
double bytes = 0.0; |
|
|
|
|
uint64_t start = OSUtils::now(); |
|
|
|
|
for(unsigned int i=0;i<200;++i) { |
|
|
|
|
s20.encrypt(bb,bb,1234567); |
|
|
|
|
s20.encrypt12(bb,bb,1234567); |
|
|
|
|
bytes += 1234567.0; |
|
|
|
|
} |
|
|
|
|
uint64_t end = OSUtils::now(); |
|
|
|
|
@ -236,11 +218,11 @@ static int testCrypto()
|
|
|
|
|
unsigned char *bb = (unsigned char *)::malloc(1234567); |
|
|
|
|
for(unsigned int i=0;i<1234567;++i) |
|
|
|
|
bb[i] = (unsigned char)i; |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv,20); |
|
|
|
|
Salsa20 s20(s20TV0Key,256,s20TV0Iv); |
|
|
|
|
double bytes = 0.0; |
|
|
|
|
uint64_t start = OSUtils::now(); |
|
|
|
|
for(unsigned int i=0;i<200;++i) { |
|
|
|
|
s20.encrypt(bb,bb,1234567); |
|
|
|
|
s20.encrypt20(bb,bb,1234567); |
|
|
|
|
bytes += 1234567.0; |
|
|
|
|
} |
|
|
|
|
uint64_t end = OSUtils::now(); |
|
|
|
|
|