table of contents
| BN_ADD_WORD(3) | Library Functions Manual | BN_ADD_WORD(3) |
NAME¶
BN_add_word,
BN_sub_word, BN_mul_word,
BN_div_word, BN_mod_word
— arithmetic functions on BIGNUMs with
integers
SYNOPSIS¶
#include
<openssl/bn.h>
int
BN_add_word(BIGNUM *a,
BN_ULONG w);
int
BN_sub_word(BIGNUM *a,
BN_ULONG w);
int
BN_mul_word(BIGNUM *a,
BN_ULONG w);
BN_ULONG
BN_div_word(BIGNUM *a,
BN_ULONG w);
BN_ULONG
BN_mod_word(const BIGNUM *a,
BN_ULONG w);
DESCRIPTION¶
These functions perform arithmetic operations on BIGNUMs with unsigned integers. They are much more efficient than the normal BIGNUM arithmetic operations.
BN_ULONG is a macro that expands to
unsigned long (= uint64_t) on
_LP64 platforms and unsigned
int (= uint32_t) elsewhere.
BN_add_word()
adds w to a
(a+=w).
BN_sub_word()
subtracts w from a
(a-=w).
BN_mul_word()
multiplies a and w
(a*=w).
BN_div_word()
divides a by w
(a/=w) and returns the remainder.
BN_mod_word()
returns the remainder of a divided by
w (a%w).
For
BN_div_word()
and BN_mod_word(), w must not
be 0.
RETURN VALUES¶
BN_add_word(),
BN_sub_word(), and
BN_mul_word() return 1 for success or 0 on error.
The error codes can be obtained by ERR_get_error(3).
BN_mod_word() and
BN_div_word() return
a%w on success and
(BN_ULONG)-1 if an error occurred.
SEE ALSO¶
HISTORY¶
BN_add_word(),
BN_div_word(), and
BN_mod_word() first appeared in SSLeay 0.5.1.
BN_sub_word() and
BN_mul_word() first appeared in SSLeay 0.9.0. All
these functions have been available since OpenBSD
2.4.
Before 0.9.8a, the return value for
BN_div_word() and
BN_mod_word() in case of an error was 0.
| November 22, 2022 | Linux 6.14.1-1-default |