
#use wml::openssl-macros area=docs page=BN_cmp

<title>Documents, BN_cmp(3)</title>

<h1>BN_cmp(3)</h1>

#use wml::imp::generic

{:
## What's this? [[s|(<STRONG>[^<].+?)</A>(</STRONG><DD>)|$1$2|sg]]
[[s|<P>\s+<P>|<P>|sg]]
[[s|<P>\s+</|</|sg]]
[[s|<DD>\s*<DT>|<DD>&nbsp;<DT>|sg]]
[[s|<DD>\s*</DL>|<DD>&nbsp;</DL>|sg]]
[[s|\[|&#91;|sg]]
[[s|\]|&#93;|sg]]

<!-- INDEX BEGIN -->

<UL>

	<LI><A HREF="#NAME">NAME</A>
	<LI><A HREF="#SYNOPSIS">SYNOPSIS</A>
	<LI><A HREF="#DESCRIPTION">DESCRIPTION</A>
	<LI><A HREF="#RETURN_VALUES">RETURN VALUES</A>
	<LI><A HREF="#SEE_ALSO">SEE ALSO</A>
	<LI><A HREF="#HISTORY">HISTORY</A>
</UL>
<!-- INDEX END -->

<HR>
<P>
<HR>
<H1><A NAME="NAME">NAME</A></H1>
<P>
BN_cmp, BN_ucmp, BN_is_zero, BN_is_one, BN_is_word, BN_is_odd - BIGNUM
comparison and test functions

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/bn.h&gt;
</PRE>
<PRE> int BN_cmp(BIGNUM *a, BIGNUM *b);
 int BN_ucmp(BIGNUM *a, BIGNUM *b);
</PRE>
<PRE> int BN_is_zero(BIGNUM *a);
 int BN_is_one(BIGNUM *a);
 int BN_is_word(BIGNUM *a, BN_ULONG w);
 int BN_is_odd(BIGNUM *a);
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
<CODE>BN_cmp()</CODE> compares the numbers <STRONG>a</STRONG> and <STRONG>b</STRONG>. <CODE>BN_ucmp()</CODE> compares their absolute values.

</P>
<P>
<CODE>BN_is_zero(),</CODE> <CODE>BN_is_one()</CODE> and
<CODE>BN_is_word()</CODE> test if <STRONG>a</STRONG> equals 0, 1, or <STRONG>w</STRONG> respectively. <CODE>BN_is_odd()</CODE> tests if a is odd.

</P>
<P>
<CODE>BN_is_zero(),</CODE> <CODE>BN_is_one(),</CODE>
<CODE>BN_is_word()</CODE> and <CODE>BN_is_odd()</CODE> are macros.

</P>
<P>
<HR>
<H1><A NAME="RETURN_VALUES">RETURN VALUES</A></H1>
<P>
<CODE>BN_cmp()</CODE> returns -1 if <STRONG>a</STRONG>  &lt;  <STRONG>b</STRONG>, 0 if <STRONG>a</STRONG> == <STRONG>b</STRONG> and 1 if
<STRONG>a</STRONG>  &gt;  <STRONG>b</STRONG>. <CODE>BN_ucmp()</CODE> is the same using the absolute values of <STRONG>a</STRONG> and <STRONG>b</STRONG>.

</P>
<P>
<CODE>BN_is_zero(),</CODE> <CODE>BN_is_one()</CODE>
<CODE>BN_is_word()</CODE> and <CODE>BN_is_odd()</CODE> return 1 if the
condition is true, 0 otherwise.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../crypto/bn.html#">bn(3)</A>



</P>
<P>
<HR>
<H1><A NAME="HISTORY">HISTORY</A></H1>
<P>
<CODE>BN_cmp(),</CODE> <CODE>BN_ucmp(),</CODE> <CODE>BN_is_zero(),</CODE>
<CODE>BN_is_one()</CODE> and <CODE>BN_is_word()</CODE> are available in all
versions of SSLeay and OpenSSL. <CODE>BN_is_odd()</CODE> was added in
SSLeay 0.8.

</P>
:}

