/* * Shared Dragonfly functionality * Copyright (c) 2012-2016, Jouni Malinen * 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 */