• N
    EC2M Lopez-Dahab ladder: use it also for ECDSA verify · 01ad66f8
    Nicola Tuveri 提交于
    By default `ec_scalar_mul_ladder` (which uses the Lopez-Dahab ladder
    implementation) is used only for (k * Generator) or (k * VariablePoint).
    ECDSA verification uses (a * Generator + b * VariablePoint): this commit
    forces the use of `ec_scalar_mul_ladder` also for the ECDSA verification
    path, while using the default wNAF implementation for any other case.
    
    With this commit `ec_scalar_mul_ladder` loses the static attribute, and
    is added to ec_lcl.h so EC_METHODs can directly use it.
    
    While working on a new custom EC_POINTs_mul implementation, I realized
    that many checks (e.g. all the points being compatible with the given
    EC_GROUP, creating a temporary BN_CTX if `ctx == NULL`, check for the
    corner case `scalar == NULL && num == 0`) were duplicated again and
    again in every single implementation (and actually some
    implementations lacked some of the tests).
    I thought that it makes way more sense for those checks that are
    independent from the actual implementation and should always be done, to
    be moved in the EC_POINTs_mul wrapper: so this commit also includes
    these changes.
    Reviewed-by: NAndy Polyakov <appro@openssl.org>
    Reviewed-by: NMatt Caswell <matt@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/6690)
    01ad66f8
openssl.txt 145.9 KB