summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/man/BN_add.3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/man/BN_add.3')
-rw-r--r--src/lib/libcrypto/man/BN_add.351
1 files changed, 49 insertions, 2 deletions
diff --git a/src/lib/libcrypto/man/BN_add.3 b/src/lib/libcrypto/man/BN_add.3
index 6001a9a4bd..8a11d7c080 100644
--- a/src/lib/libcrypto/man/BN_add.3
+++ b/src/lib/libcrypto/man/BN_add.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: BN_add.3,v 1.12 2018/03/27 17:35:50 schwarze Exp $ 1.\" $OpenBSD: BN_add.3,v 1.13 2018/04/29 15:58:21 schwarze Exp $
2.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100 2.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
3.\" 3.\"
4.\" This file was written by Ulf Moeller <ulf@openssl.org> 4.\" This file was written by Ulf Moeller <ulf@openssl.org>
@@ -49,7 +49,7 @@
49.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 49.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50.\" OF THE POSSIBILITY OF SUCH DAMAGE. 50.\" OF THE POSSIBILITY OF SUCH DAMAGE.
51.\" 51.\"
52.Dd $Mdocdate: March 27 2018 $ 52.Dd $Mdocdate: April 29 2018 $
53.Dt BN_ADD 3 53.Dt BN_ADD 3
54.Os 54.Os
55.Sh NAME 55.Sh NAME
@@ -66,6 +66,13 @@
66.Nm BN_mod_sqr , 66.Nm BN_mod_sqr ,
67.Nm BN_exp , 67.Nm BN_exp ,
68.Nm BN_mod_exp , 68.Nm BN_mod_exp ,
69.\" The following are public, but intentionally undocumented for now:
70.\" .Nm BN_mod_exp_mont_consttime ,
71.\" .Nm BN_mod_exp_mont ,
72.\" .Nm BN_mod_exp_mont_word ,
73.\" .Nm BN_mod_exp_recp ,
74.\" .Nm BN_mod_exp_simple ,
75.\" Maybe they should be deleted from <openssl/bn.h>.
69.Nm BN_gcd 76.Nm BN_gcd
70.Nd arithmetic operations on BIGNUMs 77.Nd arithmetic operations on BIGNUMs
71.Sh SYNOPSIS 78.Sh SYNOPSIS
@@ -245,6 +252,13 @@ and places the result in
245and the remainder in 252and the remainder in
246.Fa rem 253.Fa rem
247.Pq Li dv=a/d , rem=a%d . 254.Pq Li dv=a/d , rem=a%d .
255If the flag
256.Dv BN_FLG_CONSTTIME
257is set on
258.Fa a
259or
260.Fa d ,
261it operates in constant time.
248Either of 262Either of
249.Fa dv 263.Fa dv
250and 264and
@@ -343,6 +357,11 @@ to the
343power modulo 357power modulo
344.Fa m 358.Fa m
345.Pq Li r=(a^p)%m . 359.Pq Li r=(a^p)%m .
360If the flag
361.Dv BN_FLG_CONSTTIME
362is set on
363.Fa p ,
364it operates in constant time.
346This function uses less time and space than 365This function uses less time and space than
347.Fn BN_exp . 366.Fn BN_exp .
348.Pp 367.Pp
@@ -417,3 +436,31 @@ and
417.Fn BN_mod_sqr 436.Fn BN_mod_sqr
418first appeared in OpenSSL 0.9.7 and have been available since 437first appeared in OpenSSL 0.9.7 and have been available since
419.Ox 3.2 . 438.Ox 3.2 .
439.Sh BUGS
440Even if the
441.Dv BN_FLG_CONSTTIME
442flag is set on
443.Fa a
444or
445.Fa b ,
446.Fn BN_gcd
447neither fails nor operates in constant time, potentially allowing
448timing side-channel attacks.
449.Pp
450Even if the
451.Dv BN_FLG_CONSTTIME
452flag is set on
453.Fa p ,
454if the modulus
455.Fa m
456is even,
457.Fn BN_mod_exp
458does not operate in constant time, potentially allowing
459timing side-channel attacks.
460.Pp
461If
462.Dv BN_FLG_CONSTTIME
463is set on
464.Fa p ,
465.Fn BN_exp
466fails instead of operating in constant time.