Sha256: 7c8378fe37d6e06ea9e17b2427bd06601535e33064d02c71a26fecffd88bcbfb
Contents?: true
Size: 1.54 KB
Versions: 3
Compression:
Stored size: 1.54 KB
Contents
/* * crypto_verify/try.c version 20090118 * D. J. Bernstein * Public domain. */ #include <stdlib.h> #include "crypto_verify.h" extern unsigned char *alignedcalloc(unsigned long long); const char *primitiveimplementation = crypto_verify_IMPLEMENTATION; static unsigned char *x; static unsigned char *y; void preallocate(void) { } void allocate(void) { x = alignedcalloc(crypto_verify_BYTES); y = alignedcalloc(crypto_verify_BYTES); } void predoit(void) { } void doit(void) { crypto_verify(x,y); } static const char *check(void) { int r = crypto_verify(x,y); if (r == 0) { if (memcmp(x,y,crypto_verify_BYTES)) return "different strings pass verify"; } else if (r == -1) { if (!memcmp(x,y,crypto_verify_BYTES)) return "equal strings fail verify"; } else { return "weird return value from verify"; } return 0; } char checksum[2]; const char *checksum_compute(void) { long long tests; long long i; long long j; const char *c; for (tests = 0;tests < 100000;++tests) { for (i = 0;i < crypto_verify_BYTES;++i) x[i] = random(); for (i = 0;i < crypto_verify_BYTES;++i) y[i] = random(); c = check(); if (c) return c; for (i = 0;i < crypto_verify_BYTES;++i) y[i] = x[i]; c = check(); if (c) return c; y[random() % crypto_verify_BYTES] = random(); c = check(); if (c) return c; y[random() % crypto_verify_BYTES] = random(); c = check(); if (c) return c; y[random() % crypto_verify_BYTES] = random(); c = check(); if (c) return c; } checksum[0] = '0'; checksum[1] = 0; return 0; }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby_nacl-0.1.2 | ext/ruby_nacl/NaCl/crypto_verify/try.c |
ruby_nacl-0.1.1 | ext/ruby_nacl/NaCl/crypto_verify/try.c |
ruby_nacl-0.1.0 | ext/ruby_nacl/NaCl/crypto_verify/try.c |