2ee56aad31
AES-CMAC is a FIPS allowed algorithm, and fips140.ko already has arm64 implementations of it. Meanwhile, GKI includes both these arm64 implementations as well as the "cmac" template. Add the "cmac" template to fips140.ko too and add a self-test for AES-CMAC, so that we can include AES-CMAC in the set of algorithms which will be certified. As with a number of the other algorithms, the criteria for which algorithms need to be in the certified set are still not particularly clear, but the latest guidance we've received is to error on the side of including algorithms. Bug: 153614920 Bug: 188620248 Change-Id: I6c1d9281fe848a7101d5ef94ab48e5a41bbcc6f8 Signed-off-by: Eric Biggers <ebiggers@google.com> (cherry picked from commit 038dc9f2cc956cab561bd9d50120920010867b75)
69 lines
2.7 KiB
C
69 lines
2.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/* Copyright 2021 Google LLC */
|
|
|
|
/*
|
|
* This header was automatically generated by gen_fips140_testvecs.py.
|
|
* Don't edit it directly.
|
|
*/
|
|
|
|
static const u8 fips_message[32] __initconst =
|
|
"This is a 32-byte test message.";
|
|
|
|
static const u8 fips_aes_key[16] __initconst = "128-bit AES key";
|
|
|
|
static const u8 fips_aes_iv[16] __initconst = "ABCDEFGHIJKLMNOP";
|
|
|
|
static const u8 fips_aes_cbc_ciphertext[32] __initconst =
|
|
"\x4c\x3e\xeb\x38\x8d\x1f\x28\xfd\xa2\x3b\xa9\xda\x36\xf2\x99\xe2"
|
|
"\x84\x84\x66\x37\x0a\x53\x68\x2f\x17\x95\x8d\x7f\xca\x5a\x68\x4e";
|
|
|
|
static const u8 fips_aes_ecb_ciphertext[32] __initconst =
|
|
"\xc1\x9d\xe6\xb8\xb2\x90\xff\xfe\xf2\x77\x18\xb0\x55\xd3\xee\xa9"
|
|
"\xe2\x6f\x4a\x32\x67\xfd\xb7\xa5\x2f\x4b\x6e\x1a\x86\x2b\x6e\x3a";
|
|
|
|
static const u8 fips_aes_ctr_ciphertext[32] __initconst =
|
|
"\xed\x06\x2c\xd0\xbc\x48\xd1\x2e\x6a\x4e\x13\xe9\xaa\x17\x40\xca"
|
|
"\x00\xb4\xaf\x3b\x4f\xee\x73\xd6\x6c\x41\xf6\x4c\x8b\x0d\x6a\x0f";
|
|
|
|
static const u8 fips_aes_gcm_assoc[22] __initconst = "associated data string";
|
|
|
|
static const u8 fips_aes_gcm_ciphertext[48] __initconst =
|
|
"\x37\x88\x3e\x1d\x58\x50\xda\x10\x07\xeb\x52\xdf\xea\x0a\x54\xd4"
|
|
"\x44\xbf\x88\x2a\xf3\x03\x03\x84\xaf\x8b\x96\xbd\xea\x65\x60\x6f"
|
|
"\x82\xfa\x51\xf4\x28\xad\x0c\xf1\xce\x0f\x91\xdd\x1a\x4c\x77\x5f";
|
|
|
|
static const u8 fips_aes_xts_key[32] __initconst =
|
|
"This is an AES-128-XTS key.";
|
|
|
|
static const u8 fips_aes_xts_ciphertext[32] __initconst =
|
|
"\x4f\xf7\x9f\x6c\x00\xa8\x30\xdf\xff\xf3\x25\x9c\xf6\x0b\x1b\xfd"
|
|
"\x3b\x34\x5e\x67\x7c\xf8\x8b\x68\x9a\xb9\x5a\x89\x51\x51\xbd\x35";
|
|
|
|
static const u8 fips_aes_cmac_digest[16] __initconst =
|
|
"\x0c\x05\xda\x64\x51\x0c\x8e\x6c\x86\x52\x46\xa8\x2d\xb1\xfe\x0f";
|
|
|
|
static const u8 fips_hmac_key[16] __initconst = "128-bit HMAC key";
|
|
|
|
static const u8 fips_sha1_digest[20] __initconst =
|
|
"\x1b\x78\xc7\x4b\xd5\xd4\x83\xb1\x58\xc5\x96\x83\x4f\x16\x8d\x15"
|
|
"\xb4\xaa\x22\x8c";
|
|
|
|
static const u8 fips_sha256_digest[32] __initconst =
|
|
"\x4e\x11\x83\x0c\x53\x80\x1e\x5f\x9b\x38\x33\x38\xe8\x74\x43\xb0"
|
|
"\xc1\x3a\xbe\xbf\x75\xf0\x12\x0f\x21\x33\xf5\x16\x33\xf1\xb0\x81";
|
|
|
|
static const u8 fips_hmac_sha256_digest[32] __initconst =
|
|
"\x63\x0e\xb5\x73\x79\xfc\xaf\x5f\x86\xe3\xaf\xf0\xc8\x36\xef\xd5"
|
|
"\x35\x8d\x40\x25\x38\xb3\x65\x72\x98\xf3\x59\xd8\x1e\x54\x4c\xa1";
|
|
|
|
static const u8 fips_sha512_digest[64] __initconst =
|
|
"\x32\xe0\x44\x23\xbd\xe3\xec\x28\xbf\xf1\x34\x11\xd5\xae\xbf\xd5"
|
|
"\xc0\x8e\xb5\xa1\x04\xef\x2f\x07\x84\xf1\xd9\x83\x0f\x6c\x31\xab"
|
|
"\xf7\xe7\x57\xfa\xf7\xae\xf0\x6f\xb2\x16\x08\x32\xcf\xc7\xef\x35"
|
|
"\xb3\x3b\x51\xb9\xfd\xe7\xff\x5e\xb2\x8b\xc6\x79\xe6\x14\x04\xb4";
|
|
|
|
/*
|
|
* This header was automatically generated by gen_fips140_testvecs.py.
|
|
* Don't edit it directly.
|
|
*/
|