BN_CMP(3ossl)
okay bestie, welcome to BN_CMP from the 3ossl manual β the BIGNUM comparison and test functions are about to get the group-chat treatment. π
β¨
πΈ NAME πΈ
BN_cmp, BN_ucmp, BN_is_zero, BN_is_one, BN_is_word, BN_abs_is_word, BN_is_odd, BN_are_coprime β these are the BIGNUM comparison and test functions, and yes, they ate. π«Ά
β¨ 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);
int BN_are_coprime(BIGNUM *a, const BIGNUM *b, BN_CTX *ctx);
π DESCRIPTION π
BN_cmp() compares the numbers a and b β full comparison, sign and all. BN_ucmp() compares their absolute values, like the absolute-value remix. π
BN_is_zero(), BN_is_one(), BN_is_word() and BN_abs_is_word() test if a equals 0, 1, w, or |w| respectively. BN_is_odd() tests if a is odd. No cap, that's the whole vibe check. π¦
BN_are_coprime() determines if a and b are coprime. ctx is used internally for storing temporary variables. π
π¨ bestie, important: the values ofaandbandctxmust not beNULL. Like, do not play with that. π
π RETURN VALUES π
BN_cmp()returns-1ifa < b,0ifa == b, and1ifa > b.BN_ucmp()is the same using the absolute values ofaandb.BN_is_zero(),BN_is_one(),BN_is_word(),BN_abs_is_word()andBN_is_odd()return1if the condition is true, and0otherwise.BN_are_coprime()returns1if theBIGNUMs are coprime, otherwise it returns0.
π¦ HISTORY π¦
Prior to OpenSSL 1.1.0, BN_is_zero(), BN_is_one(), BN_is_word(), BN_abs_is_word() and BN_is_odd() were macros. Plot twist era. π
The function BN_are_coprime() was added in OpenSSL 3.1. Fresh off the press, iykyk. β¨
π COPYRIGHT π
Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>. π
bye bestie π this iconic little page is from OpenSSL version 3.5.6, dated 2026-04-07 β footer handled, periodt. πβ¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms