1 /* 2 * Shared Dragonfly functionality 3 * Copyright (c) 2012-2016, Jouni Malinen <j@w1.fi> 4 * Copyright (c) 2019, The Linux Foundation 5 * 6 * This software may be distributed under the terms of the BSD license. 7 * See README for more details. 8 */ 9 10 #ifndef DRAGONFLY_H 11 #define DRAGONFLY_H 12 13 #define DRAGONFLY_MAX_ECC_PRIME_LEN 66 14 15 struct crypto_bignum; 16 struct crypto_ec; 17 18 int dragonfly_suitable_group(int group, int ecc_only); 19 unsigned int dragonfly_min_pwe_loop_iter(int group); 20 int dragonfly_get_random_qr_qnr(const struct crypto_bignum *prime, 21 struct crypto_bignum **qr, 22 struct crypto_bignum **qnr); 23 int dragonfly_is_quadratic_residue_blind(struct crypto_ec *ec, 24 const u8 *qr, const u8 *qnr, 25 const struct crypto_bignum *val); 26 int dragonfly_generate_scalar(const struct crypto_bignum *order, 27 struct crypto_bignum *_rand, 28 struct crypto_bignum *_mask, 29 struct crypto_bignum *scalar); 30 int dragonfly_sqrt(struct crypto_ec *ec, const struct crypto_bignum *val, 31 struct crypto_bignum *res); 32 33 #endif /* DRAGONFLY_H */ 34