Commit 3a6a4a93 authored by Billy Brumley's avatar Billy Brumley Committed by Rich Salz
Browse files

Fix BN_gcd errors for some curves



Those even order that do not play nicely with Montgomery arithmetic

Signed-off-by: default avatarRich Salz <rsalz@openssl.org>
Reviewed-by: default avatarEmilia Käsper <emilia@openssl.org>
parent b1413d9b
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -327,13 +327,18 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
    } else
        BN_zero(group->cofactor);

 
    /*
     * We ignore the return value because some groups have an order with
     * Some groups have an order with
     * factors of two, which makes the Montgomery setup fail.
     * |group->mont_data| will be NULL in this case.
     */
    ec_precompute_mont_data(group);
    if (BN_is_odd(group->order)) {
        return ec_precompute_mont_data(group);
    }

    BN_MONT_CTX_free(group->mont_data);
    group->mont_data = NULL;
    return 1;
}