sha3-testvecs.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /* This file was generated by: ./scripts/crypto/gen-hash-testvecs.py sha3 */
  3. /* SHA3-256 test vectors */
  4. static const struct {
  5. size_t data_len;
  6. u8 digest[SHA3_256_DIGEST_SIZE];
  7. } hash_testvecs[] = {
  8. {
  9. .data_len = 0,
  10. .digest = {
  11. 0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66,
  12. 0x51, 0xc1, 0x47, 0x56, 0xa0, 0x61, 0xd6, 0x62,
  13. 0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa,
  14. 0x82, 0xd8, 0x0a, 0x4b, 0x80, 0xf8, 0x43, 0x4a,
  15. },
  16. },
  17. {
  18. .data_len = 1,
  19. .digest = {
  20. 0x11, 0x03, 0xe7, 0x84, 0x51, 0x50, 0x86, 0x35,
  21. 0x71, 0x8a, 0x70, 0xe3, 0xc4, 0x26, 0x7b, 0x21,
  22. 0x02, 0x13, 0xa0, 0x81, 0xe8, 0xe6, 0x14, 0x25,
  23. 0x07, 0x34, 0xe5, 0xc5, 0x40, 0x06, 0xf2, 0x8b,
  24. },
  25. },
  26. {
  27. .data_len = 2,
  28. .digest = {
  29. 0x2f, 0x6f, 0x6d, 0x47, 0x48, 0x52, 0x11, 0xb9,
  30. 0xe4, 0x3d, 0xc8, 0x71, 0xcf, 0xb2, 0xee, 0xae,
  31. 0x5b, 0xf4, 0x12, 0x84, 0x5b, 0x1c, 0xec, 0x6c,
  32. 0xc1, 0x66, 0x88, 0xaa, 0xc3, 0x40, 0xbd, 0x7e,
  33. },
  34. },
  35. {
  36. .data_len = 3,
  37. .digest = {
  38. 0xec, 0x02, 0xe8, 0x81, 0x4f, 0x84, 0x41, 0x69,
  39. 0x06, 0xd8, 0xdc, 0x1d, 0x01, 0x78, 0xd7, 0xcb,
  40. 0x39, 0xdf, 0xd3, 0x12, 0x1c, 0x99, 0xfd, 0xf3,
  41. 0x5c, 0x83, 0xc9, 0xc2, 0x7a, 0x7b, 0x6a, 0x05,
  42. },
  43. },
  44. {
  45. .data_len = 16,
  46. .digest = {
  47. 0xff, 0x6f, 0xc3, 0x41, 0xc3, 0x5f, 0x34, 0x6d,
  48. 0xa7, 0xdf, 0x3e, 0xc2, 0x8b, 0x29, 0xb6, 0xf1,
  49. 0xf8, 0x67, 0xfd, 0xcd, 0xb1, 0x9f, 0x38, 0x08,
  50. 0x1d, 0x8d, 0xd9, 0xc2, 0x43, 0x66, 0x18, 0x6c,
  51. },
  52. },
  53. {
  54. .data_len = 32,
  55. .digest = {
  56. 0xe4, 0xb1, 0x06, 0x17, 0xf8, 0x8b, 0x91, 0x95,
  57. 0xe7, 0x57, 0x66, 0xac, 0x08, 0xb2, 0x03, 0x3e,
  58. 0xf7, 0x84, 0x1f, 0xe3, 0x25, 0xa3, 0x11, 0xd2,
  59. 0x11, 0xa4, 0x78, 0x74, 0x2a, 0x43, 0x20, 0xa5,
  60. },
  61. },
  62. {
  63. .data_len = 48,
  64. .digest = {
  65. 0xeb, 0x57, 0x5f, 0x20, 0xa3, 0x6b, 0xc7, 0xb4,
  66. 0x66, 0x2a, 0xa0, 0x30, 0x3b, 0x52, 0x00, 0xc9,
  67. 0xce, 0x6a, 0xd8, 0x1e, 0xbe, 0xed, 0xa1, 0xd1,
  68. 0xbe, 0x63, 0xc7, 0xe1, 0xe2, 0x66, 0x67, 0x0c,
  69. },
  70. },
  71. {
  72. .data_len = 49,
  73. .digest = {
  74. 0xf0, 0x67, 0xad, 0x66, 0xbe, 0xec, 0x5a, 0xfd,
  75. 0x29, 0xd2, 0x4f, 0x1d, 0xb2, 0x24, 0xb8, 0x90,
  76. 0x05, 0x28, 0x0e, 0x66, 0x67, 0x74, 0x2d, 0xee,
  77. 0x66, 0x25, 0x11, 0xd1, 0x76, 0xa2, 0xfc, 0x3a,
  78. },
  79. },
  80. {
  81. .data_len = 63,
  82. .digest = {
  83. 0x57, 0x56, 0x21, 0xb3, 0x2d, 0x2d, 0xe1, 0x9d,
  84. 0xbf, 0x2c, 0x82, 0xa8, 0xad, 0x7e, 0x6c, 0x46,
  85. 0xfb, 0x30, 0xeb, 0xce, 0xcf, 0xed, 0x2d, 0x65,
  86. 0xe7, 0xe4, 0x96, 0x69, 0xe0, 0x48, 0xd2, 0xb6,
  87. },
  88. },
  89. {
  90. .data_len = 64,
  91. .digest = {
  92. 0x7b, 0xba, 0x67, 0x15, 0xe5, 0x21, 0xc4, 0x69,
  93. 0xd3, 0xef, 0x5c, 0x97, 0x9f, 0x5b, 0xba, 0x9c,
  94. 0xfa, 0x55, 0x64, 0xec, 0xb5, 0x37, 0x53, 0x1b,
  95. 0x3f, 0x4c, 0x0a, 0xed, 0x51, 0x98, 0x2b, 0x52,
  96. },
  97. },
  98. {
  99. .data_len = 65,
  100. .digest = {
  101. 0x44, 0xb6, 0x6b, 0x83, 0x09, 0x83, 0x55, 0x83,
  102. 0xde, 0x1f, 0xcc, 0x33, 0xef, 0xdc, 0x05, 0xbb,
  103. 0x3b, 0x63, 0x76, 0x45, 0xe4, 0x8e, 0x14, 0x7a,
  104. 0x2d, 0xae, 0x90, 0xce, 0x68, 0xc3, 0xa4, 0xf2,
  105. },
  106. },
  107. {
  108. .data_len = 127,
  109. .digest = {
  110. 0x50, 0x3e, 0x99, 0x4e, 0x28, 0x2b, 0xc9, 0xf4,
  111. 0xf5, 0xeb, 0x2b, 0x16, 0x04, 0x2d, 0xf5, 0xbe,
  112. 0xc0, 0x91, 0x41, 0x2a, 0x8e, 0x69, 0x5e, 0x39,
  113. 0x53, 0x2c, 0xc1, 0x18, 0xa5, 0xeb, 0xd8, 0xda,
  114. },
  115. },
  116. {
  117. .data_len = 128,
  118. .digest = {
  119. 0x90, 0x0b, 0xa6, 0x92, 0x84, 0x30, 0xaf, 0xee,
  120. 0x38, 0x59, 0x83, 0x83, 0xe9, 0xfe, 0xab, 0x86,
  121. 0x79, 0x1b, 0xcd, 0xe7, 0x0a, 0x0f, 0x58, 0x53,
  122. 0x36, 0xab, 0x12, 0xe1, 0x5c, 0x97, 0xc1, 0xfb,
  123. },
  124. },
  125. {
  126. .data_len = 129,
  127. .digest = {
  128. 0x2b, 0x52, 0x1e, 0x54, 0xbe, 0x38, 0x4c, 0x3e,
  129. 0x73, 0x37, 0x18, 0xf5, 0x25, 0x2c, 0xc8, 0xc7,
  130. 0xda, 0x7e, 0xb6, 0x47, 0x9d, 0xf4, 0x46, 0xce,
  131. 0xfa, 0x80, 0x20, 0x6b, 0xbd, 0xfd, 0x2a, 0xd8,
  132. },
  133. },
  134. {
  135. .data_len = 256,
  136. .digest = {
  137. 0x45, 0xf0, 0xf5, 0x9b, 0xd9, 0x91, 0x26, 0xd5,
  138. 0x91, 0x3b, 0xf8, 0x87, 0x8b, 0x34, 0x02, 0x31,
  139. 0x64, 0xab, 0xf4, 0x1c, 0x6e, 0x34, 0x72, 0xdf,
  140. 0x32, 0x6d, 0xe5, 0xd2, 0x67, 0x5e, 0x86, 0x93,
  141. },
  142. },
  143. {
  144. .data_len = 511,
  145. .digest = {
  146. 0xb3, 0xaf, 0x71, 0x64, 0xfa, 0xd4, 0xf1, 0x07,
  147. 0x38, 0xef, 0x04, 0x8e, 0x89, 0xf4, 0x02, 0xd2,
  148. 0xa5, 0xaf, 0x3b, 0xf5, 0x67, 0x56, 0xcf, 0xa9,
  149. 0x8e, 0x43, 0xf5, 0xb5, 0xe3, 0x91, 0x8e, 0xe7,
  150. },
  151. },
  152. {
  153. .data_len = 513,
  154. .digest = {
  155. 0x51, 0xac, 0x0a, 0x65, 0xb7, 0x96, 0x20, 0xcf,
  156. 0x88, 0xf6, 0x97, 0x35, 0x89, 0x0d, 0x31, 0x0f,
  157. 0xbe, 0x17, 0xbe, 0x62, 0x03, 0x67, 0xc0, 0xee,
  158. 0x4f, 0xc1, 0xe3, 0x7f, 0x6f, 0xab, 0xac, 0xb4,
  159. },
  160. },
  161. {
  162. .data_len = 1000,
  163. .digest = {
  164. 0x7e, 0xea, 0xa8, 0xd7, 0xde, 0x20, 0x1b, 0x58,
  165. 0x24, 0xd8, 0x26, 0x40, 0x36, 0x5f, 0x3f, 0xaa,
  166. 0xe5, 0x5a, 0xea, 0x98, 0x58, 0xd4, 0xd6, 0xfc,
  167. 0x20, 0x4c, 0x5c, 0x4f, 0xaf, 0x56, 0xc7, 0xc3,
  168. },
  169. },
  170. {
  171. .data_len = 3333,
  172. .digest = {
  173. 0x61, 0xb1, 0xb1, 0x3e, 0x0e, 0x7e, 0x90, 0x3d,
  174. 0x31, 0x54, 0xbd, 0xc9, 0x0d, 0x53, 0x62, 0xf1,
  175. 0xcd, 0x18, 0x80, 0xf9, 0x91, 0x75, 0x41, 0xb3,
  176. 0x51, 0x39, 0x57, 0xa7, 0xa8, 0x1e, 0xfb, 0xc9,
  177. },
  178. },
  179. {
  180. .data_len = 4096,
  181. .digest = {
  182. 0xab, 0x29, 0xda, 0x10, 0xc4, 0x11, 0x2d, 0x5c,
  183. 0xd1, 0xce, 0x1c, 0x95, 0xfa, 0xc6, 0xc7, 0xb0,
  184. 0x1b, 0xd1, 0xdc, 0x6f, 0xa0, 0x9d, 0x1b, 0x23,
  185. 0xfb, 0x6e, 0x90, 0x97, 0xd0, 0x75, 0x44, 0x7a,
  186. },
  187. },
  188. {
  189. .data_len = 4128,
  190. .digest = {
  191. 0x02, 0x45, 0x95, 0xf4, 0x19, 0xb5, 0x93, 0x29,
  192. 0x90, 0xf2, 0x63, 0x3f, 0x89, 0xe8, 0xa5, 0x31,
  193. 0x76, 0xf2, 0x89, 0x79, 0x66, 0xd3, 0x96, 0xdf,
  194. 0x33, 0xd1, 0xa6, 0x17, 0x73, 0xb1, 0xd0, 0x45,
  195. },
  196. },
  197. {
  198. .data_len = 4160,
  199. .digest = {
  200. 0xd1, 0x8e, 0x22, 0xea, 0x44, 0x87, 0x6e, 0x9d,
  201. 0xfb, 0x36, 0x02, 0x20, 0x63, 0xb7, 0x69, 0x45,
  202. 0x25, 0x41, 0x69, 0xe0, 0x9b, 0x87, 0xcf, 0xa3,
  203. 0x51, 0xbb, 0xfc, 0x8d, 0xf7, 0x29, 0xa7, 0xea,
  204. },
  205. },
  206. {
  207. .data_len = 4224,
  208. .digest = {
  209. 0x11, 0x86, 0x7d, 0x84, 0xf9, 0x8c, 0x6e, 0xc4,
  210. 0x64, 0x36, 0xc6, 0xf3, 0x42, 0x92, 0x31, 0x2b,
  211. 0x1e, 0x12, 0xe6, 0x4d, 0xbe, 0xfa, 0x77, 0x3f,
  212. 0x89, 0x41, 0x33, 0x58, 0x1c, 0x98, 0x16, 0x0a,
  213. },
  214. },
  215. {
  216. .data_len = 16384,
  217. .digest = {
  218. 0xb2, 0xba, 0x0c, 0x8c, 0x9d, 0xbb, 0x1e, 0xb0,
  219. 0x03, 0xb5, 0xdf, 0x4f, 0xf5, 0x35, 0xdb, 0xec,
  220. 0x60, 0xf2, 0x5b, 0xb6, 0xd0, 0x49, 0xd3, 0xed,
  221. 0x55, 0xc0, 0x7a, 0xd7, 0xaf, 0xa1, 0xea, 0x53,
  222. },
  223. },
  224. };
  225. static const u8 hash_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
  226. 0x3b, 0x33, 0x67, 0xf8, 0xea, 0x92, 0x78, 0x62,
  227. 0xdd, 0xbe, 0x72, 0x15, 0xbd, 0x6f, 0xfa, 0xe5,
  228. 0x5e, 0xab, 0x9f, 0xb1, 0xe4, 0x23, 0x7c, 0x2c,
  229. 0x80, 0xcf, 0x09, 0x75, 0xf8, 0xe2, 0xfa, 0x30,
  230. };
  231. /* SHAKE test vectors */
  232. static const u8 shake128_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
  233. 0x89, 0x88, 0x3a, 0x44, 0xec, 0xfe, 0x3c, 0xeb,
  234. 0x2f, 0x1c, 0x1d, 0xda, 0x9e, 0x36, 0x64, 0xf0,
  235. 0x85, 0x4c, 0x49, 0x12, 0x76, 0x5a, 0x4d, 0xe7,
  236. 0xa8, 0xfd, 0xcd, 0xbe, 0x45, 0xb4, 0x6f, 0xb0,
  237. };
  238. static const u8 shake256_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
  239. 0x5a, 0xfd, 0x66, 0x62, 0x5c, 0x37, 0x2b, 0x41,
  240. 0x77, 0x1c, 0x01, 0x5d, 0x64, 0x7c, 0x63, 0x7a,
  241. 0x7c, 0x76, 0x9e, 0xa8, 0xd1, 0xb0, 0x8e, 0x02,
  242. 0x16, 0x9b, 0xfe, 0x0e, 0xb5, 0xd8, 0x6a, 0xb5,
  243. };