1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Cavium Networks
5 #ifndef TEST_CRYPTODEV_MOD_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_MOD_TEST_VECTORS_H_
8 /* modular operation test data */
10 0xF8, 0xBA, 0x1A, 0x55, 0xD0, 0x2F, 0x85,
11 0xAE, 0x96, 0x7B, 0xB6, 0x2F, 0xB6, 0xCD,
12 0xA8, 0xEB, 0x7E, 0x78, 0xA0, 0x50
16 0x00, 0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00,
17 0x0a, 0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5,
18 0xce, 0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a,
19 0xa2, 0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde,
20 0x0a, 0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a,
21 0x3d, 0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63,
22 0x6a, 0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27,
23 0x6e, 0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa,
24 0x72, 0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53,
25 0x87, 0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a,
26 0x62, 0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63,
27 0x18, 0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33,
28 0x4e, 0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3,
29 0x03, 0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e,
30 0xee, 0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb,
31 0xa6, 0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde,
35 uint8_t mod_e[] = {0x01, 0x00, 0x01};
37 /* Precomputed modular exponentiation for verification */
39 0x2C, 0x60, 0x75, 0x45, 0x98, 0x9D, 0xE0, 0x72,
40 0xA0, 0x9D, 0x3A, 0x9E, 0x03, 0x38, 0x73, 0x3C,
41 0x31, 0x83, 0x04, 0xFE, 0x75, 0x43, 0xE6, 0x17,
42 0x5C, 0x01, 0x29, 0x51, 0x69, 0x33, 0x62, 0x2D,
43 0x78, 0xBE, 0xAE, 0xC4, 0xBC, 0xDE, 0x7E, 0x2C,
44 0x77, 0x84, 0xF2, 0xC5, 0x14, 0xB5, 0x2F, 0xF7,
45 0xC5, 0x94, 0xEF, 0x86, 0x75, 0x75, 0xB5, 0x11,
46 0xE5, 0x0E, 0x0A, 0x29, 0x76, 0xE2, 0xEA, 0x32,
47 0x0E, 0x43, 0x77, 0x7E, 0x2C, 0x27, 0xAC, 0x3B,
48 0x86, 0xA5, 0xDB, 0xC9, 0x48, 0x40, 0xE8, 0x99,
49 0x9A, 0x0A, 0x3D, 0xD6, 0x74, 0xFA, 0x2E, 0x2E,
50 0x5B, 0xAF, 0x8C, 0x99, 0x44, 0x2A, 0x67, 0x38,
51 0x27, 0x41, 0x59, 0x9D, 0xB8, 0x51, 0xC9, 0xF7,
52 0x43, 0x61, 0x31, 0x6E, 0xF1, 0x25, 0x38, 0x7F,
53 0xAE, 0xC6, 0xD0, 0xBB, 0x29, 0x76, 0x3F, 0x46,
54 0x2E, 0x1B, 0xE4, 0x67, 0x71, 0xE3, 0x87, 0x5A
57 /* Precomputed modular inverse for verification */
59 0x52, 0xb1, 0xa3, 0x8c, 0xc5, 0x8a, 0xb9, 0x1f,
60 0xb6, 0x82, 0xf5, 0x6a, 0x9a, 0xde, 0x8d, 0x2e,
61 0x62, 0x4b, 0xac, 0x49, 0x21, 0x1d, 0x30, 0x4d,
62 0x32, 0xac, 0x1f, 0x40, 0x6d, 0x52, 0xc7, 0x9b,
63 0x6c, 0x0a, 0x82, 0x3a, 0x2c, 0xaf, 0x6b, 0x6d,
64 0x17, 0xbe, 0x43, 0xed, 0x97, 0x78, 0xeb, 0x4c,
65 0x92, 0x6f, 0xcf, 0xed, 0xb1, 0x09, 0xcb, 0x27,
66 0xc2, 0xde, 0x62, 0xfd, 0x21, 0xe6, 0xbd, 0x4f,
67 0xfe, 0x7a, 0x1b, 0x50, 0xfe, 0x10, 0x4a, 0xb0,
68 0xb7, 0xcf, 0xdb, 0x7d, 0xca, 0xc2, 0xf0, 0x1c,
69 0x39, 0x48, 0x6a, 0xb5, 0x4d, 0x8c, 0xfe, 0x63,
70 0x91, 0x9c, 0x21, 0xc3, 0x0e, 0x76, 0xad, 0x44,
71 0x8d, 0x54, 0x33, 0x99, 0xe1, 0x80, 0x19, 0xba,
72 0xb5, 0xac, 0x7d, 0x9c, 0xce, 0x91, 0x2a, 0xd9,
73 0x2c, 0xe1, 0x16, 0xd6, 0xd7, 0xcf, 0x9d, 0x05,
74 0x9a, 0x66, 0x9a, 0x3a, 0xc1, 0xb8, 0x4b, 0xc3
77 struct rte_crypto_asym_xform modex_xform = {
79 .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
83 .length = sizeof(mod_p)
87 .length = sizeof(mod_e)
92 struct rte_crypto_asym_xform modinv_xform = {
94 .xform_type = RTE_CRYPTO_ASYM_XFORM_MODINV,
98 .length = sizeof(mod_p)
103 #endif /* TEST_CRYPTODEV_MOD_TEST_VECTORS_H__ */