X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fecdsa%2Fecs_asn1.c;h=542a987bc26e78814e95ae6824fb2b0a75ab8ff9;hp=3a5baf013b1700142ef254b872d1adc275681f46;hb=4b71f63ac0de0df0ec321b0522a30e8d3e356760;hpb=4d94ae00d5614d64d4dd065860c4b00161a81f82 diff --git a/crypto/ecdsa/ecs_asn1.c b/crypto/ecdsa/ecs_asn1.c index 3a5baf013b..542a987bc2 100644 --- a/crypto/ecdsa/ecs_asn1.c +++ b/crypto/ecdsa/ecs_asn1.c @@ -119,7 +119,7 @@ ASN1_CHOICE(EC_PARAMETERS) = { ASN1_SIMPLE(EC_PARAMETERS, value.implicitlyCA, ASN1_NULL) } ASN1_CHOICE_END(EC_PARAMETERS) -IMPLEMENT_ASN1_FUNCTIONS_const(EC_PARAMETERS); +IMPLEMENT_ASN1_FUNCTIONS_const(EC_PARAMETERS) ASN1_SEQUENCE(ECDSAPrivateKey) = { ASN1_SIMPLE(ECDSAPrivateKey, version, LONG), @@ -439,7 +439,9 @@ ECDSA *ECDSA_x9_62parameters2ecdsa(const X9_62_EC_PARAMETERS *params, EC if ((point = EC_POINT_new(ret->group)) == NULL) goto err; } else OPENSSL_ECDSA_ABORT(ECDSA_R_WRONG_FIELD_IDENTIFIER) - if (params->curve->seed != NULL && params->curve->seed->data > 0) + /* FIXME!!! It seems like the comparison of data with 0 isn't the + intended thing. */ + if (params->curve->seed != NULL && params->curve->seed->data != 0) { if (ret->seed != NULL) OPENSSL_free(ret->seed); @@ -502,7 +504,7 @@ ECDSA *ECDSA_ecparameters2ecdsa(const EC_PARAMETERS *params, ECDSA *ecdsa) EC_GROUP_free(ret->group); tmp = OBJ_obj2nid(params->value.named_curve); ret->parameter_flags |= ECDSA_FLAG_NAMED_CURVE; - if ((ret->group = EC_GROUP_get_group_by_name(tmp)) == NULL) + if ((ret->group = EC_GROUP_new_by_name(tmp)) == NULL) { ECDSAerr(ECDSA_F_ECDSA_GET_ECDSA, ECDSA_R_EC_GROUP_NID2CURVE_FAILURE); ECDSA_free(ret);