14418919fSjohnjiang /* SPDX-License-Identifier: BSD-3-Clause
24418919fSjohnjiang * Copyright(c) 2018 Cavium Networks
34418919fSjohnjiang */
44418919fSjohnjiang
54418919fSjohnjiang #ifndef TEST_CRYPTODEV_ASYM_TEST_UTIL_H__
64418919fSjohnjiang #define TEST_CRYPTODEV_ASYM_TEST_UTIL_H__
74418919fSjohnjiang
84418919fSjohnjiang /* Below Apis compare resulted buffer to original test vector */
94418919fSjohnjiang
rsa_verify(struct rsa_test_data * rsa_param,struct rte_crypto_op * result_op)104418919fSjohnjiang static inline int rsa_verify(struct rsa_test_data *rsa_param,
114418919fSjohnjiang struct rte_crypto_op *result_op)
124418919fSjohnjiang {
134418919fSjohnjiang if (memcmp(rsa_param->data,
144418919fSjohnjiang result_op->asym->rsa.message.data,
154418919fSjohnjiang result_op->asym->rsa.message.length))
164418919fSjohnjiang return -1;
174418919fSjohnjiang return 0;
184418919fSjohnjiang }
194418919fSjohnjiang
verify_modinv(uint8_t * mod_inv,struct rte_crypto_op * result_op)204418919fSjohnjiang static inline int verify_modinv(uint8_t *mod_inv,
214418919fSjohnjiang struct rte_crypto_op *result_op)
224418919fSjohnjiang {
234418919fSjohnjiang if (memcmp(mod_inv, result_op->asym->modinv.result.data,
244418919fSjohnjiang result_op->asym->modinv.result.length))
254418919fSjohnjiang return -1;
264418919fSjohnjiang return 0;
274418919fSjohnjiang }
284418919fSjohnjiang
verify_modexp(uint8_t * mod_exp,struct rte_crypto_op * result_op)294418919fSjohnjiang static inline int verify_modexp(uint8_t *mod_exp,
304418919fSjohnjiang struct rte_crypto_op *result_op)
314418919fSjohnjiang {
324418919fSjohnjiang if (memcmp(mod_exp, result_op->asym->modex.result.data,
334418919fSjohnjiang result_op->asym->modex.result.length))
344418919fSjohnjiang return -1;
354418919fSjohnjiang return 0;
364418919fSjohnjiang }
374418919fSjohnjiang
verify_ecdsa_sign(uint8_t * sign_r,uint8_t * sign_s,struct rte_crypto_op * result_op)38*2d9fd380Sjfb8856606 static inline int verify_ecdsa_sign(uint8_t *sign_r,
39*2d9fd380Sjfb8856606 uint8_t *sign_s, struct rte_crypto_op *result_op)
40*2d9fd380Sjfb8856606 {
41*2d9fd380Sjfb8856606 if (memcmp(sign_r, result_op->asym->ecdsa.r.data,
42*2d9fd380Sjfb8856606 result_op->asym->ecdsa.r.length) ||
43*2d9fd380Sjfb8856606 memcmp(sign_s, result_op->asym->ecdsa.s.data,
44*2d9fd380Sjfb8856606 result_op->asym->ecdsa.s.length))
45*2d9fd380Sjfb8856606 return -1;
46*2d9fd380Sjfb8856606 return 0;
47*2d9fd380Sjfb8856606 }
48*2d9fd380Sjfb8856606
verify_ecpm(uint8_t * result_x,uint8_t * result_y,struct rte_crypto_op * result_op)49*2d9fd380Sjfb8856606 static inline int verify_ecpm(uint8_t *result_x, uint8_t *result_y,
50*2d9fd380Sjfb8856606 struct rte_crypto_op *result_op)
51*2d9fd380Sjfb8856606 {
52*2d9fd380Sjfb8856606 if (memcmp(result_x, result_op->asym->ecpm.r.x.data,
53*2d9fd380Sjfb8856606 result_op->asym->ecpm.r.x.length) ||
54*2d9fd380Sjfb8856606 memcmp(result_y, result_op->asym->ecpm.r.y.data,
55*2d9fd380Sjfb8856606 result_op->asym->ecpm.r.y.length))
56*2d9fd380Sjfb8856606 return -1;
57*2d9fd380Sjfb8856606
58*2d9fd380Sjfb8856606 return 0;
59*2d9fd380Sjfb8856606 }
604418919fSjohnjiang #endif /* TEST_CRYPTODEV_ASYM_TEST_UTIL_H__ */
61