Blame SOURCES/libsodium-1.0.18/test/default/pwhash_scrypt_ll.c

rdobuilder 775784
rdobuilder 775784
#define TEST_NAME "pwhash_scrypt_ll"
rdobuilder 775784
#include "cmptest.h"
rdobuilder 775784
rdobuilder 775784
static const char *   passwd1 = "";
rdobuilder 775784
static const char *   salt1   = "";
rdobuilder 775784
static const uint64_t N1      = 16U;
rdobuilder 775784
static const uint32_t r1      = 1U;
rdobuilder 775784
static const uint32_t p1      = 1U;
rdobuilder 775784
rdobuilder 775784
static const char *   passwd2 = "password";
rdobuilder 775784
static const char *   salt2   = "NaCl";
rdobuilder 775784
static const uint64_t N2      = 1024U;
rdobuilder 775784
static const uint32_t r2      = 8U;
rdobuilder 775784
static const uint32_t p2      = 16U;
rdobuilder 775784
rdobuilder 775784
static const char *   passwd3 = "pleaseletmein";
rdobuilder 775784
static const char *   salt3   = "SodiumChloride";
rdobuilder 775784
static const uint64_t N3      = 16384U;
rdobuilder 775784
static const uint32_t r3      = 8U;
rdobuilder 775784
static const uint32_t p3      = 1U;
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
tv(const char *passwd, const char *salt, uint64_t N, uint32_t r, uint32_t p)
rdobuilder 775784
{
rdobuilder 775784
    uint8_t data[64];
rdobuilder 775784
    size_t  i;
rdobuilder 775784
    size_t  olen       = (sizeof data / sizeof data[0]);
rdobuilder 775784
    size_t  passwd_len = strlen(passwd);
rdobuilder 775784
    size_t  salt_len   = strlen(salt);
rdobuilder 775784
    int     line_items  = 0;
rdobuilder 775784
rdobuilder 775784
    if (crypto_pwhash_scryptsalsa208sha256_ll(
rdobuilder 775784
            (const uint8_t *) passwd, passwd_len, (const uint8_t *) salt,
rdobuilder 775784
            salt_len, N, r, p, data, olen) != 0) {
rdobuilder 775784
        printf("pwhash_scryptsalsa208sha256_ll([%s],[%s]) failure\n", passwd,
rdobuilder 775784
               salt);
rdobuilder 775784
        return;
rdobuilder 775784
    }
rdobuilder 775784
rdobuilder 775784
    printf("scrypt('%s', '%s', %lu, %lu, %lu, %lu) =\n", passwd, salt,
rdobuilder 775784
           (unsigned long) N, (unsigned long) r, (unsigned long) p,
rdobuilder 775784
           (unsigned long) olen);
rdobuilder 775784
rdobuilder 775784
    for (i = 0; i < olen; i++) {
rdobuilder 775784
        printf("%02x%c", data[i], line_items < 15 ? ' ' : '\n');
rdobuilder 775784
        line_items = line_items < 15 ? line_items + 1 : 0;
rdobuilder 775784
    }
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
int
rdobuilder 775784
main(void)
rdobuilder 775784
{
rdobuilder 775784
    tv(passwd1, salt1, N1, r1, p1);
rdobuilder 775784
    tv(passwd2, salt2, N2, r2, p2);
rdobuilder 775784
    tv(passwd3, salt3, N3, r3, p3);
rdobuilder 775784
rdobuilder 775784
    return 0;
rdobuilder 775784
}