QortalOS Brooklyn for Raspberry Pi 4
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

94 lines
3.9 KiB

/* $Id: test_sha2.c 154 2010-04-26 17:00:24Z tp $ */
/*
* Unit tests for the SHA-224 and SHA-256 hash functions.
*
* ==========================(LICENSE BEGIN)============================
*
* Copyright (c) 2007-2010 Projet RNRT SAPHIR
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* ===========================(LICENSE END)=============================
*
* @author Thomas Pornin <[email protected]>
*/
#include "sph_sha2.h"
#include "test_digest_helper.c"
TEST_DIGEST_INTERNAL(SHA-224, sha224, 28)
TEST_DIGEST_INTERNAL_BITS(SHA-224, sha224, 28)
TEST_DIGEST_INTERNAL(SHA-256, sha256, 32)
TEST_DIGEST_INTERNAL_BITS(SHA-256, sha256, 32)
static void
test_sha2(void)
{
test_sha224_internal("abc",
"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7");
test_sha224_internal("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlm"
"nomnopnopq",
"75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525");
KAT_MILLION_A(SHA-224, sha224, 28,
"20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67");
test_sha256_internal("abc",
"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad");
test_sha256_internal("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlm"
"nomnopnopq",
"248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1");
KAT_MILLION_A(SHA-256, sha256, 32,
"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0");
test_sha224_internal_bits("68", 3,
"e3b048552c3c387bcab37f6eb06bb79b96a4aee5ff27f51531a9551c");
test_sha224_internal_bits("07", 0,
"00ecd5f138422b8ad74c9799fd826c531bad2fcabc7450bee2aa8c2a");
test_sha224_internal_bits("f07006f25a0bea68cd76a29587c28da0", 5,
"1b01db6cb4a9e43ded1516beb3db0b87b6d1ea43187462c608137150");
test_sha224_internal_bits("18804005dd4fbd1556299d6f9d93df62", 0,
"df90d78aa78821c99b40ba4c966921accd8ffb1e98ac388e56191db1");
test_sha224_internal_bits("a2be6e463281090294d9ce94826569423a3a305e"
"d5e2116cd4a4c987fc0657006491b149ccd4b51130ac62b19dc248c744"
"543d20cd3952dced1f06cc3b18b91f3f55633ecc3085f4907060d2e0", 5,
"54bea6eab8195a2eb0a7906a4b4a876666300eefbd1f3b8474f9cd57");
test_sha256_internal_bits("68", 3,
"d6d3e02a31a84a8caa9718ed6c2057be"
"09db45e7823eb5079ce7a573a3760f95");
test_sha256_internal_bits("19", 0,
"68aa2e2ee5dff96e3355e6c7ee373e3d"
"6a4e17f75f9518d843709c0c9bc3e3d4");
test_sha256_internal_bits("be2746c6db52765fdb2f88700f9a7360", 5,
"77ec1dc89c821ff2a1279089fa091b35"
"b8cd960bcaf7de01c6a7680756beb972");
test_sha256_internal_bits("e3d72570dcdd787ce3887ab2cd684652", 0,
"175ee69b02ba9b58e2b0a5fd13819cea"
"573f3940a94f825128cf4209beabb4e8");
test_sha256_internal_bits("3e740371c810c2b99fc04e804907ef7cf26be28b"
"57cb58a3e2f3c007166e49c12e9ba34c0104069129ea7615642545703a"
"2bd901e16eb0e05deba014ebff6406a07d54364eff742da779b0b3a0", 5,
"3e9ad6468bbbad2ac3c2cdc292e018ba"
"5fd70b960cf1679777fce708fdb066e9");
}
UTEST_MAIN("SHA-224 / SHA-256", test_sha2)