Misc BN fixes
authorRich Salz <rsalz@openssl.org>
Mon, 5 Sep 2016 22:08:43 +0000 (18:08 -0400)
committerRich Salz <rsalz@openssl.org>
Tue, 6 Sep 2016 15:09:50 +0000 (11:09 -0400)
commit3f1014960353af29a05a7b5dac40afd30d4f9bb3
tree23540ca3aacdf6e04dc4475af9e4a39a293a05b5
parent2a20b6d9731488bcb500e58a434375f59fb9adcc
Misc BN fixes

Never output -0; make "negative zero" an impossibility.
Do better checking on BN_rand top/bottom requirements and #bits.
Update doc.
Ignoring trailing garbage in BN_asc2bn.

Port this commit from boringSSL: https://boringssl.googlesource.com/boringssl/+/899b9b19a4cd3fe526aaf5047ab9234cdca19f7d%5E!/
        Ensure |BN_div| never gives negative zero in the no_branch code.

        Have |bn_correct_top| fix |bn->neg| if the input is zero so that we
        don't have negative zeros lying around.

        Thanks to Brian Smith for noticing.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(cherry picked from commit 01c09f9fde5793e0b3712d602b02e2aed4908e8d)
(Some manual work required)
crypto/bn/bn.h
crypto/bn/bn_print.c
crypto/bn/bn_rand.c
doc/crypto/BN_bn2bin.pod
doc/crypto/BN_rand.pod