1 1.1 riastrad 2 1.1 riastrad #define TEST_NAME "pwhash_scrypt_ll" 3 1.1 riastrad #include "cmptest.h" 4 1.1 riastrad 5 1.1 riastrad static const char * passwd1 = ""; 6 1.1 riastrad static const char * salt1 = ""; 7 1.1 riastrad static const uint64_t N1 = 16U; 8 1.1 riastrad static const uint32_t r1 = 1U; 9 1.1 riastrad static const uint32_t p1 = 1U; 10 1.1 riastrad 11 1.1 riastrad static const char * passwd2 = "password"; 12 1.1 riastrad static const char * salt2 = "NaCl"; 13 1.1 riastrad static const uint64_t N2 = 1024U; 14 1.1 riastrad static const uint32_t r2 = 8U; 15 1.1 riastrad static const uint32_t p2 = 16U; 16 1.1 riastrad 17 1.1 riastrad static const char * passwd3 = "pleaseletmein"; 18 1.1 riastrad static const char * salt3 = "SodiumChloride"; 19 1.1 riastrad static const uint64_t N3 = 16384U; 20 1.1 riastrad static const uint32_t r3 = 8U; 21 1.1 riastrad static const uint32_t p3 = 1U; 22 1.1 riastrad 23 1.1 riastrad static void 24 1.1 riastrad tv(const char *passwd, const char *salt, uint64_t N, uint32_t r, uint32_t p) 25 1.1 riastrad { 26 1.1 riastrad uint8_t data[64]; 27 1.1 riastrad size_t i; 28 1.1 riastrad size_t olen = (sizeof data / sizeof data[0]); 29 1.1 riastrad size_t passwd_len = strlen(passwd); 30 1.1 riastrad size_t salt_len = strlen(salt); 31 1.1 riastrad int line_items = 0; 32 1.1 riastrad 33 1.1 riastrad if (crypto_pwhash_scryptsalsa208sha256_ll( 34 1.1 riastrad (const uint8_t *) passwd, passwd_len, (const uint8_t *) salt, 35 1.1 riastrad salt_len, N, r, p, data, olen) != 0) { 36 1.1 riastrad printf("pwhash_scryptsalsa208sha256_ll([%s],[%s]) failure\n", passwd, 37 1.1 riastrad salt); 38 1.1 riastrad return; 39 1.1 riastrad } 40 1.1 riastrad 41 1.1 riastrad printf("scrypt('%s', '%s', %lu, %lu, %lu, %lu) =\n", passwd, salt, 42 1.1 riastrad (unsigned long) N, (unsigned long) r, (unsigned long) p, 43 1.1 riastrad (unsigned long) olen); 44 1.1 riastrad 45 1.1 riastrad for (i = 0; i < olen; i++) { 46 1.1 riastrad printf("%02x%c", data[i], line_items < 15 ? ' ' : '\n'); 47 1.1 riastrad line_items = line_items < 15 ? line_items + 1 : 0; 48 1.1 riastrad } 49 1.1 riastrad } 50 1.1 riastrad 51 1.1 riastrad int 52 1.1 riastrad main(void) 53 1.1 riastrad { 54 1.1 riastrad tv(passwd1, salt1, N1, r1, p1); 55 1.1 riastrad tv(passwd2, salt2, N2, r2, p2); 56 1.1 riastrad tv(passwd3, salt3, N3, r3, p3); 57 1.1 riastrad 58 1.1 riastrad return 0; 59 1.1 riastrad } 60