diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2011-01-19 14:35:53 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2011-01-19 14:35:53 +0000 |
commit | 198ce9a611b451656e7c984e16452e285597a015 (patch) | |
tree | 1d2f911b3340ae1e7ed76c367c0daf7d52e7d199 /crypto/ec/ec2_smpl.c | |
parent | 78c45722960510f63f9ee151959ea2f63fac7ba3 (diff) |
Add additional parameter to dsa_builtin_paramgen to output the generated
seed to: this doesn't introduce any binary compatibility issues as the
function is only used internally.
The seed output is needed for FIPS 140-2 algorithm testing: the functionality
used to be in DSA_generate_parameters_ex() but was removed in OpenSSL 1.0.0
Diffstat (limited to 'crypto/ec/ec2_smpl.c')
-rw-r--r-- | crypto/ec/ec2_smpl.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/crypto/ec/ec2_smpl.c b/crypto/ec/ec2_smpl.c index cf357b462a..00ad347b9a 100644 --- a/crypto/ec/ec2_smpl.c +++ b/crypto/ec/ec2_smpl.c @@ -363,7 +363,12 @@ int ec_GF2m_simple_point_set_affine_coordinates(const EC_GROUP *group, EC_POINT if (!BN_copy(&point->Z, BN_value_one())) goto err; BN_set_negative(&point->Z, 0); point->Z_is_one = 1; - ret = 1; + if (BN_num_bits(x) > BN_num_bits(&group->field)) + ret = 2; + else if (BN_num_bits(y) > BN_num_bits(&group->field)) + ret = 2; + else + ret = 1; err: return ret; @@ -937,6 +942,9 @@ int ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT { return EC_POINT_is_at_infinity(group, b) ? 0 : 1; } + + if (EC_POINT_is_at_infinity(group, b)) + return 1; if (a->Z_is_one && b->Z_is_one) { @@ -967,6 +975,15 @@ int ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT return ret; } +int ec_GF2m_simple_range(const EC_GROUP *group, const EC_POINT *a) + { + if (BN_num_bits(&a->X) > BN_num_bits(&group->field)) + return 0; + if (BN_num_bits(&a->Y) > BN_num_bits(&group->field)) + return 0; + return 1; + } + /* Forces the given EC_POINT to internally use affine coordinates. */ int ec_GF2m_simple_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx) |