sae->group = group;
sae->prime_len = crypto_ec_prime_len(sae->ec);
+ sae->prime = crypto_ec_get_prime(sae->ec);
+ sae->order = crypto_ec_get_order(sae->ec);
return 0;
}
struct crypto_bignum *bn;
size_t prime_len_bits = crypto_ec_prime_len_bits(sae->ec);
- if (crypto_bignum_to_bin(crypto_ec_get_order(sae->ec),
- order, sizeof(order), sae->prime_len) < 0)
+ if (crypto_bignum_to_bin(sae->order, order, sizeof(order),
+ sae->prime_len) < 0)
return NULL;
if (sae_get_rand(order, prime_len_bits, sae->sae_rand) < 0 ||
int y_bit;
size_t bits;
- if (crypto_bignum_to_bin(crypto_ec_get_prime(sae->ec),
- prime, sizeof(prime), sae->prime_len) < 0)
+ if (crypto_bignum_to_bin(sae->prime, prime, sizeof(prime),
+ sae->prime_len) < 0)
return -1;
wpa_hexdump_key(MSG_DEBUG, "SAE: pwd-seed", pwd_seed, SHA256_MAC_LEN);
/* commit-scalar = (rand + mask) modulo r */
crypto_bignum_add(bn_rand, mask, x);
- crypto_bignum_mod(x, crypto_ec_get_order(sae->ec), x);
+ crypto_bignum_mod(x, sae->order, x);
crypto_bignum_to_bin(x, sae->own_commit_scalar,
sizeof(sae->own_commit_scalar), sae->prime_len);
wpa_hexdump(MSG_DEBUG, "SAE: commit-scalar",
{
u8 order[SAE_MAX_PRIME_LEN], prime[SAE_MAX_PRIME_LEN];
- if (crypto_bignum_to_bin(crypto_ec_get_order(sae->ec),
- order, sizeof(order), sae->prime_len) < 0 ||
- crypto_bignum_to_bin(crypto_ec_get_prime(sae->ec),
- prime, sizeof(prime), sae->prime_len) < 0)
+ if (crypto_bignum_to_bin(sae->order, order, sizeof(order),
+ sae->prime_len) < 0 ||
+ crypto_bignum_to_bin(sae->prime, prime, sizeof(prime),
+ sae->prime_len) < 0)
return -1;
/* 0 < scalar < r */
wpa_hexdump_key(MSG_DEBUG, "SAE: keyseed", keyseed, sizeof(keyseed));
crypto_bignum_add(own_scalar, peer_scalar, tmp);
- crypto_bignum_mod(tmp, crypto_ec_get_order(sae->ec), tmp);
+ crypto_bignum_mod(tmp, sae->order, tmp);
crypto_bignum_to_bin(tmp, val, sizeof(val), sae->prime_len);
wpa_hexdump(MSG_DEBUG, "SAE: PMKID", val, SAE_PMKID_LEN);
sha256_prf(keyseed, sizeof(keyseed), "SAE KCK and PMK",