aboutsummaryrefslogtreecommitdiff
path: root/com/BLAKE2/test
diff options
context:
space:
mode:
Diffstat (limited to 'com/BLAKE2/test')
-rw-r--r--com/BLAKE2/test/blake2s_kat.c31
-rwxr-xr-xcom/BLAKE2/test/blake2s_kat.py40
-rw-r--r--com/BLAKE2/test/blake2s_selftest.c102
3 files changed, 0 insertions, 173 deletions
diff --git a/com/BLAKE2/test/blake2s_kat.c b/com/BLAKE2/test/blake2s_kat.c
deleted file mode 100644
index 0581c18..0000000
--- a/com/BLAKE2/test/blake2s_kat.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <assert.h>
-#include <blake2s.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "blake2s_kat.h"
-
-int
-main(void)
-{
- uint8_t in[256];
- for (int i = 0; i < 256; ++i) in[i] = i;
- uint8_t out[32];
-
- for (unsigned i = 0; i < KATs_len; ++i) {
- assert(BLAKE2s(out, 32, NULL, 0, in, i) == 0);
- assert(memcmp(out, KATs[i], 32) == 0);
- }
-
- for (unsigned i = 0; i < 1; ++i) {
- _Static_assert(sizeof(KAT_secret) == 32, "sizeof KAT_secret");
- assert(BLAKE2s(out, 32, KAT_secret, 32, in, i) == 0);
-
- for (unsigned j = 0; j < 32; ++j) printf("%02x ", out[j]);
- printf("\n");
- for (unsigned j = 0; j < 32; ++j) printf("%02x ", secret_KATs[i][j]);
- printf("\n");
-
- assert(memcmp(out, secret_KATs[i], 32) == 0);
- }
-}
diff --git a/com/BLAKE2/test/blake2s_kat.py b/com/BLAKE2/test/blake2s_kat.py
deleted file mode 100755
index 2dd5370..0000000
--- a/com/BLAKE2/test/blake2s_kat.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python3
-# Known Answer Test generator
-
-import json
-import hashlib
-import secrets
-
-def blake2s(w, key):
- ctx = hashlib.blake2s(key=key)
- ctx.update(w)
- return ctx.digest().hex()
-
-def out(s):
- o = [s[i:i+2] for i in range(0, len(s), 2)] # split into pairs
- o = [f'0x{i}' for i in o] # prepend 0x and join
- return ', '.join(o)
-
-if __name__ == '__main__':
- w = b''
- for i in range(0, 256):
- w += i.to_bytes(1, 'little')
- k = secrets.token_bytes(32)
-
- print('#pragma once\n')
- print(f'static const unsigned KATs_len = 256;')
- print(f'static const uint8_t KAT_secret[32] = {{ {", ".join([hex(i) for i in k])} }};')
-
- print(f'static const uint8_t KATs[256][32] = {{')
- for i in range(0, 256):
- o = blake2s(w[0:i], b'')
- print(f' // {i}')
- print(f' {{ {out(o)} }},')
- print(f'}};')
-
- print(f'static const uint8_t secret_KATs[256][32] = {{')
- for i in range(0, 256):
- o = blake2s(w[0:i], k)
- print(f' // {i}')
- print(f' {{ {out(o)} }},')
- print(f'}};')
diff --git a/com/BLAKE2/test/blake2s_selftest.c b/com/BLAKE2/test/blake2s_selftest.c
deleted file mode 100644
index 3ada150..0000000
--- a/com/BLAKE2/test/blake2s_selftest.c
+++ /dev/null
@@ -1,102 +0,0 @@
-// test_main.c
-// Self test Modules for BLAKE2b and BLAKE2s -- and a stub main().
-
-#include "blake2s.h"
-#include <assert.h>
-#include <stdio.h>
-
-_Static_assert(sizeof(struct BLAKE2s_param) == (8 * sizeof(uint32_t)), "sizeof struct BLAKE2s_param");
-
-// Deterministic sequences (Fibonacci generator).
-static void
-selftest_seq(uint8_t *out, size_t len, uint32_t seed)
-{
- size_t i;
- uint32_t t, a, b;
-
- a = 0xDEAD4BAD * seed; // prime
- b = 1;
-
- for (i = 0; i < len; i++) { // fill the buf
- t = a + b;
- a = b;
- b = t;
- out[i] = (t >> 24) & 0xFF;
- }
-}
-
-// BLAKE2s self-test validation. Return 0 when OK.
-int
-blake2s_selftest()
-{
- // Grand hash of hash results.
- const uint8_t blake2s_res[32] = {0x6A, 0x41, 0x1F, 0x08, 0xCE, 0x25, 0xAD, 0xCD, 0xFB, 0x02, 0xAB,
- 0xA6, 0x41, 0x45, 0x1C, 0xEC, 0x53, 0xC5, 0x98, 0xB2, 0x4F, 0x4F,
- 0xC7, 0x87, 0xFB, 0xDC, 0x88, 0x79, 0x7F, 0x4C, 0x1D, 0xFE};
- // Parameter sets.
- const size_t b2s_md_len[4] = {16, 20, 28, 32};
- const size_t b2s_in_len[6] = {0, 3, 64, 65, 255, 1024};
-
- size_t i, j, outlen, inlen;
- uint8_t in[1024], md[32], key[32];
- struct BLAKE2s_ctx ctx;
-
- // 256-bit hash for testing.
- if (BLAKE2s_init(&ctx, 32, NULL, 0)) return -1;
-
- for (i = 0; i < 4; i++) {
- outlen = b2s_md_len[i];
- for (j = 0; j < 6; j++) {
- inlen = b2s_in_len[j];
-
- selftest_seq(in, inlen, inlen); // unkeyed hash
- BLAKE2s(md, outlen, NULL, 0, in, inlen);
- BLAKE2s_update(&ctx, md, outlen); // hash the hash
-
- selftest_seq(key, outlen, outlen); // keyed hash
- BLAKE2s(md, outlen, key, outlen, in, inlen);
- BLAKE2s_update(&ctx, md, outlen); // hash the hash
- }
- }
-
- // Compute and compare the hash of hashes.
- BLAKE2s_final(&ctx, md);
- for (i = 0; i < 32; i++) {
- if (md[i] != blake2s_res[i]) return -1;
- }
-
- return 0;
-}
-
-int
-main(void)
-{
- // functions
- assert(rotr_u32(0xdecafade, 16) == 0xfadedeca);
- assert(rotr_u32(0xdecafade, 8) == 0xdedecafa);
-
- const int good = blake2s_selftest();
- printf("blake2s_selftest() = %s\n", good ? "FAIL" : "OK");
-
- char *in = "abc";
- size_t inlen = 3;
-
- uint8_t out[32];
- BLAKE2s(out, 32, NULL, 0, in, inlen);
-
- const uint8_t blake2s_res[32] = {0x50, 0x8C, 0x5E, 0x8C, 0x32, 0x7C, 0x14, 0xE2, 0xE1, 0xA7, 0x2B,
- 0xA3, 0x4E, 0xEB, 0x45, 0x2F, 0x37, 0x45, 0x8B, 0x20, 0x9E, 0xD6,
- 0x3A, 0x29, 0x4D, 0x99, 0x9B, 0x4C, 0x86, 0x67, 0x59, 0x82};
-
- for (unsigned i = 0; i < 32; i++) {
- if (out[i] != blake2s_res[i]) {
- printf("digest failed");
- printf("\nout: ");
- for (unsigned n = 0; n < 32; ++n) printf(" %02x", out[n]);
- printf("\nres: ");
- for (unsigned n = 0; n < 32; ++n) printf(" %02x", blake2s_res[n]);
- return -1;
- }
- }
- return good;
-}