Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > f835bee5b8b7ec08e20fae17cab51e63 > files > 108

lib64mbedtls-devel-2.7.3-1.mga6.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mbed TLS v2.7.3: bignum.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">mbed TLS v2.7.3
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4d146e9a6d8dd56ed4afb2480a97fd3.html">mbedtls</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">bignum.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Multi-precision integer library.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="config_8h_source.html">config.h</a>&quot;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for bignum.h:</div>
<div class="dyncontent">
<div class="center"><img src="bignum_8h__incl.png" border="0" usemap="#bignum_8h" alt=""/></div>
<map name="bignum_8h" id="bignum_8h">
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="bignum_8h__dep__incl.png" border="0" usemap="#bignum_8hdep" alt=""/></div>
<map name="bignum_8hdep" id="bignum_8hdep">
</map>
</div>
</div>
<p><a href="bignum_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">MPI structure.  <a href="structmbedtls__mpi.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a5ba505f058780047978dcdafd50d0b1e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a5ba505f058780047978dcdafd50d0b1e">MBEDTLS_ERR_MPI_FILE_IO_ERROR</a>&#160;&#160;&#160;-0x0002</td></tr>
<tr class="separator:a5ba505f058780047978dcdafd50d0b1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3989a97b1d92d04dd05242731e6f37f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a3989a97b1d92d04dd05242731e6f37f2">MBEDTLS_ERR_MPI_BAD_INPUT_DATA</a>&#160;&#160;&#160;-0x0004</td></tr>
<tr class="separator:a3989a97b1d92d04dd05242731e6f37f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef495d9a083d986f00e5f604126382f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a0ef495d9a083d986f00e5f604126382f">MBEDTLS_ERR_MPI_INVALID_CHARACTER</a>&#160;&#160;&#160;-0x0006</td></tr>
<tr class="separator:a0ef495d9a083d986f00e5f604126382f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fc9b9c20686c88b949d0a35c0def909"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a7fc9b9c20686c88b949d0a35c0def909">MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL</a>&#160;&#160;&#160;-0x0008</td></tr>
<tr class="separator:a7fc9b9c20686c88b949d0a35c0def909"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7f06e7dfde557a02fe7137d4d47eed3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ab7f06e7dfde557a02fe7137d4d47eed3">MBEDTLS_ERR_MPI_NEGATIVE_VALUE</a>&#160;&#160;&#160;-0x000A</td></tr>
<tr class="separator:ab7f06e7dfde557a02fe7137d4d47eed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97e2c5a552770757da26b4a9b2e56f6c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a97e2c5a552770757da26b4a9b2e56f6c">MBEDTLS_ERR_MPI_DIVISION_BY_ZERO</a>&#160;&#160;&#160;-0x000C</td></tr>
<tr class="separator:a97e2c5a552770757da26b4a9b2e56f6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24f0dfbee8599f6e72852247d5681503"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a24f0dfbee8599f6e72852247d5681503">MBEDTLS_ERR_MPI_NOT_ACCEPTABLE</a>&#160;&#160;&#160;-0x000E</td></tr>
<tr class="separator:a24f0dfbee8599f6e72852247d5681503"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bb66b22357ba30dedfe856efeab5544"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a9bb66b22357ba30dedfe856efeab5544">MBEDTLS_ERR_MPI_ALLOC_FAILED</a>&#160;&#160;&#160;-0x0010</td></tr>
<tr class="separator:a9bb66b22357ba30dedfe856efeab5544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0a21d28acd6b59cc60a45547e2412af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ab0a21d28acd6b59cc60a45547e2412af">MBEDTLS_MPI_CHK</a>(f)&#160;&#160;&#160;do { if( ( ret = f ) != 0 ) goto cleanup; } while( 0 )</td></tr>
<tr class="separator:ab0a21d28acd6b59cc60a45547e2412af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50617c9e123096b168d65a9d957b2ebe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a50617c9e123096b168d65a9d957b2ebe">MBEDTLS_MPI_MAX_LIMBS</a>&#160;&#160;&#160;10000</td></tr>
<tr class="separator:a50617c9e123096b168d65a9d957b2ebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cec1de79c434f1053488b1d3b9454c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a7cec1de79c434f1053488b1d3b9454c4">MBEDTLS_MPI_WINDOW_SIZE</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a7cec1de79c434f1053488b1d3b9454c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02bfffc46b7b2e10c0080d29bb56e6b0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a02bfffc46b7b2e10c0080d29bb56e6b0">MBEDTLS_MPI_MAX_SIZE</a>&#160;&#160;&#160;1024</td></tr>
<tr class="separator:a02bfffc46b7b2e10c0080d29bb56e6b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a134ba62182ca105e273d465861f5a4d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a134ba62182ca105e273d465861f5a4d5">MBEDTLS_MPI_MAX_BITS</a>&#160;&#160;&#160;( 8 * <a class="el" href="bignum_8h.html#a02bfffc46b7b2e10c0080d29bb56e6b0">MBEDTLS_MPI_MAX_SIZE</a> )</td></tr>
<tr class="separator:a134ba62182ca105e273d465861f5a4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e807323a5823be0f1e7eef38dce9cb0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a5e807323a5823be0f1e7eef38dce9cb0">MBEDTLS_MPI_MAX_BITS_SCALE100</a>&#160;&#160;&#160;( 100 * <a class="el" href="bignum_8h.html#a134ba62182ca105e273d465861f5a4d5">MBEDTLS_MPI_MAX_BITS</a> )</td></tr>
<tr class="separator:a5e807323a5823be0f1e7eef38dce9cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a844008ccbe6672f636d250230755d5ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a844008ccbe6672f636d250230755d5ee">MBEDTLS_LN_2_DIV_LN_10_SCALE100</a>&#160;&#160;&#160;332</td></tr>
<tr class="separator:a844008ccbe6672f636d250230755d5ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95aa572170385895daf25b70c6f0d63f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a95aa572170385895daf25b70c6f0d63f">MBEDTLS_MPI_RW_BUFFER_SIZE</a>&#160;&#160;&#160;( ((<a class="el" href="bignum_8h.html#a5e807323a5823be0f1e7eef38dce9cb0">MBEDTLS_MPI_MAX_BITS_SCALE100</a> + <a class="el" href="bignum_8h.html#a844008ccbe6672f636d250230755d5ee">MBEDTLS_LN_2_DIV_LN_10_SCALE100</a> - 1) / <a class="el" href="bignum_8h.html#a844008ccbe6672f636d250230755d5ee">MBEDTLS_LN_2_DIV_LN_10_SCALE100</a>) + 10 + 6 )</td></tr>
<tr class="separator:a95aa572170385895daf25b70c6f0d63f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9ed748679544c60d2b429ee2bc93818"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ae9ed748679544c60d2b429ee2bc93818">MBEDTLS_HAVE_INT32</a></td></tr>
<tr class="separator:ae9ed748679544c60d2b429ee2bc93818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1ace2caabfb2c45a1dab0a8f0bd6b66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ae1ace2caabfb2c45a1dab0a8f0bd6b66">MBEDTLS_HAVE_UDBL</a></td></tr>
<tr class="separator:ae1ace2caabfb2c45a1dab0a8f0bd6b66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a831621e03bb6892a866c36673644612e"><td class="memItemLeft" align="right" valign="top">typedef int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a></td></tr>
<tr class="separator:a831621e03bb6892a866c36673644612e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5f62e04027ff6e12397b3e94c3912cd"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ae5f62e04027ff6e12397b3e94c3912cd">mbedtls_mpi_uint</a></td></tr>
<tr class="separator:ae5f62e04027ff6e12397b3e94c3912cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af64c95417575870c4f465c0a663fb51b"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#af64c95417575870c4f465c0a663fb51b">mbedtls_t_udbl</a></td></tr>
<tr class="separator:af64c95417575870c4f465c0a663fb51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a99c7cca612b47dc4f3b96905c4f9d69e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a99c7cca612b47dc4f3b96905c4f9d69e">mbedtls_mpi_init</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X)</td></tr>
<tr class="memdesc:a99c7cca612b47dc4f3b96905c4f9d69e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize one MPI (make internal references valid) This just makes it ready to be set or freed, but does not define a value for the MPI.  <a href="#a99c7cca612b47dc4f3b96905c4f9d69e">More...</a><br /></td></tr>
<tr class="separator:a99c7cca612b47dc4f3b96905c4f9d69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abffd5d8382cb86c089a1ef2bebb90f9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#abffd5d8382cb86c089a1ef2bebb90f9f">mbedtls_mpi_free</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X)</td></tr>
<tr class="memdesc:abffd5d8382cb86c089a1ef2bebb90f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unallocate one MPI.  <a href="#abffd5d8382cb86c089a1ef2bebb90f9f">More...</a><br /></td></tr>
<tr class="separator:abffd5d8382cb86c089a1ef2bebb90f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22263d90d838cb58f271aa8f1920843d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a22263d90d838cb58f271aa8f1920843d">mbedtls_mpi_grow</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t nblimbs)</td></tr>
<tr class="memdesc:a22263d90d838cb58f271aa8f1920843d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enlarge to the specified number of limbs.  <a href="#a22263d90d838cb58f271aa8f1920843d">More...</a><br /></td></tr>
<tr class="separator:a22263d90d838cb58f271aa8f1920843d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaaef229c95711a53b2f38eff0a2c14a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#abaaef229c95711a53b2f38eff0a2c14a">mbedtls_mpi_shrink</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t nblimbs)</td></tr>
<tr class="memdesc:abaaef229c95711a53b2f38eff0a2c14a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize down, keeping at least the specified number of limbs.  <a href="#abaaef229c95711a53b2f38eff0a2c14a">More...</a><br /></td></tr>
<tr class="separator:abaaef229c95711a53b2f38eff0a2c14a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f722863f9fd9098690f8a9db9962044"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a2f722863f9fd9098690f8a9db9962044">mbedtls_mpi_copy</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Y)</td></tr>
<tr class="memdesc:a2f722863f9fd9098690f8a9db9962044"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the contents of Y into X.  <a href="#a2f722863f9fd9098690f8a9db9962044">More...</a><br /></td></tr>
<tr class="separator:a2f722863f9fd9098690f8a9db9962044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60d0c82301d6cf50e69808b6a3c5cd63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a60d0c82301d6cf50e69808b6a3c5cd63">mbedtls_mpi_swap</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Y)</td></tr>
<tr class="memdesc:a60d0c82301d6cf50e69808b6a3c5cd63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of X and Y.  <a href="#a60d0c82301d6cf50e69808b6a3c5cd63">More...</a><br /></td></tr>
<tr class="separator:a60d0c82301d6cf50e69808b6a3c5cd63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a623c565706f22d8fbcc665ba49a51c7c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a623c565706f22d8fbcc665ba49a51c7c">mbedtls_mpi_safe_cond_assign</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Y, unsigned char assign)</td></tr>
<tr class="memdesc:a623c565706f22d8fbcc665ba49a51c7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Safe conditional assignement X = Y if assign is 1.  <a href="#a623c565706f22d8fbcc665ba49a51c7c">More...</a><br /></td></tr>
<tr class="separator:a623c565706f22d8fbcc665ba49a51c7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a956c54f87d26ceb6da98043805e67684"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a956c54f87d26ceb6da98043805e67684">mbedtls_mpi_safe_cond_swap</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Y, unsigned char assign)</td></tr>
<tr class="memdesc:a956c54f87d26ceb6da98043805e67684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Safe conditional swap X &lt;-&gt; Y if swap is 1.  <a href="#a956c54f87d26ceb6da98043805e67684">More...</a><br /></td></tr>
<tr class="separator:a956c54f87d26ceb6da98043805e67684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65644d139404325130491759a5651f6d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a65644d139404325130491759a5651f6d">mbedtls_mpi_lset</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a> z)</td></tr>
<tr class="memdesc:a65644d139404325130491759a5651f6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set value from integer.  <a href="#a65644d139404325130491759a5651f6d">More...</a><br /></td></tr>
<tr class="separator:a65644d139404325130491759a5651f6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfc40fb7192507bc0eeb9f24e8e69c2d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#abfc40fb7192507bc0eeb9f24e8e69c2d">mbedtls_mpi_get_bit</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t pos)</td></tr>
<tr class="memdesc:abfc40fb7192507bc0eeb9f24e8e69c2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a specific bit from X.  <a href="#abfc40fb7192507bc0eeb9f24e8e69c2d">More...</a><br /></td></tr>
<tr class="separator:abfc40fb7192507bc0eeb9f24e8e69c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a475e7957e7a60993fc6e801d9913b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a39a475e7957e7a60993fc6e801d9913b">mbedtls_mpi_set_bit</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t pos, unsigned char val)</td></tr>
<tr class="memdesc:a39a475e7957e7a60993fc6e801d9913b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a bit of X to a specific value of 0 or 1.  <a href="#a39a475e7957e7a60993fc6e801d9913b">More...</a><br /></td></tr>
<tr class="separator:a39a475e7957e7a60993fc6e801d9913b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa67117fd61db9570746dc2ffca88d004"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#aa67117fd61db9570746dc2ffca88d004">mbedtls_mpi_lsb</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X)</td></tr>
<tr class="memdesc:aa67117fd61db9570746dc2ffca88d004"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of zero-bits before the least significant '1' bit.  <a href="#aa67117fd61db9570746dc2ffca88d004">More...</a><br /></td></tr>
<tr class="separator:aa67117fd61db9570746dc2ffca88d004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a681ab2710d044c0cb091b6497c6ed395"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a681ab2710d044c0cb091b6497c6ed395">mbedtls_mpi_bitlen</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X)</td></tr>
<tr class="memdesc:a681ab2710d044c0cb091b6497c6ed395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of bits up to and including the most significant '1' bit'.  <a href="#a681ab2710d044c0cb091b6497c6ed395">More...</a><br /></td></tr>
<tr class="separator:a681ab2710d044c0cb091b6497c6ed395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a538110c9da02704d34d67a07d16fb3ab"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a538110c9da02704d34d67a07d16fb3ab">mbedtls_mpi_size</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X)</td></tr>
<tr class="memdesc:a538110c9da02704d34d67a07d16fb3ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the total size in bytes.  <a href="#a538110c9da02704d34d67a07d16fb3ab">More...</a><br /></td></tr>
<tr class="separator:a538110c9da02704d34d67a07d16fb3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15efd3f2f86700b69f6c18d34ac05758"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a15efd3f2f86700b69f6c18d34ac05758">mbedtls_mpi_read_string</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, int radix, const char *s)</td></tr>
<tr class="memdesc:a15efd3f2f86700b69f6c18d34ac05758"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import from an ASCII string.  <a href="#a15efd3f2f86700b69f6c18d34ac05758">More...</a><br /></td></tr>
<tr class="separator:a15efd3f2f86700b69f6c18d34ac05758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2197e4833449c3e505ec8d11b348913"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ab2197e4833449c3e505ec8d11b348913">mbedtls_mpi_write_string</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, int radix, char *buf, size_t buflen, size_t *olen)</td></tr>
<tr class="memdesc:ab2197e4833449c3e505ec8d11b348913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export into an ASCII string.  <a href="#ab2197e4833449c3e505ec8d11b348913">More...</a><br /></td></tr>
<tr class="separator:ab2197e4833449c3e505ec8d11b348913"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb4d0ed28a946cfa83219ae8709941d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#acb4d0ed28a946cfa83219ae8709941d4">mbedtls_mpi_read_file</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, int radix, FILE *fin)</td></tr>
<tr class="memdesc:acb4d0ed28a946cfa83219ae8709941d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read MPI from a line in an opened file.  <a href="#acb4d0ed28a946cfa83219ae8709941d4">More...</a><br /></td></tr>
<tr class="separator:acb4d0ed28a946cfa83219ae8709941d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab23e312f4a0479c8b63a4bc9328e1324"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ab23e312f4a0479c8b63a4bc9328e1324">mbedtls_mpi_write_file</a> (const char *p, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, int radix, FILE *fout)</td></tr>
<tr class="memdesc:ab23e312f4a0479c8b63a4bc9328e1324"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write X into an opened file, or stdout if fout is NULL.  <a href="#ab23e312f4a0479c8b63a4bc9328e1324">More...</a><br /></td></tr>
<tr class="separator:ab23e312f4a0479c8b63a4bc9328e1324"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f62c99e53eb034daea486e5d5d83ca"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a68f62c99e53eb034daea486e5d5d83ca">mbedtls_mpi_read_binary</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:a68f62c99e53eb034daea486e5d5d83ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import X from unsigned binary data, big endian.  <a href="#a68f62c99e53eb034daea486e5d5d83ca">More...</a><br /></td></tr>
<tr class="separator:a68f62c99e53eb034daea486e5d5d83ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceb4aeeb376a582a5e904135205ada44"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#aceb4aeeb376a582a5e904135205ada44">mbedtls_mpi_write_binary</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:aceb4aeeb376a582a5e904135205ada44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export X into unsigned binary data, big endian. Always fills the whole buffer, which will start with zeros if the number is smaller.  <a href="#aceb4aeeb376a582a5e904135205ada44">More...</a><br /></td></tr>
<tr class="separator:aceb4aeeb376a582a5e904135205ada44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d48a56155412dda56e67256be4d10d9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a8d48a56155412dda56e67256be4d10d9">mbedtls_mpi_shift_l</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t count)</td></tr>
<tr class="memdesc:a8d48a56155412dda56e67256be4d10d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Left-shift: X &lt;&lt;= count.  <a href="#a8d48a56155412dda56e67256be4d10d9">More...</a><br /></td></tr>
<tr class="separator:a8d48a56155412dda56e67256be4d10d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee1140147b1e807645cebf64ebded168"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#aee1140147b1e807645cebf64ebded168">mbedtls_mpi_shift_r</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t count)</td></tr>
<tr class="memdesc:aee1140147b1e807645cebf64ebded168"><td class="mdescLeft">&#160;</td><td class="mdescRight">Right-shift: X &gt;&gt;= count.  <a href="#aee1140147b1e807645cebf64ebded168">More...</a><br /></td></tr>
<tr class="separator:aee1140147b1e807645cebf64ebded168"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81ea45be21ea77f5d8deae9e99d9a11b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a81ea45be21ea77f5d8deae9e99d9a11b">mbedtls_mpi_cmp_abs</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Y)</td></tr>
<tr class="memdesc:a81ea45be21ea77f5d8deae9e99d9a11b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare unsigned values.  <a href="#a81ea45be21ea77f5d8deae9e99d9a11b">More...</a><br /></td></tr>
<tr class="separator:a81ea45be21ea77f5d8deae9e99d9a11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a762dd8add46384d4935a4aecc125096e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a762dd8add46384d4935a4aecc125096e">mbedtls_mpi_cmp_mpi</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Y)</td></tr>
<tr class="memdesc:a762dd8add46384d4935a4aecc125096e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare signed values.  <a href="#a762dd8add46384d4935a4aecc125096e">More...</a><br /></td></tr>
<tr class="separator:a762dd8add46384d4935a4aecc125096e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0e7f426326afc7d3fde309a7a8d82fa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ad0e7f426326afc7d3fde309a7a8d82fa">mbedtls_mpi_cmp_int</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a> z)</td></tr>
<tr class="memdesc:ad0e7f426326afc7d3fde309a7a8d82fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare signed values.  <a href="#ad0e7f426326afc7d3fde309a7a8d82fa">More...</a><br /></td></tr>
<tr class="separator:ad0e7f426326afc7d3fde309a7a8d82fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ddb2c6dc59dd39874695e04ff40afdb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a5ddb2c6dc59dd39874695e04ff40afdb">mbedtls_mpi_add_abs</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:a5ddb2c6dc59dd39874695e04ff40afdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned addition: X = |A| + |B|.  <a href="#a5ddb2c6dc59dd39874695e04ff40afdb">More...</a><br /></td></tr>
<tr class="separator:a5ddb2c6dc59dd39874695e04ff40afdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5840808639d50a98edbede345251293"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ad5840808639d50a98edbede345251293">mbedtls_mpi_sub_abs</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:ad5840808639d50a98edbede345251293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned subtraction: X = |A| - |B|.  <a href="#ad5840808639d50a98edbede345251293">More...</a><br /></td></tr>
<tr class="separator:ad5840808639d50a98edbede345251293"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fd1cfd561c1ada500097f860aa4fe68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a5fd1cfd561c1ada500097f860aa4fe68">mbedtls_mpi_add_mpi</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:a5fd1cfd561c1ada500097f860aa4fe68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed addition: X = A + B.  <a href="#a5fd1cfd561c1ada500097f860aa4fe68">More...</a><br /></td></tr>
<tr class="separator:a5fd1cfd561c1ada500097f860aa4fe68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a38a8d9f5052491df94d8010bd34955"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a1a38a8d9f5052491df94d8010bd34955">mbedtls_mpi_sub_mpi</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:a1a38a8d9f5052491df94d8010bd34955"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed subtraction: X = A - B.  <a href="#a1a38a8d9f5052491df94d8010bd34955">More...</a><br /></td></tr>
<tr class="separator:a1a38a8d9f5052491df94d8010bd34955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e6f6ba90e3c73ce6022ed7354443b2a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a1e6f6ba90e3c73ce6022ed7354443b2a">mbedtls_mpi_add_int</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a> b)</td></tr>
<tr class="memdesc:a1e6f6ba90e3c73ce6022ed7354443b2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed addition: X = A + b.  <a href="#a1e6f6ba90e3c73ce6022ed7354443b2a">More...</a><br /></td></tr>
<tr class="separator:a1e6f6ba90e3c73ce6022ed7354443b2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a925403c039d920059297cfb4ad5bad"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a1a925403c039d920059297cfb4ad5bad">mbedtls_mpi_sub_int</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a> b)</td></tr>
<tr class="memdesc:a1a925403c039d920059297cfb4ad5bad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed subtraction: X = A - b.  <a href="#a1a925403c039d920059297cfb4ad5bad">More...</a><br /></td></tr>
<tr class="separator:a1a925403c039d920059297cfb4ad5bad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9065cae8e3a287095b4043317f6b706"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#aa9065cae8e3a287095b4043317f6b706">mbedtls_mpi_mul_mpi</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:aa9065cae8e3a287095b4043317f6b706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Baseline multiplication: X = A * B.  <a href="#aa9065cae8e3a287095b4043317f6b706">More...</a><br /></td></tr>
<tr class="separator:aa9065cae8e3a287095b4043317f6b706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4a22cb29f7e19dd4c823d1868f45eab"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ac4a22cb29f7e19dd4c823d1868f45eab">mbedtls_mpi_mul_int</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, <a class="el" href="bignum_8h.html#ae5f62e04027ff6e12397b3e94c3912cd">mbedtls_mpi_uint</a> b)</td></tr>
<tr class="memdesc:ac4a22cb29f7e19dd4c823d1868f45eab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Baseline multiplication: X = A * b.  <a href="#ac4a22cb29f7e19dd4c823d1868f45eab">More...</a><br /></td></tr>
<tr class="separator:ac4a22cb29f7e19dd4c823d1868f45eab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f3db711e21b4fe2f1a009099478e796"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a5f3db711e21b4fe2f1a009099478e796">mbedtls_mpi_div_mpi</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Q, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *R, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:a5f3db711e21b4fe2f1a009099478e796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division by <a class="el" href="structmbedtls__mpi.html" title="MPI structure. ">mbedtls_mpi</a>: A = Q * B + R.  <a href="#a5f3db711e21b4fe2f1a009099478e796">More...</a><br /></td></tr>
<tr class="separator:a5f3db711e21b4fe2f1a009099478e796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ffac96dd27bbe62dba7c6307edd2c60"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a7ffac96dd27bbe62dba7c6307edd2c60">mbedtls_mpi_div_int</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *Q, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *R, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a> b)</td></tr>
<tr class="memdesc:a7ffac96dd27bbe62dba7c6307edd2c60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division by int: A = Q * b + R.  <a href="#a7ffac96dd27bbe62dba7c6307edd2c60">More...</a><br /></td></tr>
<tr class="separator:a7ffac96dd27bbe62dba7c6307edd2c60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b9db15054cb320c69dd065d3f17e674"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a7b9db15054cb320c69dd065d3f17e674">mbedtls_mpi_mod_mpi</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *R, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:a7b9db15054cb320c69dd065d3f17e674"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulo: R = A mod B.  <a href="#a7b9db15054cb320c69dd065d3f17e674">More...</a><br /></td></tr>
<tr class="separator:a7b9db15054cb320c69dd065d3f17e674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d2a4a4c3d64490e26e05153ed798058"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a3d2a4a4c3d64490e26e05153ed798058">mbedtls_mpi_mod_int</a> (<a class="el" href="bignum_8h.html#ae5f62e04027ff6e12397b3e94c3912cd">mbedtls_mpi_uint</a> *r, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a> b)</td></tr>
<tr class="memdesc:a3d2a4a4c3d64490e26e05153ed798058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulo: r = A mod b.  <a href="#a3d2a4a4c3d64490e26e05153ed798058">More...</a><br /></td></tr>
<tr class="separator:a3d2a4a4c3d64490e26e05153ed798058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55433a16c951178e2b98a01c6386239e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a55433a16c951178e2b98a01c6386239e">mbedtls_mpi_exp_mod</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *E, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *N, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *_RR)</td></tr>
<tr class="memdesc:a55433a16c951178e2b98a01c6386239e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sliding-window exponentiation: X = A^E mod N.  <a href="#a55433a16c951178e2b98a01c6386239e">More...</a><br /></td></tr>
<tr class="separator:a55433a16c951178e2b98a01c6386239e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81b99c0a79d3e8ddedfd4a6ee37ceb1e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a81b99c0a79d3e8ddedfd4a6ee37ceb1e">mbedtls_mpi_fill_random</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t size, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a81b99c0a79d3e8ddedfd4a6ee37ceb1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill an MPI X with size bytes of random.  <a href="#a81b99c0a79d3e8ddedfd4a6ee37ceb1e">More...</a><br /></td></tr>
<tr class="separator:a81b99c0a79d3e8ddedfd4a6ee37ceb1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeebcfa54676b583d2e767b1c01c9844f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#aeebcfa54676b583d2e767b1c01c9844f">mbedtls_mpi_gcd</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *G, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *B)</td></tr>
<tr class="memdesc:aeebcfa54676b583d2e767b1c01c9844f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Greatest common divisor: G = gcd(A, B)  <a href="#aeebcfa54676b583d2e767b1c01c9844f">More...</a><br /></td></tr>
<tr class="separator:aeebcfa54676b583d2e767b1c01c9844f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb720bf24bc902fe6edd2ce0cd9ce6e3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#abb720bf24bc902fe6edd2ce0cd9ce6e3">mbedtls_mpi_inv_mod</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *A, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *N)</td></tr>
<tr class="memdesc:abb720bf24bc902fe6edd2ce0cd9ce6e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modular inverse: X = A^-1 mod N.  <a href="#abb720bf24bc902fe6edd2ce0cd9ce6e3">More...</a><br /></td></tr>
<tr class="separator:abb720bf24bc902fe6edd2ce0cd9ce6e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e5d03e6e1758bf871d23c96f7b91394"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a5e5d03e6e1758bf871d23c96f7b91394">mbedtls_mpi_is_prime</a> (const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a5e5d03e6e1758bf871d23c96f7b91394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Miller-Rabin primality test.  <a href="#a5e5d03e6e1758bf871d23c96f7b91394">More...</a><br /></td></tr>
<tr class="separator:a5e5d03e6e1758bf871d23c96f7b91394"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1267890b0187b0a73ce0e7ce4ab4929"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#ad1267890b0187b0a73ce0e7ce4ab4929">mbedtls_mpi_gen_prime</a> (<a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *X, size_t nbits, int dh_flag, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:ad1267890b0187b0a73ce0e7ce4ab4929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime number generation.  <a href="#ad1267890b0187b0a73ce0e7ce4ab4929">More...</a><br /></td></tr>
<tr class="separator:ad1267890b0187b0a73ce0e7ce4ab4929"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75b6f4376bdceb63ef5a65737c1a638c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bignum_8h.html#a75b6f4376bdceb63ef5a65737c1a638c">mbedtls_mpi_self_test</a> (int verbose)</td></tr>
<tr class="memdesc:a75b6f4376bdceb63ef5a65737c1a638c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checkup routine.  <a href="#a75b6f4376bdceb63ef5a65737c1a638c">More...</a><br /></td></tr>
<tr class="separator:a75b6f4376bdceb63ef5a65737c1a638c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Multi-precision integer library. </p>

<p class="definition">Definition in file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a9bb66b22357ba30dedfe856efeab5544"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bb66b22357ba30dedfe856efeab5544">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_ALLOC_FAILED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_ALLOC_FAILED&#160;&#160;&#160;-0x0010</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Memory allocation failed. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00047">47</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a3989a97b1d92d04dd05242731e6f37f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3989a97b1d92d04dd05242731e6f37f2">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_BAD_INPUT_DATA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_BAD_INPUT_DATA&#160;&#160;&#160;-0x0004</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Bad input parameters to function. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00041">41</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a7fc9b9c20686c88b949d0a35c0def909"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fc9b9c20686c88b949d0a35c0def909">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL&#160;&#160;&#160;-0x0008</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The buffer is too small to write to. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00043">43</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a97e2c5a552770757da26b4a9b2e56f6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97e2c5a552770757da26b4a9b2e56f6c">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_DIVISION_BY_ZERO</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_DIVISION_BY_ZERO&#160;&#160;&#160;-0x000C</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The input argument for division is zero, which is not allowed. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00045">45</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a5ba505f058780047978dcdafd50d0b1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ba505f058780047978dcdafd50d0b1e">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_FILE_IO_ERROR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_FILE_IO_ERROR&#160;&#160;&#160;-0x0002</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>An error occurred while reading from or writing to a file. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00040">40</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a0ef495d9a083d986f00e5f604126382f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ef495d9a083d986f00e5f604126382f">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_INVALID_CHARACTER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_INVALID_CHARACTER&#160;&#160;&#160;-0x0006</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>There is an invalid character in the digit string. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00042">42</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="ab7f06e7dfde557a02fe7137d4d47eed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7f06e7dfde557a02fe7137d4d47eed3">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_NEGATIVE_VALUE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_NEGATIVE_VALUE&#160;&#160;&#160;-0x000A</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The input arguments are negative or result in illegal output. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00044">44</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a24f0dfbee8599f6e72852247d5681503"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24f0dfbee8599f6e72852247d5681503">&#9670;&nbsp;</a></span>MBEDTLS_ERR_MPI_NOT_ACCEPTABLE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_MPI_NOT_ACCEPTABLE&#160;&#160;&#160;-0x000E</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The input arguments are not acceptable. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00046">46</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="ae9ed748679544c60d2b429ee2bc93818"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9ed748679544c60d2b429ee2bc93818">&#9670;&nbsp;</a></span>MBEDTLS_HAVE_INT32</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_HAVE_INT32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00163">163</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="ae1ace2caabfb2c45a1dab0a8f0bd6b66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1ace2caabfb2c45a1dab0a8f0bd6b66">&#9670;&nbsp;</a></span>MBEDTLS_HAVE_UDBL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_HAVE_UDBL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00169">169</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a844008ccbe6672f636d250230755d5ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a844008ccbe6672f636d250230755d5ee">&#9670;&nbsp;</a></span>MBEDTLS_LN_2_DIV_LN_10_SCALE100</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_LN_2_DIV_LN_10_SCALE100&#160;&#160;&#160;332</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00101">101</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="ab0a21d28acd6b59cc60a45547e2412af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0a21d28acd6b59cc60a45547e2412af">&#9670;&nbsp;</a></span>MBEDTLS_MPI_CHK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_CHK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">f</td><td>)</td>
          <td>&#160;&#160;&#160;do { if( ( ret = f ) != 0 ) goto cleanup; } while( 0 )</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00049">49</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a134ba62182ca105e273d465861f5a4d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a134ba62182ca105e273d465861f5a4d5">&#9670;&nbsp;</a></span>MBEDTLS_MPI_MAX_BITS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_MAX_BITS&#160;&#160;&#160;( 8 * <a class="el" href="bignum_8h.html#a02bfffc46b7b2e10c0080d29bb56e6b0">MBEDTLS_MPI_MAX_SIZE</a> )</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maximum number of bits for usable MPIs. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00080">80</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a5e807323a5823be0f1e7eef38dce9cb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e807323a5823be0f1e7eef38dce9cb0">&#9670;&nbsp;</a></span>MBEDTLS_MPI_MAX_BITS_SCALE100</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_MAX_BITS_SCALE100&#160;&#160;&#160;( 100 * <a class="el" href="bignum_8h.html#a134ba62182ca105e273d465861f5a4d5">MBEDTLS_MPI_MAX_BITS</a> )</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00100">100</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a50617c9e123096b168d65a9d957b2ebe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50617c9e123096b168d65a9d957b2ebe">&#9670;&nbsp;</a></span>MBEDTLS_MPI_MAX_LIMBS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_MAX_LIMBS&#160;&#160;&#160;10000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00054">54</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a02bfffc46b7b2e10c0080d29bb56e6b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02bfffc46b7b2e10c0080d29bb56e6b0">&#9670;&nbsp;</a></span>MBEDTLS_MPI_MAX_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_MAX_SIZE&#160;&#160;&#160;1024</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maximum number of bytes for usable MPIs. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00077">77</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a95aa572170385895daf25b70c6f0d63f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95aa572170385895daf25b70c6f0d63f">&#9670;&nbsp;</a></span>MBEDTLS_MPI_RW_BUFFER_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_RW_BUFFER_SIZE&#160;&#160;&#160;( ((<a class="el" href="bignum_8h.html#a5e807323a5823be0f1e7eef38dce9cb0">MBEDTLS_MPI_MAX_BITS_SCALE100</a> + <a class="el" href="bignum_8h.html#a844008ccbe6672f636d250230755d5ee">MBEDTLS_LN_2_DIV_LN_10_SCALE100</a> - 1) / <a class="el" href="bignum_8h.html#a844008ccbe6672f636d250230755d5ee">MBEDTLS_LN_2_DIV_LN_10_SCALE100</a>) + 10 + 6 )</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00102">102</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="a7cec1de79c434f1053488b1d3b9454c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cec1de79c434f1053488b1d3b9454c4">&#9670;&nbsp;</a></span>MBEDTLS_MPI_WINDOW_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_MPI_WINDOW_SIZE&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maximum windows size used. </p>

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00066">66</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a831621e03bb6892a866c36673644612e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a831621e03bb6892a866c36673644612e">&#9670;&nbsp;</a></span>mbedtls_mpi_sint</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int32_t <a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00165">165</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="ae5f62e04027ff6e12397b3e94c3912cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5f62e04027ff6e12397b3e94c3912cd">&#9670;&nbsp;</a></span>mbedtls_mpi_uint</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t <a class="el" href="bignum_8h.html#ae5f62e04027ff6e12397b3e94c3912cd">mbedtls_mpi_uint</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00166">166</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<a id="af64c95417575870c4f465c0a663fb51b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af64c95417575870c4f465c0a663fb51b">&#9670;&nbsp;</a></span>mbedtls_t_udbl</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="bignum_8h.html#af64c95417575870c4f465c0a663fb51b">mbedtls_t_udbl</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="bignum_8h_source.html#l00168">168</a> of file <a class="el" href="bignum_8h_source.html">bignum.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a5ddb2c6dc59dd39874695e04ff40afdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ddb2c6dc59dd39874695e04ff40afdb">&#9670;&nbsp;</a></span>mbedtls_mpi_add_abs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_add_abs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unsigned addition: X = |A| + |B|. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a1e6f6ba90e3c73ce6022ed7354443b2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e6f6ba90e3c73ce6022ed7354443b2a">&#9670;&nbsp;</a></span>mbedtls_mpi_add_int()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_add_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signed addition: X = A + b. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">b</td><td>The integer value to add</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a5fd1cfd561c1ada500097f860aa4fe68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fd1cfd561c1ada500097f860aa4fe68">&#9670;&nbsp;</a></span>mbedtls_mpi_add_mpi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_add_mpi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signed addition: X = A + B. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a681ab2710d044c0cb091b6497c6ed395"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a681ab2710d044c0cb091b6497c6ed395">&#9670;&nbsp;</a></span>mbedtls_mpi_bitlen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mbedtls_mpi_bitlen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the number of bits up to and including the most significant '1' bit'. </p>
<p>Note: Thus also the one-based index of the most significant '1' bit</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a81ea45be21ea77f5d8deae9e99d9a11b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81ea45be21ea77f5d8deae9e99d9a11b">&#9670;&nbsp;</a></span>mbedtls_mpi_cmp_abs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_cmp_abs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare unsigned values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">Y</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if |X| is greater than |Y|, -1 if |X| is lesser than |Y| or 0 if |X| is equal to |Y| </dd></dl>

</div>
</div>
<a id="ad0e7f426326afc7d3fde309a7a8d82fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0e7f426326afc7d3fde309a7a8d82fa">&#9670;&nbsp;</a></span>mbedtls_mpi_cmp_int()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_cmp_int </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a>&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare signed values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">z</td><td>The integer value to compare to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if X is greater than z, -1 if X is lesser than z or 0 if X is equal to z </dd></dl>

</div>
</div>
<a id="a762dd8add46384d4935a4aecc125096e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a762dd8add46384d4935a4aecc125096e">&#9670;&nbsp;</a></span>mbedtls_mpi_cmp_mpi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_cmp_mpi </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare signed values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">Y</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if X is greater than Y, -1 if X is lesser than Y or 0 if X is equal to Y </dd></dl>

</div>
</div>
<a id="a2f722863f9fd9098690f8a9db9962044"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f722863f9fd9098690f8a9db9962044">&#9670;&nbsp;</a></span>mbedtls_mpi_copy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the contents of Y into X. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">Y</td><td>Source MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a7ffac96dd27bbe62dba7c6307edd2c60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ffac96dd27bbe62dba7c6307edd2c60">&#9670;&nbsp;</a></span>mbedtls_mpi_div_int()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_div_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>R</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Division by int: A = Q * b + R. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Q</td><td>Destination MPI for the quotient </td></tr>
    <tr><td class="paramname">R</td><td>Destination MPI for the rest value </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">b</td><td>Integer to divide by</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if b == 0</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Either Q or R can be NULL. </dd></dl>

</div>
</div>
<a id="a5f3db711e21b4fe2f1a009099478e796"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f3db711e21b4fe2f1a009099478e796">&#9670;&nbsp;</a></span>mbedtls_mpi_div_mpi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_div_mpi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>R</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Division by <a class="el" href="structmbedtls__mpi.html" title="MPI structure. ">mbedtls_mpi</a>: A = Q * B + R. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Q</td><td>Destination MPI for the quotient </td></tr>
    <tr><td class="paramname">R</td><td>Destination MPI for the rest value </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if B == 0</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Either Q or R can be NULL. </dd></dl>

</div>
</div>
<a id="a55433a16c951178e2b98a01c6386239e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55433a16c951178e2b98a01c6386239e">&#9670;&nbsp;</a></span>mbedtls_mpi_exp_mod()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_exp_mod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>E</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>_RR</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sliding-window exponentiation: X = A^E mod N. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">E</td><td>Exponent MPI </td></tr>
    <tr><td class="paramname">N</td><td>Modular MPI </td></tr>
    <tr><td class="paramname">_RR</td><td>Speed-up MPI used for recalculations</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_BAD_INPUT_DATA if N is negative or even or if E is negative</dd></dl>
<dl class="section note"><dt>Note</dt><dd>_RR is used to avoid re-computing R*R mod N across multiple calls, which speeds up things a bit. It can be set to NULL if the extra performance is unneeded. </dd></dl>

</div>
</div>
<a id="a81b99c0a79d3e8ddedfd4a6ee37ceb1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81b99c0a79d3e8ddedfd4a6ee37ceb1e">&#9670;&nbsp;</a></span>mbedtls_mpi_fill_random()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_fill_random </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *, unsigned char *, size_t)&#160;</td>
          <td class="paramname"><em>f_rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_rng</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill an MPI X with size bytes of random. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">size</td><td>Size in bytes </td></tr>
    <tr><td class="paramname">f_rng</td><td>RNG function </td></tr>
    <tr><td class="paramname">p_rng</td><td>RNG parameter</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The bytes obtained from the PRNG are interpreted as a big-endian representation of an MPI; this can be relevant in applications like deterministic ECDSA. </dd></dl>

</div>
</div>
<a id="abffd5d8382cb86c089a1ef2bebb90f9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abffd5d8382cb86c089a1ef2bebb90f9f">&#9670;&nbsp;</a></span>mbedtls_mpi_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_mpi_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unallocate one MPI. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>One MPI to unallocate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aeebcfa54676b583d2e767b1c01c9844f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeebcfa54676b583d2e767b1c01c9844f">&#9670;&nbsp;</a></span>mbedtls_mpi_gcd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_gcd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>G</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Greatest common divisor: G = gcd(A, B) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">G</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="ad1267890b0187b0a73ce0e7ce4ab4929"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1267890b0187b0a73ce0e7ce4ab4929">&#9670;&nbsp;</a></span>mbedtls_mpi_gen_prime()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_gen_prime </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dh_flag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *, unsigned char *, size_t)&#160;</td>
          <td class="paramname"><em>f_rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_rng</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prime number generation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">nbits</td><td>Required size of X in bits ( 3 &lt;= nbits &lt;= MBEDTLS_MPI_MAX_BITS ) </td></tr>
    <tr><td class="paramname">dh_flag</td><td>If 1, then (X-1)/2 will be prime too </td></tr>
    <tr><td class="paramname">f_rng</td><td>RNG function </td></tr>
    <tr><td class="paramname">p_rng</td><td>RNG parameter</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful (probably prime), MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_BAD_INPUT_DATA if nbits is &lt; 3 </dd></dl>

</div>
</div>
<a id="abfc40fb7192507bc0eeb9f24e8e69c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfc40fb7192507bc0eeb9f24e8e69c2d">&#9670;&nbsp;</a></span>mbedtls_mpi_get_bit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_get_bit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>pos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a specific bit from X. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to use </td></tr>
    <tr><td class="paramname">pos</td><td>Zero-based index of the bit in X</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Either a 0 or a 1 </dd></dl>

</div>
</div>
<a id="a22263d90d838cb58f271aa8f1920843d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22263d90d838cb58f271aa8f1920843d">&#9670;&nbsp;</a></span>mbedtls_mpi_grow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_grow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nblimbs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enlarge to the specified number of limbs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to grow </td></tr>
    <tr><td class="paramname">nblimbs</td><td>The target number of limbs</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a99c7cca612b47dc4f3b96905c4f9d69e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99c7cca612b47dc4f3b96905c4f9d69e">&#9670;&nbsp;</a></span>mbedtls_mpi_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_mpi_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize one MPI (make internal references valid) This just makes it ready to be set or freed, but does not define a value for the MPI. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>One MPI to initialize. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="abb720bf24bc902fe6edd2ce0cd9ce6e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb720bf24bc902fe6edd2ce0cd9ce6e3">&#9670;&nbsp;</a></span>mbedtls_mpi_inv_mod()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_inv_mod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modular inverse: X = A^-1 mod N. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">N</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_BAD_INPUT_DATA if N is &lt;= 1, MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N. </dd></dl>

</div>
</div>
<a id="a5e5d03e6e1758bf871d23c96f7b91394"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e5d03e6e1758bf871d23c96f7b91394">&#9670;&nbsp;</a></span>mbedtls_mpi_is_prime()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_is_prime </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *, unsigned char *, size_t)&#160;</td>
          <td class="paramname"><em>f_rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_rng</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Miller-Rabin primality test. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to check </td></tr>
    <tr><td class="paramname">f_rng</td><td>RNG function </td></tr>
    <tr><td class="paramname">p_rng</td><td>RNG parameter</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful (probably prime), MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if X is not prime </dd></dl>

</div>
</div>
<a id="aa67117fd61db9570746dc2ffca88d004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa67117fd61db9570746dc2ffca88d004">&#9670;&nbsp;</a></span>mbedtls_mpi_lsb()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mbedtls_mpi_lsb </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the number of zero-bits before the least significant '1' bit. </p>
<p>Note: Thus also the zero-based index of the least significant '1' bit</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a65644d139404325130491759a5651f6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65644d139404325130491759a5651f6d">&#9670;&nbsp;</a></span>mbedtls_mpi_lset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_lset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a>&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set value from integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to set </td></tr>
    <tr><td class="paramname">z</td><td>Value to use</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a3d2a4a4c3d64490e26e05153ed798058"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d2a4a4c3d64490e26e05153ed798058">&#9670;&nbsp;</a></span>mbedtls_mpi_mod_int()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_mod_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#ae5f62e04027ff6e12397b3e94c3912cd">mbedtls_mpi_uint</a> *&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modulo: r = A mod b. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>Destination mbedtls_mpi_uint </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">b</td><td>Integer to divide by</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if b == 0, MBEDTLS_ERR_MPI_NEGATIVE_VALUE if b &lt; 0 </dd></dl>

</div>
</div>
<a id="a7b9db15054cb320c69dd065d3f17e674"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b9db15054cb320c69dd065d3f17e674">&#9670;&nbsp;</a></span>mbedtls_mpi_mod_mpi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_mod_mpi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>R</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modulo: R = A mod B. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">R</td><td>Destination MPI for the rest value </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if B == 0, MBEDTLS_ERR_MPI_NEGATIVE_VALUE if B &lt; 0 </dd></dl>

</div>
</div>
<a id="ac4a22cb29f7e19dd4c823d1868f45eab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4a22cb29f7e19dd4c823d1868f45eab">&#9670;&nbsp;</a></span>mbedtls_mpi_mul_int()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_mul_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#ae5f62e04027ff6e12397b3e94c3912cd">mbedtls_mpi_uint</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Baseline multiplication: X = A * b. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">b</td><td>The unsigned integer value to multiply with</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>b is unsigned</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="aa9065cae8e3a287095b4043317f6b706"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9065cae8e3a287095b4043317f6b706">&#9670;&nbsp;</a></span>mbedtls_mpi_mul_mpi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_mul_mpi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Baseline multiplication: X = A * B. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a68f62c99e53eb034daea486e5d5d83ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68f62c99e53eb034daea486e5d5d83ca">&#9670;&nbsp;</a></span>mbedtls_mpi_read_binary()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_read_binary </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buflen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Import X from unsigned binary data, big endian. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">buf</td><td>Input buffer </td></tr>
    <tr><td class="paramname">buflen</td><td>Input buffer size</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="acb4d0ed28a946cfa83219ae8709941d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb4d0ed28a946cfa83219ae8709941d4">&#9670;&nbsp;</a></span>mbedtls_mpi_read_file()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_read_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>fin</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read MPI from a line in an opened file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">radix</td><td>Input numeric base </td></tr>
    <tr><td class="paramname">fin</td><td>Input file handle</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the file read buffer is too small or a MBEDTLS_ERR_MPI_XXX error code</dd></dl>
<dl class="section note"><dt>Note</dt><dd>On success, this function advances the file stream to the end of the current line or to EOF.</dd></dl>
<p>The function returns 0 on an empty line.</p>
<p>Leading whitespaces are ignored, as is a '0x' prefix for radix 16. </p>

</div>
</div>
<a id="a15efd3f2f86700b69f6c18d34ac05758"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15efd3f2f86700b69f6c18d34ac05758">&#9670;&nbsp;</a></span>mbedtls_mpi_read_string()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_read_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Import from an ASCII string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">radix</td><td>Input numeric base </td></tr>
    <tr><td class="paramname">s</td><td>Null-terminated string buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a MBEDTLS_ERR_MPI_XXX error code </dd></dl>

</div>
</div>
<a id="a623c565706f22d8fbcc665ba49a51c7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a623c565706f22d8fbcc665ba49a51c7c">&#9670;&nbsp;</a></span>mbedtls_mpi_safe_cond_assign()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_safe_cond_assign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>assign</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Safe conditional assignement X = Y if assign is 1. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to conditionally assign to </td></tr>
    <tr><td class="paramname">Y</td><td>Value to be assigned </td></tr>
    <tr><td class="paramname">assign</td><td>1: perform the assignment, 0: keep X's original value</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed,</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is equivalent to if( assign ) mbedtls_mpi_copy( X, Y ); except that it avoids leaking any information about whether the assignment was done or not (the above code may leak information through branch prediction and/or memory access patterns analysis). </dd></dl>

</div>
</div>
<a id="a956c54f87d26ceb6da98043805e67684"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a956c54f87d26ceb6da98043805e67684">&#9670;&nbsp;</a></span>mbedtls_mpi_safe_cond_swap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_safe_cond_swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>assign</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Safe conditional swap X &lt;-&gt; Y if swap is 1. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>First <a class="el" href="structmbedtls__mpi.html" title="MPI structure. ">mbedtls_mpi</a> value </td></tr>
    <tr><td class="paramname">Y</td><td>Second <a class="el" href="structmbedtls__mpi.html" title="MPI structure. ">mbedtls_mpi</a> value </td></tr>
    <tr><td class="paramname">assign</td><td>1: perform the swap, 0: keep X and Y's original values</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed,</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is equivalent to if( assign ) mbedtls_mpi_swap( X, Y ); except that it avoids leaking any information about whether the assignment was done or not (the above code may leak information through branch prediction and/or memory access patterns analysis). </dd></dl>

</div>
</div>
<a id="a75b6f4376bdceb63ef5a65737c1a638c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75b6f4376bdceb63ef5a65737c1a638c">&#9670;&nbsp;</a></span>mbedtls_mpi_self_test()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_self_test </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>verbose</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checkup routine. </p>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or 1 if the test failed </dd></dl>

</div>
</div>
<a id="a39a475e7957e7a60993fc6e801d9913b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39a475e7957e7a60993fc6e801d9913b">&#9670;&nbsp;</a></span>mbedtls_mpi_set_bit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_set_bit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a bit of X to a specific value of 0 or 1. </p>
<dl class="section note"><dt>Note</dt><dd>Will grow X if necessary to set a bit to 1 in a not yet existing limb. Will not grow if bit should be set to 0</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to use </td></tr>
    <tr><td class="paramname">pos</td><td>Zero-based index of the bit in X </td></tr>
    <tr><td class="paramname">val</td><td>The value to set the bit to (0 or 1)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_MPI_BAD_INPUT_DATA if val is not 0 or 1 </dd></dl>

</div>
</div>
<a id="a8d48a56155412dda56e67256be4d10d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d48a56155412dda56e67256be4d10d9">&#9670;&nbsp;</a></span>mbedtls_mpi_shift_l()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_shift_l </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Left-shift: X &lt;&lt;= count. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to shift </td></tr>
    <tr><td class="paramname">count</td><td>Amount to shift</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="aee1140147b1e807645cebf64ebded168"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee1140147b1e807645cebf64ebded168">&#9670;&nbsp;</a></span>mbedtls_mpi_shift_r()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_shift_r </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Right-shift: X &gt;&gt;= count. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to shift </td></tr>
    <tr><td class="paramname">count</td><td>Amount to shift</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="abaaef229c95711a53b2f38eff0a2c14a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abaaef229c95711a53b2f38eff0a2c14a">&#9670;&nbsp;</a></span>mbedtls_mpi_shrink()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_shrink </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nblimbs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resize down, keeping at least the specified number of limbs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to shrink </td></tr>
    <tr><td class="paramname">nblimbs</td><td>The minimum number of limbs to keep</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a538110c9da02704d34d67a07d16fb3ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a538110c9da02704d34d67a07d16fb3ab">&#9670;&nbsp;</a></span>mbedtls_mpi_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mbedtls_mpi_size </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the total size in bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>MPI to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad5840808639d50a98edbede345251293"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5840808639d50a98edbede345251293">&#9670;&nbsp;</a></span>mbedtls_mpi_sub_abs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_sub_abs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unsigned subtraction: X = |A| - |B|. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_NEGATIVE_VALUE if B is greater than A </dd></dl>

</div>
</div>
<a id="a1a925403c039d920059297cfb4ad5bad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a925403c039d920059297cfb4ad5bad">&#9670;&nbsp;</a></span>mbedtls_mpi_sub_int()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_sub_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bignum_8h.html#a831621e03bb6892a866c36673644612e">mbedtls_mpi_sint</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signed subtraction: X = A - b. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">b</td><td>The integer value to subtract</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a1a38a8d9f5052491df94d8010bd34955"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a38a8d9f5052491df94d8010bd34955">&#9670;&nbsp;</a></span>mbedtls_mpi_sub_mpi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_sub_mpi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signed subtraction: X = A - B. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Destination MPI </td></tr>
    <tr><td class="paramname">A</td><td>Left-hand MPI </td></tr>
    <tr><td class="paramname">B</td><td>Right-hand MPI</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

</div>
</div>
<a id="a60d0c82301d6cf50e69808b6a3c5cd63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60d0c82301d6cf50e69808b6a3c5cd63">&#9670;&nbsp;</a></span>mbedtls_mpi_swap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_mpi_swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>Y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Swap the contents of X and Y. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>First MPI value </td></tr>
    <tr><td class="paramname">Y</td><td>Second MPI value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aceb4aeeb376a582a5e904135205ada44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceb4aeeb376a582a5e904135205ada44">&#9670;&nbsp;</a></span>mbedtls_mpi_write_binary()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_write_binary </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buflen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Export X into unsigned binary data, big endian. Always fills the whole buffer, which will start with zeros if the number is smaller. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Source MPI </td></tr>
    <tr><td class="paramname">buf</td><td>Output buffer </td></tr>
    <tr><td class="paramname">buflen</td><td>Output buffer size</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if buf isn't large enough </dd></dl>

</div>
</div>
<a id="ab23e312f4a0479c8b63a4bc9328e1324"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab23e312f4a0479c8b63a4bc9328e1324">&#9670;&nbsp;</a></span>mbedtls_mpi_write_file()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_write_file </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>fout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write X into an opened file, or stdout if fout is NULL. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Prefix, can be NULL </td></tr>
    <tr><td class="paramname">X</td><td>Source MPI </td></tr>
    <tr><td class="paramname">radix</td><td>Output numeric base </td></tr>
    <tr><td class="paramname">fout</td><td>Output file handle (can be NULL)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a MBEDTLS_ERR_MPI_XXX error code</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Set fout == NULL to print X on the console. </dd></dl>

</div>
</div>
<a id="ab2197e4833449c3e505ec8d11b348913"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2197e4833449c3e505ec8d11b348913">&#9670;&nbsp;</a></span>mbedtls_mpi_write_string()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_mpi_write_string </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buflen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>olen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Export into an ASCII string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">X</td><td>Source MPI </td></tr>
    <tr><td class="paramname">radix</td><td>Output numeric base </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to write the string to </td></tr>
    <tr><td class="paramname">buflen</td><td>Length of buf </td></tr>
    <tr><td class="paramname">olen</td><td>Length of the string written, including final NUL byte</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a MBEDTLS_ERR_MPI_XXX error code. *olen is always updated to reflect the amount of data that has (or would have) been written.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Call this function with buflen = 0 to obtain the minimum required buffer size in *olen. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 8 2018 21:08:41 for mbed TLS v2.7.3 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>