mirror of https://github.com/openssl/openssl.git
Optimize the implementation of ec_field_size()
No need to create and copy BIGNUM p, a and b, just call EC_GROUP_get0_field() instead. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/23313)
This commit is contained in:
parent
20ddfe78e9
commit
9170cc0398
|
@ -46,25 +46,12 @@ IMPLEMENT_ASN1_FUNCTIONS(SM2_Ciphertext)
|
||||||
|
|
||||||
static size_t ec_field_size(const EC_GROUP *group)
|
static size_t ec_field_size(const EC_GROUP *group)
|
||||||
{
|
{
|
||||||
/* Is there some simpler way to do this? */
|
const BIGNUM *p = EC_GROUP_get0_field(group);
|
||||||
BIGNUM *p = BN_new();
|
|
||||||
BIGNUM *a = BN_new();
|
|
||||||
BIGNUM *b = BN_new();
|
|
||||||
size_t field_size = 0;
|
|
||||||
|
|
||||||
if (p == NULL || a == NULL || b == NULL)
|
if (p == NULL)
|
||||||
goto done;
|
return 0;
|
||||||
|
|
||||||
if (!EC_GROUP_get_curve(group, p, a, b, NULL))
|
return BN_num_bytes(p);
|
||||||
goto done;
|
|
||||||
field_size = (BN_num_bits(p) + 7) / 8;
|
|
||||||
|
|
||||||
done:
|
|
||||||
BN_free(p);
|
|
||||||
BN_free(a);
|
|
||||||
BN_free(b);
|
|
||||||
|
|
||||||
return field_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ossl_sm2_plaintext_size(const unsigned char *ct, size_t ct_size,
|
int ossl_sm2_plaintext_size(const unsigned char *ct, size_t ct_size,
|
||||||
|
|
Loading…
Reference in New Issue