\href{http://www-cs-students.stanford.edu/~tjw/jsbn/}{\texttt{ Tom Wu\textquotesingle{}s Original Website}}

I felt compelled to put this on github and publish to npm. I haven\textquotesingle{}t tested every other big integer library out there, but the few that I have tested in comparison to this one have not even come close in performance. I am aware of the {\ttfamily bi} module on npm, however it has been modified and I wanted to publish the original without modifications. This is jsbn and jsbn2 from Tom Wu\textquotesingle{}s original website above, with the modular pattern applied to prevent global leaks and to allow for use with node.\+js on the server side.\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14199}{}\doxysection{usage}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14199}
\begin{DoxyVerb}var BigInteger = require('jsbn');

var a = new BigInteger('91823918239182398123');
alert(a.bitLength()); // 67
\end{DoxyVerb}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14200}{}\doxysection{API}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14200}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14201}{}\doxysubsection{bi.\+to\+String()}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14201}
returns the base-\/10 number as a string\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14202}{}\doxysubsection{bi.\+negate()}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14202}
returns a new Big\+Integer equal to the negation of {\ttfamily bi}\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14203}{}\doxysubsection{bi.\+abs}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14203}
returns new BI of absolute value\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14204}{}\doxysubsection{bi.\+compare\+To}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14204}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14205}{}\doxysubsection{bi.\+bit\+Length}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14205}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14206}{}\doxysubsection{bi.\+mod}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14206}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14207}{}\doxysubsection{bi.\+mod\+Pow\+Int}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14207}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14208}{}\doxysubsection{bi.\+clone}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14208}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14209}{}\doxysubsection{bi.\+int\+Value}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14209}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14210}{}\doxysubsection{bi.\+byte\+Value}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14210}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14211}{}\doxysubsection{bi.\+short\+Value}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14211}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14212}{}\doxysubsection{bi.\+signum}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14212}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14213}{}\doxysubsection{bi.\+to\+Byte\+Array}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14213}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14214}{}\doxysubsection{bi.\+equals}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14214}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14215}{}\doxysubsection{bi.\+min}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14215}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14216}{}\doxysubsection{bi.\+max}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14216}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14217}{}\doxysubsection{bi.\+and}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14217}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14218}{}\doxysubsection{bi.\+or}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14218}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14219}{}\doxysubsection{bi.\+xor}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14219}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14220}{}\doxysubsection{bi.\+and\+Not}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14220}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14221}{}\doxysubsection{bi.\+not}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14221}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14222}{}\doxysubsection{bi.\+shift\+Left}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14222}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14223}{}\doxysubsection{bi.\+shift\+Right}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14223}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14224}{}\doxysubsection{bi.\+get\+Lowest\+Set\+Bit}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14224}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14225}{}\doxysubsection{bi.\+bit\+Count}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14225}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14226}{}\doxysubsection{bi.\+test\+Bit}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14226}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14227}{}\doxysubsection{bi.\+set\+Bit}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14227}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14228}{}\doxysubsection{bi.\+clear\+Bit}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14228}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14229}{}\doxysubsection{bi.\+flip\+Bit}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14229}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14230}{}\doxysubsection{bi.\+add}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14230}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14231}{}\doxysubsection{bi.\+subtract}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14231}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14232}{}\doxysubsection{bi.\+multiply}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14232}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14233}{}\doxysubsection{bi.\+divide}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14233}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14234}{}\doxysubsection{bi.\+remainder}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14234}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14235}{}\doxysubsection{bi.\+divide\+And\+Remainder}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14235}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14236}{}\doxysubsection{bi.\+mod\+Pow}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14236}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14237}{}\doxysubsection{bi.\+mod\+Inverse}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14237}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14238}{}\doxysubsection{bi.\+pow}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14238}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14239}{}\doxysubsection{bi.\+gcd}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14239}
\hypertarget{md_sfcode_node_modules_jsbn_README_autotoc_md14240}{}\doxysubsection{bi.\+is\+Probable\+Prime}\label{md_sfcode_node_modules_jsbn_README_autotoc_md14240}
