| /* |
| * Shared Dragonfly functionality |
| * Copyright (c) 2012-2016, Jouni Malinen <j@w1.fi> |
| * Copyright (c) 2019, The Linux Foundation |
| * |
| * This software may be distributed under the terms of the BSD license. |
| * See README for more details. |
| */ |
| |
| #ifndef DRAGONFLY_H |
| #define DRAGONFLY_H |
| |
| #define DRAGONFLY_MAX_ECC_PRIME_LEN 66 |
| |
| struct crypto_bignum; |
| struct crypto_ec; |
| |
| int dragonfly_suitable_group(int group, int ecc_only); |
| unsigned int dragonfly_min_pwe_loop_iter(int group); |
| int dragonfly_get_random_qr_qnr(const struct crypto_bignum *prime, |
| struct crypto_bignum **qr, |
| struct crypto_bignum **qnr); |
| int dragonfly_is_quadratic_residue_blind(struct crypto_ec *ec, |
| const u8 *qr, const u8 *qnr, |
| const struct crypto_bignum *val); |
| int dragonfly_generate_scalar(const struct crypto_bignum *order, |
| struct crypto_bignum *_rand, |
| struct crypto_bignum *_mask, |
| struct crypto_bignum *scalar); |
| int dragonfly_sqrt(struct crypto_ec *ec, const struct crypto_bignum *val, |
| struct crypto_bignum *res); |
| |
| #endif /* DRAGONFLY_H */ |