/usr/share/doc/libsodium-devel
NameSizeModeActions
aead_aes256gcm.c1493300644editdlrm
aead_aes256gcm.exp30644editdlrm
aead_aes256gcm2.c139460644editdlrm
aead_aes256gcm2.exp30644editdlrm
aead_chacha20poly1305.c151260644editdlrm
aead_chacha20poly1305.exp24030644editdlrm
aead_chacha20poly13052.c654060644editdlrm
aead_chacha20poly13052.exp30644editdlrm
aead_xchacha20poly1305.c86020644editdlrm
aead_xchacha20poly1305.exp20010644editdlrm
auth.c50840644editdlrm
auth.exp11500644editdlrm
auth2.c11090644editdlrm
auth2.exp1640644editdlrm
auth3.c14630644editdlrm
auth3.exp20644editdlrm
auth5.c10870644editdlrm
auth5.exp00644editdlrm
auth6.c4490644editdlrm
auth6.exp3280644editdlrm
auth7.c11650644editdlrm
auth7.exp00644editdlrm
AUTHORS48980644editdlrm
box.c45280644editdlrm
box.exp15080644editdlrm
box2.c33940644editdlrm
box2.exp13440644editdlrm
box7.c15650644editdlrm
box7.exp00644editdlrm
box8.c17380644editdlrm
box8.exp00644editdlrm
box_easy.c29120644editdlrm
box_easy.exp9080644editdlrm
box_easy2.c55530644editdlrm
box_easy2.exp150644editdlrm
box_seal.c29140644editdlrm
box_seal.exp220644editdlrm
box_seed.c8390644editdlrm
box_seed.exp3280644editdlrm
chacha20.c78080644editdlrm
chacha20.exp206720644editdlrm
ChangeLog281640644editdlrm
cmptest.h47130644editdlrm
codecs.c122280644editdlrm
codecs.exp4170644editdlrm
core1.c12100644editdlrm
core1.exp1640644editdlrm
core2.c12140644editdlrm
core2.exp1640644editdlrm
core3.c32700644editdlrm
core3.exp1950644editdlrm
core4.c9810644editdlrm
core4.exp2640644editdlrm
core5.c9080644editdlrm
core5.exp1640644editdlrm
core6.c13420644editdlrm
core6.exp1640644editdlrm
core_ed25519.c170770644editdlrm
core_ed25519.exp12130644editdlrm
core_ristretto255.c116310644editdlrm
core_ristretto255.exp4580644editdlrm
ed25519_convert.c32540644editdlrm
ed25519_convert.exp1670644editdlrm
generichash.c1479310644editdlrm
generichash.exp43530644editdlrm
generichash2.c24690644editdlrm
generichash2.exp42240644editdlrm
generichash3.c73640644editdlrm
generichash3.exp56430644editdlrm
hash.c15030644editdlrm
hash.exp3880644editdlrm
hash2.exp1290644editdlrm
hash3.c3350644editdlrm
hash3.exp1290644editdlrm
kdf.c23660644editdlrm
kdf.exp61100644editdlrm
keygen.c26830644editdlrm
keygen.exp140644editdlrm
kx.c63580644editdlrm
kx.exp4780644editdlrm
metamorphic.c56080644editdlrm
metamorphic.exp30644editdlrm
misuse.c44720644editdlrm
misuse.exp00644editdlrm
onetimeauth.c23710644editdlrm
onetimeauth.exp1640644editdlrm
onetimeauth2.c14160644editdlrm
onetimeauth2.exp20644editdlrm
onetimeauth7.c9480644editdlrm
onetimeauth7.exp00644editdlrm
pwhash_argon2i.c222570644editdlrm
pwhash_argon2i.exp30990644editdlrm
pwhash_argon2id.c259160644editdlrm
pwhash_argon2id.exp36940644editdlrm
pwhash_scrypt.c186170644editdlrm
pwhash_scrypt.exp46090644editdlrm
pwhash_scrypt_ll.c17230644editdlrm
pwhash_scrypt_ll.exp7140644editdlrm
quirks.h4880644editdlrm
randombytes.c39630644editdlrm
randombytes.exp2200644editdlrm
README.markdown20940644editdlrm
scalarmult.c24800644editdlrm
scalarmult.exp2600644editdlrm
scalarmult2.c7940644editdlrm
scalarmult2.exp1640644editdlrm
scalarmult5.c12070644editdlrm
scalarmult5.exp1640644editdlrm
scalarmult6.c15490644editdlrm
scalarmult6.exp1640644editdlrm
scalarmult7.c9090644editdlrm
scalarmult7.exp20644editdlrm
scalarmult8.c249590644editdlrm
scalarmult8.exp22150644editdlrm
scalarmult_ed25519.c56160644editdlrm
scalarmult_ed25519.exp30644editdlrm
scalarmult_ristretto255.c19100644editdlrm
scalarmult_ristretto255.exp10820644editdlrm
secretbox.c35880644editdlrm
secretbox.exp15080644editdlrm
secretbox2.c24310644editdlrm
secretbox2.exp6720644editdlrm
secretbox7.c10720644editdlrm
secretbox7.exp00644editdlrm
secretbox8.c12300644editdlrm
secretbox8.exp00644editdlrm
secretbox_easy.c45500644editdlrm
secretbox_easy.exp41140644editdlrm
secretbox_easy2.c26020644editdlrm
secretbox_easy2.exp100644editdlrm
secretstream.c117030644editdlrm
secretstream.exp30644editdlrm
shorthash.c9680644editdlrm
shorthash.exp10880644editdlrm
sign.c27779630644editdlrm
sign.exp5120644editdlrm
siphashx24.c10490644editdlrm
siphashx24.exp21120644editdlrm
sodium_core.c9360644editdlrm
sodium_core.exp170644editdlrm
sodium_utils.c84140644editdlrm
sodium_utils.exp7560644editdlrm
sodium_utils2.c23240644editdlrm
sodium_utils2.exp460644editdlrm
sodium_utils3.c14390644editdlrm
sodium_utils3.exp430644editdlrm
sodium_version.c3870644editdlrm
sodium_version.exp60644editdlrm
stream.c27730644editdlrm
stream.exp436030644editdlrm
stream2.c16220644editdlrm
stream2.exp1300644editdlrm
stream3.c9790644editdlrm
stream3.exp1640644editdlrm
stream4.c20690644editdlrm
stream4.exp6720644editdlrm
THANKS22950644editdlrm
verify1.c20960644editdlrm
verify1.exp60644editdlrm
xchacha20.c261050644editdlrm
xchacha20.exp4820644editdlrm
Edit: /usr/share/doc/libsodium-devel/randombytes.c (3963B)
#define TEST_NAME "randombytes" #include "cmptest.h" static unsigned char x[65536]; static unsigned long long freq[256]; static int compat_tests(void) { size_t i; memset(x, 0, sizeof x); randombytes(x, sizeof x); for (i = 0; i < 256; ++i) { freq[i] = 0; } for (i = 0; i < sizeof x; ++i) { ++freq[255 & (int) x[i]]; } for (i = 0; i < 256; ++i) { if (!freq[i]) { printf("nacl_tests failed\n"); } } return 0; } static int randombytes_tests(void) { static const unsigned char seed[randombytes_SEEDBYTES] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }; unsigned char out[100]; unsigned int f = 0U; unsigned int i; uint32_t n; #ifndef BENCHMARKS # ifdef __EMSCRIPTEN__ assert(strcmp(randombytes_implementation_name(), "js") == 0); # else assert(strcmp(randombytes_implementation_name(), "sysrandom") == 0); # endif #endif randombytes(x, 1U); do { n = randombytes_random(); f |= ((n >> 24) > 1); f |= ((n >> 16) > 1) << 1; f |= ((n >> 8) > 1) << 2; f |= ((n) > 1) << 3; f |= (n > 0x7fffffff) << 4; } while (f != 0x1f); randombytes_close(); for (i = 0; i < 256; ++i) { freq[i] = 0; } for (i = 0; i < 65536; ++i) { ++freq[randombytes_uniform(256)]; } for (i = 0; i < 256; ++i) { if (!freq[i]) { printf("randombytes_uniform() test failed\n"); } } assert(randombytes_uniform(1U) == 0U); randombytes_close(); #ifndef __EMSCRIPTEN__ assert(&randombytes_internal_implementation == &randombytes_salsa20_implementation); randombytes_set_implementation(&randombytes_internal_implementation); assert(strcmp(randombytes_implementation_name(), "internal") == 0); #endif randombytes_stir(); for (i = 0; i < 256; ++i) { freq[i] = 0; } for (i = 0; i < 65536; ++i) { ++freq[randombytes_uniform(256)]; } for (i = 0; i < 256; ++i) { if (!freq[i]) { printf("randombytes_uniform() test failed\n"); } } memset(x, 0, sizeof x); randombytes_buf(x, sizeof x); for (i = 0; i < 256; ++i) { freq[i] = 0; } for (i = 0; i < sizeof x; ++i) { ++freq[255 & (int) x[i]]; } for (i = 0; i < 256; ++i) { if (!freq[i]) { printf("randombytes_buf() test failed\n"); } } assert(randombytes_uniform(1U) == 0U); randombytes_buf_deterministic(out, sizeof out, seed); for (i = 0; i < sizeof out; ++i) { printf("%02x", out[i]); } printf(" (deterministic)\n"); randombytes_close(); randombytes(x, 1U); randombytes_close(); assert(randombytes_SEEDBYTES > 0); assert(randombytes_seedbytes() == randombytes_SEEDBYTES); return 0; } static uint32_t randombytes_uniform_impl(const uint32_t upper_bound) { return upper_bound; } static int impl_tests(void) { randombytes_implementation impl = randombytes_sysrandom_implementation; uint32_t v = randombytes_random(); impl.uniform = randombytes_uniform_impl; randombytes_close(); randombytes_set_implementation(&impl); assert(randombytes_uniform(1) == 1); assert(randombytes_uniform(v) == v); assert(randombytes_uniform(v) == v); assert(randombytes_uniform(v) == v); assert(randombytes_uniform(v) == v); randombytes_close(); impl.close = NULL; randombytes_close(); return 0; } int main(void) { compat_tests(); randombytes_tests(); #ifndef __EMSCRIPTEN__ impl_tests(); #endif printf("OK\n"); #ifndef __EMSCRIPTEN__ randombytes_set_implementation(&randombytes_salsa20_implementation); #endif return 0; }