Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: testmgr - add test cases for Blake2s

As suggested by Eric for the Blake2b implementation contributed by
David, introduce a set of test vectors for Blake2s covering different
digest and key sizes.

blake2s-128 blake2s-160 blake2s-224 blake2s-256
---------------------------------------------------
len=0 | klen=0 klen=1 klen=16 klen=32
len=1 | klen=16 klen=32 klen=0 klen=1
len=7 | klen=32 klen=0 klen=1 klen=16
len=15 | klen=1 klen=16 klen=32 klen=0
len=64 | klen=0 klen=1 klen=16 klen=32
len=247 | klen=16 klen=32 klen=0 klen=1
len=256 | klen=32 klen=0 klen=1 klen=16

Cc: David Sterba <dsterba@suse.com>
Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Ard Biesheuvel and committed by
Herbert Xu
17e1df67 66d7fb94

+280 -39
+24
crypto/testmgr.c
··· 4051 4051 .hash = __VECS(blake2b_512_tv_template) 4052 4052 } 4053 4053 }, { 4054 + .alg = "blake2s-128", 4055 + .test = alg_test_hash, 4056 + .suite = { 4057 + .hash = __VECS(blakes2s_128_tv_template) 4058 + } 4059 + }, { 4060 + .alg = "blake2s-160", 4061 + .test = alg_test_hash, 4062 + .suite = { 4063 + .hash = __VECS(blakes2s_160_tv_template) 4064 + } 4065 + }, { 4066 + .alg = "blake2s-224", 4067 + .test = alg_test_hash, 4068 + .suite = { 4069 + .hash = __VECS(blakes2s_224_tv_template) 4070 + } 4071 + }, { 4072 + .alg = "blake2s-256", 4073 + .test = alg_test_hash, 4074 + .suite = { 4075 + .hash = __VECS(blakes2s_256_tv_template) 4076 + } 4077 + }, { 4054 4078 .alg = "cbc(aes)", 4055 4079 .test = alg_test_skcipher, 4056 4080 .fips_allowed = 1,
+256 -39
crypto/testmgr.h
··· 31942 31942 }, 31943 31943 }; 31944 31944 31945 - static const char blake2b_ordered_sequence[] = 31945 + static const char blake2_ordered_sequence[] = 31946 31946 "\x00\x01\x02\x03\x04\x05\x06\x07" 31947 31947 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 31948 31948 "\x10\x11\x12\x13\x14\x15\x16\x17" ··· 31981 31981 0x09, 0x44, 0x92, 0x24, 0xb5, 0x97, 0x2c, 0x41, 31982 31982 0x79, 0x0b, 0x6c, 0xf2, }, 31983 31983 }, { 31984 - .plaintext = blake2b_ordered_sequence, 31984 + .plaintext = blake2_ordered_sequence, 31985 31985 .psize = 64, 31986 31986 .digest = (u8[]){ 0x11, 0xcc, 0x66, 0x61, 0xe9, 0x22, 0xb0, 0xe4, 31987 31987 0x07, 0xe0, 0xa5, 0x72, 0x49, 0xc3, 0x8d, 0x4f, 31988 31988 0xf7, 0x6d, 0x8e, 0xc8, }, 31989 31989 }, { 31990 31990 .ksize = 32, 31991 - .key = blake2b_ordered_sequence, 31992 - .plaintext = blake2b_ordered_sequence, 31991 + .key = blake2_ordered_sequence, 31992 + .plaintext = blake2_ordered_sequence, 31993 31993 .psize = 1, 31994 31994 .digest = (u8[]){ 0x31, 0xe3, 0xd9, 0xd5, 0x4e, 0x72, 0xd8, 0x0b, 31995 31995 0x2b, 0x3b, 0xd7, 0x6b, 0x82, 0x7a, 0x1d, 0xfb, 31996 31996 0x56, 0x2f, 0x79, 0x4c, }, 31997 31997 }, { 31998 31998 .ksize = 64, 31999 - .key = blake2b_ordered_sequence, 32000 - .plaintext = blake2b_ordered_sequence, 31999 + .key = blake2_ordered_sequence, 32000 + .plaintext = blake2_ordered_sequence, 32001 32001 .psize = 7, 32002 32002 .digest = (u8[]){ 0x28, 0x20, 0xd1, 0xbe, 0x7f, 0xcc, 0xc1, 0x62, 32003 32003 0xd9, 0x0d, 0x9a, 0x4b, 0x47, 0xd1, 0x5e, 0x04, ··· 32005 32005 }, { 32006 32006 .ksize = 1, 32007 32007 .key = "B", 32008 - .plaintext = blake2b_ordered_sequence, 32008 + .plaintext = blake2_ordered_sequence, 32009 32009 .psize = 15, 32010 32010 .digest = (u8[]){ 0x45, 0xe9, 0x95, 0xb6, 0xc4, 0xe8, 0x22, 0xea, 32011 32011 0xfe, 0xd2, 0x37, 0xdb, 0x46, 0xbf, 0xf1, 0x25, 32012 32012 0xd5, 0x03, 0x1d, 0x81, }, 32013 32013 }, { 32014 32014 .ksize = 32, 32015 - .key = blake2b_ordered_sequence, 32016 - .plaintext = blake2b_ordered_sequence, 32015 + .key = blake2_ordered_sequence, 32016 + .plaintext = blake2_ordered_sequence, 32017 32017 .psize = 247, 32018 32018 .digest = (u8[]){ 0x7e, 0xb9, 0xf2, 0x9b, 0x2f, 0xc2, 0x01, 0xd4, 32019 32019 0xb0, 0x4f, 0x08, 0x2b, 0x8e, 0xbd, 0x06, 0xef, 32020 32020 0x1c, 0xc4, 0x25, 0x95, }, 32021 32021 }, { 32022 32022 .ksize = 64, 32023 - .key = blake2b_ordered_sequence, 32024 - .plaintext = blake2b_ordered_sequence, 32023 + .key = blake2_ordered_sequence, 32024 + .plaintext = blake2_ordered_sequence, 32025 32025 .psize = 256, 32026 32026 .digest = (u8[]){ 0x6e, 0x35, 0x01, 0x70, 0xbf, 0xb6, 0xc4, 0xba, 32027 32027 0x33, 0x1b, 0xa6, 0xd3, 0xc2, 0x5d, 0xb4, 0x03, ··· 32029 32029 }}; 32030 32030 32031 32031 static const struct hash_testvec blake2b_256_tv_template[] = {{ 32032 - .plaintext = blake2b_ordered_sequence, 32032 + .plaintext = blake2_ordered_sequence, 32033 32033 .psize = 7, 32034 32034 .digest = (u8[]){ 0x9d, 0xf1, 0x4b, 0x72, 0x48, 0x76, 0x4a, 0x86, 32035 32035 0x91, 0x97, 0xc3, 0x5e, 0x39, 0x2d, 0x2a, 0x6d, 32036 32036 0x6f, 0xdc, 0x5b, 0x79, 0xd5, 0x97, 0x29, 0x79, 32037 32037 0x20, 0xfd, 0x3f, 0x14, 0x91, 0xb4, 0x42, 0xd2, }, 32038 32038 }, { 32039 - .plaintext = blake2b_ordered_sequence, 32039 + .plaintext = blake2_ordered_sequence, 32040 32040 .psize = 256, 32041 32041 .digest = (u8[]){ 0x39, 0xa7, 0xeb, 0x9f, 0xed, 0xc1, 0x9a, 0xab, 32042 32042 0xc8, 0x34, 0x25, 0xc6, 0x75, 0x5d, 0xd9, 0x0e, ··· 32051 32051 0x1c, 0xfb, 0xd8, 0x3e, 0x8a, 0xbe, 0xed, 0x9c, }, 32052 32052 }, { 32053 32053 .ksize = 64, 32054 - .key = blake2b_ordered_sequence, 32055 - .plaintext = blake2b_ordered_sequence, 32054 + .key = blake2_ordered_sequence, 32055 + .plaintext = blake2_ordered_sequence, 32056 32056 .psize = 1, 32057 32057 .digest = (u8[]){ 0x34, 0x75, 0x8b, 0x64, 0x71, 0x35, 0x62, 0x82, 32058 32058 0x97, 0xfb, 0x09, 0xc7, 0x93, 0x0c, 0xd0, 0x4e, ··· 32060 32060 0x31, 0x84, 0x93, 0xe1, 0x4d, 0xe7, 0x7e, 0x55, }, 32061 32061 }, { 32062 32062 .ksize = 32, 32063 - .key = blake2b_ordered_sequence, 32064 - .plaintext = blake2b_ordered_sequence, 32063 + .key = blake2_ordered_sequence, 32064 + .plaintext = blake2_ordered_sequence, 32065 32065 .psize = 15, 32066 32066 .digest = (u8[]){ 0xce, 0x74, 0xa9, 0x2e, 0xe9, 0x40, 0x3d, 0xa2, 32067 32067 0x11, 0x4a, 0x99, 0x25, 0x7a, 0x34, 0x5d, 0x35, ··· 32070 32070 }, { 32071 32071 .ksize = 1, 32072 32072 .key = "B", 32073 - .plaintext = blake2b_ordered_sequence, 32073 + .plaintext = blake2_ordered_sequence, 32074 32074 .psize = 64, 32075 32075 .digest = (u8[]){ 0x2e, 0x84, 0xdb, 0xa2, 0x5f, 0x0e, 0xe9, 0x52, 32076 32076 0x79, 0x50, 0x69, 0x9f, 0xf1, 0xfd, 0xfc, 0x9d, ··· 32078 32078 0xbe, 0x35, 0x1a, 0x17, 0x8a, 0x2c, 0x7f, 0x7d, }, 32079 32079 }, { 32080 32080 .ksize = 64, 32081 - .key = blake2b_ordered_sequence, 32082 - .plaintext = blake2b_ordered_sequence, 32081 + .key = blake2_ordered_sequence, 32082 + .plaintext = blake2_ordered_sequence, 32083 32083 .psize = 247, 32084 32084 .digest = (u8[]){ 0x2e, 0x26, 0xf0, 0x09, 0x02, 0x65, 0x90, 0x09, 32085 32085 0xcc, 0xf5, 0x4c, 0x44, 0x74, 0x0e, 0xa0, 0xa8, ··· 32088 32088 }}; 32089 32089 32090 32090 static const struct hash_testvec blake2b_384_tv_template[] = {{ 32091 - .plaintext = blake2b_ordered_sequence, 32091 + .plaintext = blake2_ordered_sequence, 32092 32092 .psize = 1, 32093 32093 .digest = (u8[]){ 0xcc, 0x01, 0x08, 0x85, 0x36, 0xf7, 0x84, 0xf0, 32094 32094 0xbb, 0x76, 0x9e, 0x41, 0xc4, 0x95, 0x7b, 0x6d, ··· 32097 32097 0x43, 0xd1, 0x69, 0x8d, 0x14, 0x6f, 0x34, 0x8b, 32098 32098 0x2c, 0x36, 0xa3, 0x39, 0x68, 0x2b, 0xec, 0x3f, }, 32099 32099 }, { 32100 - .plaintext = blake2b_ordered_sequence, 32100 + .plaintext = blake2_ordered_sequence, 32101 32101 .psize = 247, 32102 32102 .digest = (u8[]){ 0xc8, 0xf8, 0xf0, 0xa2, 0x69, 0xfa, 0xcc, 0x4d, 32103 32103 0x32, 0x5f, 0x13, 0x88, 0xca, 0x71, 0x99, 0x8f, ··· 32107 32107 0xef, 0x48, 0x98, 0xe0, 0x56, 0x7c, 0x05, 0xd2, }, 32108 32108 }, { 32109 32109 .ksize = 32, 32110 - .key = blake2b_ordered_sequence, 32110 + .key = blake2_ordered_sequence, 32111 32111 .digest = (u8[]){ 0x15, 0x09, 0x7a, 0x90, 0x13, 0x23, 0xab, 0x0c, 32112 32112 0x0b, 0x43, 0x21, 0x9a, 0xb5, 0xc6, 0x0c, 0x2e, 32113 32113 0x7c, 0x57, 0xfc, 0xcc, 0x4b, 0x0f, 0xf0, 0x57, ··· 32117 32117 }, { 32118 32118 .ksize = 1, 32119 32119 .key = "B", 32120 - .plaintext = blake2b_ordered_sequence, 32120 + .plaintext = blake2_ordered_sequence, 32121 32121 .psize = 7, 32122 32122 .digest = (u8[]){ 0x0b, 0x82, 0x88, 0xca, 0x05, 0x2f, 0x1b, 0x15, 32123 32123 0xdc, 0xbb, 0x22, 0x27, 0x11, 0x6b, 0xf4, 0xd1, ··· 32127 32127 0x4a, 0x57, 0x0a, 0x76, 0x3c, 0x15, 0x33, 0x18, }, 32128 32128 }, { 32129 32129 .ksize = 64, 32130 - .key = blake2b_ordered_sequence, 32131 - .plaintext = blake2b_ordered_sequence, 32130 + .key = blake2_ordered_sequence, 32131 + .plaintext = blake2_ordered_sequence, 32132 32132 .psize = 15, 32133 32133 .digest = (u8[]){ 0x4a, 0x81, 0x55, 0xb9, 0x79, 0x42, 0x8c, 0xc6, 32134 32134 0x4f, 0xfe, 0xca, 0x82, 0x3b, 0xb2, 0xf7, 0xbc, ··· 32138 32138 0x7a, 0xf1, 0xc0, 0xfe, 0x57, 0xf4, 0x60, 0x49, }, 32139 32139 }, { 32140 32140 .ksize = 32, 32141 - .key = blake2b_ordered_sequence, 32142 - .plaintext = blake2b_ordered_sequence, 32141 + .key = blake2_ordered_sequence, 32142 + .plaintext = blake2_ordered_sequence, 32143 32143 .psize = 64, 32144 32144 .digest = (u8[]){ 0x34, 0xbd, 0xe1, 0x99, 0x43, 0x9f, 0x82, 0x72, 32145 32145 0xe7, 0xed, 0x94, 0x9e, 0xe1, 0x84, 0xee, 0x82, ··· 32150 32150 }, { 32151 32151 .ksize = 1, 32152 32152 .key = "B", 32153 - .plaintext = blake2b_ordered_sequence, 32153 + .plaintext = blake2_ordered_sequence, 32154 32154 .psize = 256, 32155 32155 .digest = (u8[]){ 0x22, 0x14, 0xf4, 0xb0, 0x4c, 0xa8, 0xb5, 0x7d, 32156 32156 0xa7, 0x5c, 0x04, 0xeb, 0xd8, 0x8d, 0x04, 0x71, ··· 32161 32161 }}; 32162 32162 32163 32163 static const struct hash_testvec blake2b_512_tv_template[] = {{ 32164 - .plaintext = blake2b_ordered_sequence, 32164 + .plaintext = blake2_ordered_sequence, 32165 32165 .psize = 15, 32166 32166 .digest = (u8[]){ 0x44, 0x4b, 0x24, 0x0f, 0xe3, 0xed, 0x86, 0xd0, 32167 32167 0xe2, 0xef, 0x4c, 0xe7, 0xd8, 0x51, 0xed, 0xde, ··· 32173 32173 0x2d, 0x2d, 0x2a, 0xea, 0xc3, 0x36, 0xd9, 0x58, }, 32174 32174 }, { 32175 32175 .ksize = 64, 32176 - .key = blake2b_ordered_sequence, 32176 + .key = blake2_ordered_sequence, 32177 32177 .digest = (u8[]){ 0x10, 0xeb, 0xb6, 0x77, 0x00, 0xb1, 0x86, 0x8e, 32178 32178 0xfb, 0x44, 0x17, 0x98, 0x7a, 0xcf, 0x46, 0x90, 32179 32179 0xae, 0x9d, 0x97, 0x2f, 0xb7, 0xa5, 0x90, 0xc2, ··· 32185 32185 }, { 32186 32186 .ksize = 1, 32187 32187 .key = "B", 32188 - .plaintext = blake2b_ordered_sequence, 32188 + .plaintext = blake2_ordered_sequence, 32189 32189 .psize = 1, 32190 32190 .digest = (u8[]){ 0xd2, 0x11, 0x31, 0x29, 0x3f, 0xea, 0xca, 0x72, 32191 32191 0x21, 0xe4, 0x06, 0x65, 0x05, 0x2a, 0xd1, 0x02, ··· 32197 32197 0xff, 0x3f, 0x4a, 0x69, 0xd9, 0x92, 0x26, 0x86, }, 32198 32198 }, { 32199 32199 .ksize = 32, 32200 - .key = blake2b_ordered_sequence, 32201 - .plaintext = blake2b_ordered_sequence, 32200 + .key = blake2_ordered_sequence, 32201 + .plaintext = blake2_ordered_sequence, 32202 32202 .psize = 7, 32203 32203 .digest = (u8[]){ 0xa3, 0x3e, 0x50, 0xbc, 0xfb, 0xd9, 0xf0, 0x82, 32204 32204 0xa6, 0xd1, 0xdf, 0xaf, 0x82, 0xd0, 0xcf, 0x84, ··· 32210 32210 0x69, 0x59, 0x1d, 0x3b, 0xd8, 0x19, 0x90, 0xd7, }, 32211 32211 }, { 32212 32212 .ksize = 64, 32213 - .key = blake2b_ordered_sequence, 32214 - .plaintext = blake2b_ordered_sequence, 32213 + .key = blake2_ordered_sequence, 32214 + .plaintext = blake2_ordered_sequence, 32215 32215 .psize = 64, 32216 32216 .digest = (u8[]){ 0x65, 0x67, 0x6d, 0x80, 0x06, 0x17, 0x97, 0x2f, 32217 32217 0xbd, 0x87, 0xe4, 0xb9, 0x51, 0x4e, 0x1c, 0x67, ··· 32224 32224 }, { 32225 32225 .ksize = 1, 32226 32226 .key = "B", 32227 - .plaintext = blake2b_ordered_sequence, 32227 + .plaintext = blake2_ordered_sequence, 32228 32228 .psize = 247, 32229 32229 .digest = (u8[]){ 0xc2, 0x96, 0x2c, 0x6b, 0x84, 0xff, 0xee, 0xea, 32230 32230 0x9b, 0xb8, 0x55, 0x2d, 0x6b, 0xa5, 0xd5, 0xe5, ··· 32236 32236 0x98, 0xf1, 0x02, 0x9b, 0x4c, 0x7c, 0x97, 0x1a, }, 32237 32237 }, { 32238 32238 .ksize = 32, 32239 - .key = blake2b_ordered_sequence, 32240 - .plaintext = blake2b_ordered_sequence, 32239 + .key = blake2_ordered_sequence, 32240 + .plaintext = blake2_ordered_sequence, 32241 32241 .psize = 256, 32242 32242 .digest = (u8[]){ 0x0f, 0x32, 0x05, 0x09, 0xad, 0x9f, 0x25, 0xf7, 32243 32243 0xf2, 0x00, 0x71, 0xc9, 0x9f, 0x08, 0x58, 0xd1, ··· 32247 32247 0x28, 0xe4, 0xc7, 0xa1, 0xcf, 0x6b, 0x17, 0x4e, 32248 32248 0xf1, 0x5b, 0xb5, 0x53, 0xd4, 0xa7, 0xd0, 0x5b, 32249 32249 0xae, 0x15, 0x81, 0x15, 0xd0, 0x88, 0xa0, 0x3c, }, 32250 + }}; 32251 + 32252 + static const struct hash_testvec blakes2s_128_tv_template[] = {{ 32253 + .digest = (u8[]){ 0x64, 0x55, 0x0d, 0x6f, 0xfe, 0x2c, 0x0a, 0x01, 32254 + 0xa1, 0x4a, 0xba, 0x1e, 0xad, 0xe0, 0x20, 0x0c, }, 32255 + }, { 32256 + .plaintext = blake2_ordered_sequence, 32257 + .psize = 64, 32258 + .digest = (u8[]){ 0xdc, 0x66, 0xca, 0x8f, 0x03, 0x86, 0x58, 0x01, 32259 + 0xb0, 0xff, 0xe0, 0x6e, 0xd8, 0xa1, 0xa9, 0x0e, }, 32260 + }, { 32261 + .ksize = 16, 32262 + .key = blake2_ordered_sequence, 32263 + .plaintext = blake2_ordered_sequence, 32264 + .psize = 1, 32265 + .digest = (u8[]){ 0x88, 0x1e, 0x42, 0xe7, 0xbb, 0x35, 0x80, 0x82, 32266 + 0x63, 0x7c, 0x0a, 0x0f, 0xd7, 0xec, 0x6c, 0x2f, }, 32267 + }, { 32268 + .ksize = 32, 32269 + .key = blake2_ordered_sequence, 32270 + .plaintext = blake2_ordered_sequence, 32271 + .psize = 7, 32272 + .digest = (u8[]){ 0xcf, 0x9e, 0x07, 0x2a, 0xd5, 0x22, 0xf2, 0xcd, 32273 + 0xa2, 0xd8, 0x25, 0x21, 0x80, 0x86, 0x73, 0x1c, }, 32274 + }, { 32275 + .ksize = 1, 32276 + .key = "B", 32277 + .plaintext = blake2_ordered_sequence, 32278 + .psize = 15, 32279 + .digest = (u8[]){ 0xf6, 0x33, 0x5a, 0x2c, 0x22, 0xa0, 0x64, 0xb2, 32280 + 0xb6, 0x3f, 0xeb, 0xbc, 0xd1, 0xc3, 0xe5, 0xb2, }, 32281 + }, { 32282 + .ksize = 16, 32283 + .key = blake2_ordered_sequence, 32284 + .plaintext = blake2_ordered_sequence, 32285 + .psize = 247, 32286 + .digest = (u8[]){ 0x72, 0x66, 0x49, 0x60, 0xf9, 0x4a, 0xea, 0xbe, 32287 + 0x1f, 0xf4, 0x60, 0xce, 0xb7, 0x81, 0xcb, 0x09, }, 32288 + }, { 32289 + .ksize = 32, 32290 + .key = blake2_ordered_sequence, 32291 + .plaintext = blake2_ordered_sequence, 32292 + .psize = 256, 32293 + .digest = (u8[]){ 0xd5, 0xa4, 0x0e, 0xc3, 0x16, 0xc7, 0x51, 0xa6, 32294 + 0x3c, 0xd0, 0xd9, 0x11, 0x57, 0xfa, 0x1e, 0xbb, }, 32295 + }}; 32296 + 32297 + static const struct hash_testvec blakes2s_160_tv_template[] = {{ 32298 + .plaintext = blake2_ordered_sequence, 32299 + .psize = 7, 32300 + .digest = (u8[]){ 0xb4, 0xf2, 0x03, 0x49, 0x37, 0xed, 0xb1, 0x3e, 32301 + 0x5b, 0x2a, 0xca, 0x64, 0x82, 0x74, 0xf6, 0x62, 32302 + 0xe3, 0xf2, 0x84, 0xff, }, 32303 + }, { 32304 + .plaintext = blake2_ordered_sequence, 32305 + .psize = 256, 32306 + .digest = (u8[]){ 0xaa, 0x56, 0x9b, 0xdc, 0x98, 0x17, 0x75, 0xf2, 32307 + 0xb3, 0x68, 0x83, 0xb7, 0x9b, 0x8d, 0x48, 0xb1, 32308 + 0x9b, 0x2d, 0x35, 0x05, }, 32309 + }, { 32310 + .ksize = 1, 32311 + .key = "B", 32312 + .digest = (u8[]){ 0x50, 0x16, 0xe7, 0x0c, 0x01, 0xd0, 0xd3, 0xc3, 32313 + 0xf4, 0x3e, 0xb1, 0x6e, 0x97, 0xa9, 0x4e, 0xd1, 32314 + 0x79, 0x65, 0x32, 0x93, }, 32315 + }, { 32316 + .ksize = 32, 32317 + .key = blake2_ordered_sequence, 32318 + .plaintext = blake2_ordered_sequence, 32319 + .psize = 1, 32320 + .digest = (u8[]){ 0x1c, 0x2b, 0xcd, 0x9a, 0x68, 0xca, 0x8c, 0x71, 32321 + 0x90, 0x29, 0x6c, 0x54, 0xfa, 0x56, 0x4a, 0xef, 32322 + 0xa2, 0x3a, 0x56, 0x9c, }, 32323 + }, { 32324 + .ksize = 16, 32325 + .key = blake2_ordered_sequence, 32326 + .plaintext = blake2_ordered_sequence, 32327 + .psize = 15, 32328 + .digest = (u8[]){ 0x36, 0xc3, 0x5f, 0x9a, 0xdc, 0x7e, 0xbf, 0x19, 32329 + 0x68, 0xaa, 0xca, 0xd8, 0x81, 0xbf, 0x09, 0x34, 32330 + 0x83, 0x39, 0x0f, 0x30, }, 32331 + }, { 32332 + .ksize = 1, 32333 + .key = "B", 32334 + .plaintext = blake2_ordered_sequence, 32335 + .psize = 64, 32336 + .digest = (u8[]){ 0x86, 0x80, 0x78, 0xa4, 0x14, 0xec, 0x03, 0xe5, 32337 + 0xb6, 0x9a, 0x52, 0x0e, 0x42, 0xee, 0x39, 0x9d, 32338 + 0xac, 0xa6, 0x81, 0x63, }, 32339 + }, { 32340 + .ksize = 32, 32341 + .key = blake2_ordered_sequence, 32342 + .plaintext = blake2_ordered_sequence, 32343 + .psize = 247, 32344 + .digest = (u8[]){ 0x2d, 0xd8, 0xd2, 0x53, 0x66, 0xfa, 0xa9, 0x01, 32345 + 0x1c, 0x9c, 0xaf, 0xa3, 0xe2, 0x9d, 0x9b, 0x10, 32346 + 0x0a, 0xf6, 0x73, 0xe8, }, 32347 + }}; 32348 + 32349 + static const struct hash_testvec blakes2s_224_tv_template[] = {{ 32350 + .plaintext = blake2_ordered_sequence, 32351 + .psize = 1, 32352 + .digest = (u8[]){ 0x61, 0xb9, 0x4e, 0xc9, 0x46, 0x22, 0xa3, 0x91, 32353 + 0xd2, 0xae, 0x42, 0xe6, 0x45, 0x6c, 0x90, 0x12, 32354 + 0xd5, 0x80, 0x07, 0x97, 0xb8, 0x86, 0x5a, 0xfc, 32355 + 0x48, 0x21, 0x97, 0xbb, }, 32356 + }, { 32357 + .plaintext = blake2_ordered_sequence, 32358 + .psize = 247, 32359 + .digest = (u8[]){ 0x9e, 0xda, 0xc7, 0x20, 0x2c, 0xd8, 0x48, 0x2e, 32360 + 0x31, 0x94, 0xab, 0x46, 0x6d, 0x94, 0xd8, 0xb4, 32361 + 0x69, 0xcd, 0xae, 0x19, 0x6d, 0x9e, 0x41, 0xcc, 32362 + 0x2b, 0xa4, 0xd5, 0xf6, }, 32363 + }, { 32364 + .ksize = 16, 32365 + .key = blake2_ordered_sequence, 32366 + .digest = (u8[]){ 0x32, 0xc0, 0xac, 0xf4, 0x3b, 0xd3, 0x07, 0x9f, 32367 + 0xbe, 0xfb, 0xfa, 0x4d, 0x6b, 0x4e, 0x56, 0xb3, 32368 + 0xaa, 0xd3, 0x27, 0xf6, 0x14, 0xbf, 0xb9, 0x32, 32369 + 0xa7, 0x19, 0xfc, 0xb8, }, 32370 + }, { 32371 + .ksize = 1, 32372 + .key = "B", 32373 + .plaintext = blake2_ordered_sequence, 32374 + .psize = 7, 32375 + .digest = (u8[]){ 0x73, 0xad, 0x5e, 0x6d, 0xb9, 0x02, 0x8e, 0x76, 32376 + 0xf2, 0x66, 0x42, 0x4b, 0x4c, 0xfa, 0x1f, 0xe6, 32377 + 0x2e, 0x56, 0x40, 0xe5, 0xa2, 0xb0, 0x3c, 0xe8, 32378 + 0x7b, 0x45, 0xfe, 0x05, }, 32379 + }, { 32380 + .ksize = 32, 32381 + .key = blake2_ordered_sequence, 32382 + .plaintext = blake2_ordered_sequence, 32383 + .psize = 15, 32384 + .digest = (u8[]){ 0x16, 0x60, 0xfb, 0x92, 0x54, 0xb3, 0x6e, 0x36, 32385 + 0x81, 0xf4, 0x16, 0x41, 0xc3, 0x3d, 0xd3, 0x43, 32386 + 0x84, 0xed, 0x10, 0x6f, 0x65, 0x80, 0x7a, 0x3e, 32387 + 0x25, 0xab, 0xc5, 0x02, }, 32388 + }, { 32389 + .ksize = 16, 32390 + .key = blake2_ordered_sequence, 32391 + .plaintext = blake2_ordered_sequence, 32392 + .psize = 64, 32393 + .digest = (u8[]){ 0xca, 0xaa, 0x39, 0x67, 0x9c, 0xf7, 0x6b, 0xc7, 32394 + 0xb6, 0x82, 0xca, 0x0e, 0x65, 0x36, 0x5b, 0x7c, 32395 + 0x24, 0x00, 0xfa, 0x5f, 0xda, 0x06, 0x91, 0x93, 32396 + 0x6a, 0x31, 0x83, 0xb5, }, 32397 + }, { 32398 + .ksize = 1, 32399 + .key = "B", 32400 + .plaintext = blake2_ordered_sequence, 32401 + .psize = 256, 32402 + .digest = (u8[]){ 0x90, 0x02, 0x26, 0xb5, 0x06, 0x9c, 0x36, 0x86, 32403 + 0x94, 0x91, 0x90, 0x1e, 0x7d, 0x2a, 0x71, 0xb2, 32404 + 0x48, 0xb5, 0xe8, 0x16, 0xfd, 0x64, 0x33, 0x45, 32405 + 0xb3, 0xd7, 0xec, 0xcc, }, 32406 + }}; 32407 + 32408 + static const struct hash_testvec blakes2s_256_tv_template[] = {{ 32409 + .plaintext = blake2_ordered_sequence, 32410 + .psize = 15, 32411 + .digest = (u8[]){ 0xd9, 0x7c, 0x82, 0x8d, 0x81, 0x82, 0xa7, 0x21, 32412 + 0x80, 0xa0, 0x6a, 0x78, 0x26, 0x83, 0x30, 0x67, 32413 + 0x3f, 0x7c, 0x4e, 0x06, 0x35, 0x94, 0x7c, 0x04, 32414 + 0xc0, 0x23, 0x23, 0xfd, 0x45, 0xc0, 0xa5, 0x2d, }, 32415 + }, { 32416 + .ksize = 32, 32417 + .key = blake2_ordered_sequence, 32418 + .digest = (u8[]){ 0x48, 0xa8, 0x99, 0x7d, 0xa4, 0x07, 0x87, 0x6b, 32419 + 0x3d, 0x79, 0xc0, 0xd9, 0x23, 0x25, 0xad, 0x3b, 32420 + 0x89, 0xcb, 0xb7, 0x54, 0xd8, 0x6a, 0xb7, 0x1a, 32421 + 0xee, 0x04, 0x7a, 0xd3, 0x45, 0xfd, 0x2c, 0x49, }, 32422 + }, { 32423 + .ksize = 1, 32424 + .key = "B", 32425 + .plaintext = blake2_ordered_sequence, 32426 + .psize = 1, 32427 + .digest = (u8[]){ 0x22, 0x27, 0xae, 0xaa, 0x6e, 0x81, 0x56, 0x03, 32428 + 0xa7, 0xe3, 0xa1, 0x18, 0xa5, 0x9a, 0x2c, 0x18, 32429 + 0xf4, 0x63, 0xbc, 0x16, 0x70, 0xf1, 0xe7, 0x4b, 32430 + 0x00, 0x6d, 0x66, 0x16, 0xae, 0x9e, 0x74, 0x4e, }, 32431 + }, { 32432 + .ksize = 16, 32433 + .key = blake2_ordered_sequence, 32434 + .plaintext = blake2_ordered_sequence, 32435 + .psize = 7, 32436 + .digest = (u8[]){ 0x58, 0x5d, 0xa8, 0x60, 0x1c, 0xa4, 0xd8, 0x03, 32437 + 0x86, 0x86, 0x84, 0x64, 0xd7, 0xa0, 0x8e, 0x15, 32438 + 0x2f, 0x05, 0xa2, 0x1b, 0xbc, 0xef, 0x7a, 0x34, 32439 + 0xb3, 0xc5, 0xbc, 0x4b, 0xf0, 0x32, 0xeb, 0x12, }, 32440 + }, { 32441 + .ksize = 32, 32442 + .key = blake2_ordered_sequence, 32443 + .plaintext = blake2_ordered_sequence, 32444 + .psize = 64, 32445 + .digest = (u8[]){ 0x89, 0x75, 0xb0, 0x57, 0x7f, 0xd3, 0x55, 0x66, 32446 + 0xd7, 0x50, 0xb3, 0x62, 0xb0, 0x89, 0x7a, 0x26, 32447 + 0xc3, 0x99, 0x13, 0x6d, 0xf0, 0x7b, 0xab, 0xab, 32448 + 0xbd, 0xe6, 0x20, 0x3f, 0xf2, 0x95, 0x4e, 0xd4, }, 32449 + }, { 32450 + .ksize = 1, 32451 + .key = "B", 32452 + .plaintext = blake2_ordered_sequence, 32453 + .psize = 247, 32454 + .digest = (u8[]){ 0x2e, 0x74, 0x1c, 0x1d, 0x03, 0xf4, 0x9d, 0x84, 32455 + 0x6f, 0xfc, 0x86, 0x32, 0x92, 0x49, 0x7e, 0x66, 32456 + 0xd7, 0xc3, 0x10, 0x88, 0xfe, 0x28, 0xb3, 0xe0, 32457 + 0xbf, 0x50, 0x75, 0xad, 0x8e, 0xa4, 0xe6, 0xb2, }, 32458 + }, { 32459 + .ksize = 16, 32460 + .key = blake2_ordered_sequence, 32461 + .plaintext = blake2_ordered_sequence, 32462 + .psize = 256, 32463 + .digest = (u8[]){ 0xb9, 0xd2, 0x81, 0x0e, 0x3a, 0xb1, 0x62, 0x9b, 32464 + 0xad, 0x44, 0x05, 0xf4, 0x92, 0x2e, 0x99, 0xc1, 32465 + 0x4a, 0x47, 0xbb, 0x5b, 0x6f, 0xb2, 0x96, 0xed, 32466 + 0xd5, 0x06, 0xb5, 0x3a, 0x7c, 0x7a, 0x65, 0x1d, }, 32250 32467 }}; 32251 32468 32252 32469 #endif /* _CRYPTO_TESTMGR_H */