diff --git a/test/default/stream.c b/test/default/stream.c index df8dd86c..87ef3712 100644 --- a/test/default/stream.c +++ b/test/default/stream.c @@ -2,48 +2,55 @@ #define TEST_NAME "stream" #include "cmptest.h" -static unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85, - 0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a, - 0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac, - 0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08, - 0x44, 0xf6, 0x83, 0x89 }; +static const unsigned char firstkey[32] = { + 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85, + 0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a, + 0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac, + 0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08, + 0x44, 0xf6, 0x83, 0x89 +}; -static unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6, - 0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8, - 0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19, - 0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 }; - -static unsigned char output[4194304]; - -static unsigned char h[32]; -static char hex[4096]; +static const unsigned char nonce[24] = { + 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6, + 0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8, + 0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19, + 0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 +}; int main(void) { - int i; + unsigned char h[32]; + char *hex; + unsigned char *output; + size_t sizeof_hex = 17 * 64 * 2 + 1; + size_t sizeof_output = 4194304; + int i; - randombytes_buf(output, sizeof output); - crypto_stream(output, sizeof output, nonce, firstkey); - crypto_hash_sha256(h, output, sizeof output); - sodium_bin2hex(hex, sizeof hex, h, sizeof h); + output = (unsigned char *) sodium_malloc(sizeof_output); + hex = (char *) sodium_malloc(sizeof_hex); + + randombytes_buf(output, sizeof_output); + crypto_stream(output, sizeof_output, nonce, firstkey); + crypto_hash_sha256(h, output, sizeof_output); + sodium_bin2hex(hex, sizeof_hex, h, sizeof h); printf("%s\n", hex); - assert(sizeof output > 4000); + assert(sizeof_output > 4000); crypto_stream_xsalsa20_xor_ic(output, output, 4000, nonce, 0U, firstkey); for (i = 0; i < 4000; i++) { assert(output[i] == 0); } crypto_stream_xsalsa20_xor_ic(output, output, 4000, nonce, 1U, firstkey); - crypto_hash_sha256(h, output, sizeof output); - sodium_bin2hex(hex, sizeof hex, h, sizeof h); + crypto_hash_sha256(h, output, sizeof_output); + sodium_bin2hex(hex, sizeof_hex, h, sizeof h); printf("%s\n", hex); for (i = 0; i < 64; i++) { memset(output, i, 64); crypto_stream(output, (int) (i & 0xff), nonce, firstkey); - sodium_bin2hex(hex, sizeof hex, output, 64); + sodium_bin2hex(hex, sizeof_hex, output, 64); printf("%s\n", hex); } @@ -62,6 +69,9 @@ main(void) printf("%s\n", hex); } + sodium_free(hex); + sodium_free(output); + assert(crypto_stream_keybytes() > 0U); assert(crypto_stream_noncebytes() > 0U); assert(crypto_stream_messagebytes_max() > 0U); diff --git a/test/default/stream2.c b/test/default/stream2.c index 8e5b3f67..1e178a47 100644 --- a/test/default/stream2.c +++ b/test/default/stream2.c @@ -2,42 +2,54 @@ #define TEST_NAME "stream2" #include "cmptest.h" -static unsigned char secondkey[32] = { 0xdc, 0x90, 0x8d, 0xda, 0x0b, 0x93, 0x44, - 0xa9, 0x53, 0x62, 0x9b, 0x73, 0x38, 0x20, - 0x77, 0x88, 0x80, 0xf3, 0xce, 0xb4, 0x21, - 0xbb, 0x61, 0xb9, 0x1c, 0xbd, 0x4c, 0x3e, - 0x66, 0x25, 0x6c, 0xe4 }; +static const unsigned char secondkey[32] = { + 0xdc, 0x90, 0x8d, 0xda, 0x0b, 0x93, 0x44, + 0xa9, 0x53, 0x62, 0x9b, 0x73, 0x38, 0x20, + 0x77, 0x88, 0x80, 0xf3, 0xce, 0xb4, 0x21, + 0xbb, 0x61, 0xb9, 0x1c, 0xbd, 0x4c, 0x3e, + 0x66, 0x25, 0x6c, 0xe4 +}; -static unsigned char noncesuffix[8] = { 0x82, 0x19, 0xe0, 0x03, - 0x6b, 0x7a, 0x0b, 0x37 }; +static const unsigned char noncesuffix[8] = { + 0x82, 0x19, 0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 +}; -static unsigned char output[4194304]; -static unsigned char h[32]; int main(void) { - int i; - crypto_stream_salsa20(output, sizeof output, noncesuffix, secondkey); - crypto_hash_sha256(h, output, sizeof output); - for (i = 0; i < 32; ++i) - printf("%02x", h[i]); - printf("\n"); + unsigned char *output; + char *hex; + unsigned char h[32]; + size_t sizeof_hex = 32 * 2 + 1; + size_t sizeof_output = 4194304; + int i; - assert(sizeof output > 4000); + output = (unsigned char *) sodium_malloc(sizeof_output); + hex = (char *) sodium_malloc(sizeof_hex); + + crypto_stream_salsa20(output, sizeof_output, noncesuffix, secondkey); + crypto_hash_sha256(h, output, sizeof_output); + sodium_bin2hex(hex, sizeof_hex, h, sizeof h); + printf("%s\n", hex); + + assert(sizeof_output > 4000); crypto_stream_salsa20_xor_ic(output, output, 4000, noncesuffix, 0U, secondkey); - for (i = 0; i < 4000; ++i) + for (i = 0; i < 4000; i++) { assert(output[i] == 0); + } crypto_stream_salsa20_xor_ic(output, output, 4000, noncesuffix, 1U, secondkey); - crypto_hash_sha256(h, output, sizeof output); - for (i = 0; i < 32; ++i) - printf("%02x", h[i]); - printf("\n"); + crypto_hash_sha256(h, output, sizeof_output); + sodium_bin2hex(hex, sizeof_hex, h, sizeof h); + printf("%s\n", hex); + + sodium_free(hex); + sodium_free(output); assert(crypto_stream_salsa20_keybytes() > 0U); assert(crypto_stream_salsa20_noncebytes() > 0U);