1*7246fe6cSEric Biggers // SPDX-License-Identifier: GPL-2.0-or-later 2*7246fe6cSEric Biggers /* 3*7246fe6cSEric Biggers * Copyright 2025 Google LLC 4*7246fe6cSEric Biggers */ 5*7246fe6cSEric Biggers #include <crypto/nh.h> 6*7246fe6cSEric Biggers #include <kunit/test.h> 7*7246fe6cSEric Biggers #include "nh-testvecs.h" 8*7246fe6cSEric Biggers 9*7246fe6cSEric Biggers static void test_nh(struct kunit *test) 10*7246fe6cSEric Biggers { 11*7246fe6cSEric Biggers u32 *key = kunit_kmalloc(test, NH_KEY_BYTES, GFP_KERNEL); 12*7246fe6cSEric Biggers __le64 hash[NH_NUM_PASSES]; 13*7246fe6cSEric Biggers 14*7246fe6cSEric Biggers KUNIT_ASSERT_NOT_NULL(test, key); 15*7246fe6cSEric Biggers memcpy(key, nh_test_key, NH_KEY_BYTES); 16*7246fe6cSEric Biggers le32_to_cpu_array(key, NH_KEY_WORDS); 17*7246fe6cSEric Biggers 18*7246fe6cSEric Biggers nh(key, nh_test_msg, 16, hash); 19*7246fe6cSEric Biggers KUNIT_ASSERT_MEMEQ(test, hash, nh_test_val16, NH_HASH_BYTES); 20*7246fe6cSEric Biggers 21*7246fe6cSEric Biggers nh(key, nh_test_msg, 96, hash); 22*7246fe6cSEric Biggers KUNIT_ASSERT_MEMEQ(test, hash, nh_test_val96, NH_HASH_BYTES); 23*7246fe6cSEric Biggers 24*7246fe6cSEric Biggers nh(key, nh_test_msg, 256, hash); 25*7246fe6cSEric Biggers KUNIT_ASSERT_MEMEQ(test, hash, nh_test_val256, NH_HASH_BYTES); 26*7246fe6cSEric Biggers 27*7246fe6cSEric Biggers nh(key, nh_test_msg, 1024, hash); 28*7246fe6cSEric Biggers KUNIT_ASSERT_MEMEQ(test, hash, nh_test_val1024, NH_HASH_BYTES); 29*7246fe6cSEric Biggers } 30*7246fe6cSEric Biggers 31*7246fe6cSEric Biggers static struct kunit_case nh_test_cases[] = { 32*7246fe6cSEric Biggers KUNIT_CASE(test_nh), 33*7246fe6cSEric Biggers {}, 34*7246fe6cSEric Biggers }; 35*7246fe6cSEric Biggers 36*7246fe6cSEric Biggers static struct kunit_suite nh_test_suite = { 37*7246fe6cSEric Biggers .name = "nh", 38*7246fe6cSEric Biggers .test_cases = nh_test_cases, 39*7246fe6cSEric Biggers }; 40*7246fe6cSEric Biggers kunit_test_suite(nh_test_suite); 41*7246fe6cSEric Biggers 42*7246fe6cSEric Biggers MODULE_DESCRIPTION("KUnit tests for NH"); 43*7246fe6cSEric Biggers MODULE_LICENSE("GPL"); 44