BN_CMP(3) Library Functions Manual BN_CMP(3)

BN_cmp, BN_ucmp, BN_is_zero, BN_is_one, BN_is_word, BN_abs_is_word, BN_is_oddBIGNUM comparison and test functions

#include <openssl/bn.h>

BN_cmp(const BIGNUM *a, const BIGNUM *b);

BN_ucmp(const BIGNUM *a, const BIGNUM *b);

BN_is_zero(const BIGNUM *a);

BN_is_one(const BIGNUM *a);

BN_is_word(const BIGNUM *a, const BN_ULONG w);

BN_abs_is_word(const BIGNUM *a, const BN_ULONG w);

BN_is_odd(const BIGNUM *a);

() compares the numbers a and b. () compares their absolute values.

(), () and () test if a equals 0, 1, or w respectively. () tests if the absolute value of a equals w. () tests if a is odd.

BN_ULONG is a macro that expands to unsigned long (= uint64_t) on _LP64 platforms and unsigned int (= uint32_t) elsewhere.

BN_cmp() returns -1 if a<b, 0 if a==b, and 1 if a>b. BN_ucmp() is the same using the absolute values of a and b.

BN_is_zero(), BN_is_one(), BN_is_word(), BN_abs_is_word(), and BN_is_odd() return 1 if the condition is true, 0 otherwise.


BN_cmp(), BN_ucmp(), BN_is_zero(), BN_is_one(), and BN_is_word() first appeared in SSLeay 0.5.1. BN_is_odd() first appeared in SSLeay 0.8.0. These functions have been available since OpenBSD 2.4.

BN_abs_is_word() first appeared in OpenSSL 0.9.7 and has been available since OpenBSD 3.2.

November 22, 2022 OpenBSD 7.5