Add tests for sodium_add(), more tests for sodium_increment() and is_zero()

This commit is contained in:
Frank Denis
2015-11-16 23:22:01 +01:00
parent 27466ded16
commit 9337ecfa60
+31 -3
View File
@@ -3,6 +3,7 @@
int main(void)
{
unsigned char buf_add[1000];
unsigned char buf1[1000];
unsigned char buf2[1000];
unsigned char buf1_rev[1000];
@@ -109,9 +110,36 @@ int main(void)
if (sodium_is_zero(buf1, sizeof buf1) != 1) {
printf("sodium_is_zero() failed\n");
}
buf1[randombytes_uniform(sizeof buf1)]++;
if (sodium_is_zero(buf1, sizeof buf1) != 0) {
printf("sodium_is_zero() failed\n");
for (i = 0U; i < sizeof buf1; i++) {
buf1[i]++;
if (sodium_is_zero(buf1, sizeof buf1) != 0) {
printf("sodium_is_zero() failed\n");
}
buf1[i]--;
}
bin_len = randombytes_uniform(sizeof buf1);
randombytes_buf(buf1, bin_len);
memcpy(buf2, buf1, bin_len);
memset(buf_add, 0, bin_len);
j = randombytes_uniform(10000);
for (i = 0U; i < j; i++) {
sodium_increment(buf1, bin_len);
sodium_increment(buf_add, bin_len);
}
sodium_add(buf2, buf_add, bin_len);
if (sodium_compare(buf1, buf2, bin_len) != 0) {
printf("sodium_add() failed\n");
}
bin_len = randombytes_uniform(sizeof buf1);
randombytes_buf(buf1, bin_len);
memcpy(buf2, buf1, bin_len);
memset(buf_add, 0xff, bin_len);
sodium_increment(buf2, bin_len);
sodium_increment(buf2, 0U);
sodium_add(buf2, buf_add, bin_len);
sodium_add(buf2, buf_add, 0U);
if (sodium_compare(buf1, buf2, bin_len) != 0) {
printf("sodium_add() failed\n");
}
return 0;
}