• G
    bn: fix occurances of negative zero · 38d1b3cc
    Geoff Thorpe 提交于
    The BIGNUM behaviour is supposed to be "consistent" when going into and
    out of APIs, where "consistent" means 'top' is set minimally and that
    'neg' (negative) is not set if the BIGNUM is zero (which is iff 'top' is
    zero, due to the previous point).
    
    The BN_DEBUG testing (make test) caught the cases that this patch
    corrects.
    
    Note, bn_correct_top() could have been used instead, but that is intended
    for where 'top' is expected to (sometimes) require adjustment after direct
    word-array manipulation, and so is heavier-weight. Here, we are just
    catching the negative-zero case, so we test and correct for that
    explicitly, in-place.
    
    Change-Id: Iddefbd3c28a13d935648932beebcc765d5b85ae7
    Signed-off-by: NGeoff Thorpe <geoff@openssl.org>
    Reviewed-by: NRichard Levitte <levitte@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/1672)
    38d1b3cc
bn_shift.c 3.7 KB