On 1/4/22, 11:23, "Tomas Mraz" <[email protected]> wrote: > > Theoretically, shouldn’t > > > > EVP_PKEY_get_int_param(pkey, OSSL_PARAM_EC_ORDER, &(unsigned int)order) > > > > work? I verified that it does not seem to work, at least in the > > obvious context. > > OSSL_PARAM_EC_ORDER is an unsigned integer (also a bignum) and it won't > fit into int. So that's the reason why that call fails.
In other words, the man page says it's unsigned int, but in fact it's BIGNUM?
Because the pointer I gave was to "unsigned int", like in the OP's code.
This works, BTW:
if (!(ec_grp = EC_GROUP_new_by_curve_name(ECCTYPE)))
ERR("EC_GROUP_new_by_curve_name");
const BIGNUM *ord = EC_GROUP_get0_order(ec_grp);
fprintf(stderr, "order = ");
BN_print_fp(stderr, ord); fprintf(stderr, "\n");
printf("order = %s\n", BN_bn2dec(ord));
> Also the order is not a degree (maximum number of bits of a curve
> coordinate).
Yeah, I was trying to figure if *any* of EC-related parameters would work...
smime.p7s
Description: S/MIME cryptographic signature
