Sortix
Sortix Download Manual Development Source Code News Blog More
current nightly

Sortix nightly manual

This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.

NAME

BN_cmp, BN_ucmp, BN_is_zero, BN_is_one, BN_is_word, BN_abs_is_word, BN_is_odd — BIGNUM comparison and test functions

SYNOPSIS

#include <openssl/bn.h>
int
BN_cmp(const BIGNUM *a, const BIGNUM *b);
int
BN_ucmp(const BIGNUM *a, const BIGNUM *b);
int
BN_is_zero(const BIGNUM *a);
int
BN_is_one(const BIGNUM *a);
int
BN_is_word(const BIGNUM *a, const BN_ULONG w);
int
BN_abs_is_word(const BIGNUM *a, const BN_ULONG w);
int
BN_is_odd(const BIGNUM *a);

DESCRIPTION

BN_cmp() compares the numbers a and b. BN_ucmp() compares their absolute values.
BN_is_zero(), BN_is_one() and BN_is_word() test if a equals 0, 1, or w respectively. BN_abs_is_word() tests if the absolute value of a equals w. BN_is_odd() 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.

RETURN VALUES

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.

SEE ALSO

BN_new(3)

HISTORY

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.
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org