Sophie

Sophie

distrib > Mageia > 6 > x86_64 > by-pkgid > f835bee5b8b7ec08e20fae17cab51e63 > files > 218

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: ecp.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="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">ecp.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Elliptic curves over GF(p)  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="bignum_8h_source.html">bignum.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ecp.h:</div>
<div class="dyncontent">
<div class="center"><img src="ecp_8h__incl.png" border="0" usemap="#ecp_8h" alt=""/></div>
<map name="ecp_8h" id="ecp_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="ecp_8h__dep__incl.png" border="0" usemap="#ecp_8hdep" alt=""/></div>
<map name="ecp_8hdep" id="ecp_8hdep">
</map>
</div>
</div>
<p><a href="ecp_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__ecp__curve__info.html">mbedtls_ecp_curve_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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__ecp__point.html">mbedtls_ecp_point</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">ECP point structure (jacobian coordinates)  <a href="structmbedtls__ecp__point.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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__ecp__group.html">mbedtls_ecp_group</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">ECP group structure.  <a href="structmbedtls__ecp__group.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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__ecp__keypair.html">mbedtls_ecp_keypair</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">ECP key pair structure.  <a href="structmbedtls__ecp__keypair.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:abcd6ff5c88f83a731383d344b56131f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#abcd6ff5c88f83a731383d344b56131f3">MBEDTLS_ERR_ECP_BAD_INPUT_DATA</a>&#160;&#160;&#160;-0x4F80</td></tr>
<tr class="separator:abcd6ff5c88f83a731383d344b56131f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40adc3b18cac6225a491c07829a49b7c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a40adc3b18cac6225a491c07829a49b7c">MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL</a>&#160;&#160;&#160;-0x4F00</td></tr>
<tr class="separator:a40adc3b18cac6225a491c07829a49b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5a0e1548717d603ba5782c8ab6f5c24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#aa5a0e1548717d603ba5782c8ab6f5c24">MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE</a>&#160;&#160;&#160;-0x4E80</td></tr>
<tr class="separator:aa5a0e1548717d603ba5782c8ab6f5c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d19895998e4ac7b4744c2407cec1917"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a3d19895998e4ac7b4744c2407cec1917">MBEDTLS_ERR_ECP_VERIFY_FAILED</a>&#160;&#160;&#160;-0x4E00</td></tr>
<tr class="separator:a3d19895998e4ac7b4744c2407cec1917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a048bea0521e7928f75a6259a8fcbfecb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a048bea0521e7928f75a6259a8fcbfecb">MBEDTLS_ERR_ECP_ALLOC_FAILED</a>&#160;&#160;&#160;-0x4D80</td></tr>
<tr class="separator:a048bea0521e7928f75a6259a8fcbfecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a484c796d0d97513809f6042e51b42957"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a484c796d0d97513809f6042e51b42957">MBEDTLS_ERR_ECP_RANDOM_FAILED</a>&#160;&#160;&#160;-0x4D00</td></tr>
<tr class="separator:a484c796d0d97513809f6042e51b42957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20464525ea74ab8fcca9f59a12f5dc4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a20464525ea74ab8fcca9f59a12f5dc4b">MBEDTLS_ERR_ECP_INVALID_KEY</a>&#160;&#160;&#160;-0x4C80</td></tr>
<tr class="separator:a20464525ea74ab8fcca9f59a12f5dc4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49d1dece5c167d28f22702cfc11b9aa1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a49d1dece5c167d28f22702cfc11b9aa1">MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH</a>&#160;&#160;&#160;-0x4C00</td></tr>
<tr class="separator:a49d1dece5c167d28f22702cfc11b9aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8815f3aa2ca7ce0e5f8d178da39435a2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a8815f3aa2ca7ce0e5f8d178da39435a2">MBEDTLS_ERR_ECP_HW_ACCEL_FAILED</a>&#160;&#160;&#160;-0x4B80</td></tr>
<tr class="separator:a8815f3aa2ca7ce0e5f8d178da39435a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afef3986789abe96859bafe73485adb80"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#afef3986789abe96859bafe73485adb80">MBEDTLS_ECP_DP_MAX</a>&#160;&#160;&#160;12</td></tr>
<tr class="separator:afef3986789abe96859bafe73485adb80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a076e0db0a53f09d424b8650390632bb3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a076e0db0a53f09d424b8650390632bb3">MBEDTLS_ECP_PF_UNCOMPRESSED</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a076e0db0a53f09d424b8650390632bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a300814dc5a3ef878a5fb34cc2f185e7a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a300814dc5a3ef878a5fb34cc2f185e7a">MBEDTLS_ECP_PF_COMPRESSED</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a300814dc5a3ef878a5fb34cc2f185e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bfe061b705a8695d730dfca7d265407"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a5bfe061b705a8695d730dfca7d265407">MBEDTLS_ECP_TLS_NAMED_CURVE</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a5bfe061b705a8695d730dfca7d265407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">SECTION: Module settings</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The configuration options you can set for this module are in this section. Either change them in <a class="el" href="config_8h.html" title="Configuration options (set of defines) ">config.h</a> or define them on the compiler command line. </p>
</div></td></tr>
<tr class="memitem:a98099ce7241e89e42ba34b79e770a0ab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a98099ce7241e89e42ba34b79e770a0ab">MBEDTLS_ECP_MAX_BITS</a>&#160;&#160;&#160;521</td></tr>
<tr class="separator:a98099ce7241e89e42ba34b79e770a0ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba9fdfc8a8dd423182616e5708abf607"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#aba9fdfc8a8dd423182616e5708abf607">MBEDTLS_ECP_MAX_BYTES</a>&#160;&#160;&#160;( ( <a class="el" href="ecp_8h.html#a98099ce7241e89e42ba34b79e770a0ab">MBEDTLS_ECP_MAX_BITS</a> + 7 ) / 8 )</td></tr>
<tr class="separator:aba9fdfc8a8dd423182616e5708abf607"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a281e8aba9ecf97bbd2e4b6b72eb04b87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a281e8aba9ecf97bbd2e4b6b72eb04b87">MBEDTLS_ECP_MAX_PT_LEN</a>&#160;&#160;&#160;( 2 * <a class="el" href="ecp_8h.html#aba9fdfc8a8dd423182616e5708abf607">MBEDTLS_ECP_MAX_BYTES</a> + 1 )</td></tr>
<tr class="separator:a281e8aba9ecf97bbd2e4b6b72eb04b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e14e10966cfd209e80d66a16b6c94ec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a0e14e10966cfd209e80d66a16b6c94ec">MBEDTLS_ECP_WINDOW_SIZE</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a0e14e10966cfd209e80d66a16b6c94ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5f2493612bbc9538cb749e85c5e46af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#ab5f2493612bbc9538cb749e85c5e46af">MBEDTLS_ECP_FIXED_POINT_OPTIM</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ab5f2493612bbc9538cb749e85c5e46af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:af79e530ea8f8416480f805baa20b1a2d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> { <br />
&#160;&#160;<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da677d15aba64be1606e0f63ebff096840">MBEDTLS_ECP_DP_NONE</a> = 0, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2dae5fcc335b9a458a68542c5b0e2a60971">MBEDTLS_ECP_DP_SECP192R1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da89c8d4502fa02eecd44f8de4831b38c8">MBEDTLS_ECP_DP_SECP224R1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2daf73bbf7b29d26a0bc77dcff47cd6b276">MBEDTLS_ECP_DP_SECP256R1</a>, 
<br />
&#160;&#160;<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da08d0615820297b8c90f8ec7cbd88f641">MBEDTLS_ECP_DP_SECP384R1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2daaa2d9d42df56aab024ef760ee9dffca2">MBEDTLS_ECP_DP_SECP521R1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2dade9d3762e81c6e1d6e499d21e8190be5">MBEDTLS_ECP_DP_BP256R1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2daaf562eeec4368f2c501c163b4707900a">MBEDTLS_ECP_DP_BP384R1</a>, 
<br />
&#160;&#160;<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da803c5f7c0d68be4556a688746be1c9e1">MBEDTLS_ECP_DP_BP512R1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da675f95c8d8550edd7eb85828d2f22b9f">MBEDTLS_ECP_DP_CURVE25519</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da0414bf86d7efb0e211214d9dddfb69d4">MBEDTLS_ECP_DP_SECP192K1</a>, 
<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2dabae9bc9de43957062495162e603c0943">MBEDTLS_ECP_DP_SECP224K1</a>, 
<br />
&#160;&#160;<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2da6de9f87d43d7c29c7f91e9986ccfc25f">MBEDTLS_ECP_DP_SECP256K1</a>
<br />
 }</td></tr>
<tr class="separator:af79e530ea8f8416480f805baa20b1a2d"><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:aee4af7c7ad70564c44ba750cd96ae989"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#aee4af7c7ad70564c44ba750cd96ae989">mbedtls_ecp_curve_list</a> (void)</td></tr>
<tr class="memdesc:aee4af7c7ad70564c44ba750cd96ae989"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the list of supported curves in order of preferrence (full information)  <a href="#aee4af7c7ad70564c44ba750cd96ae989">More...</a><br /></td></tr>
<tr class="separator:aee4af7c7ad70564c44ba750cd96ae989"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d2fed0c0cdde5201451bb5461aa275"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a84d2fed0c0cdde5201451bb5461aa275">mbedtls_ecp_grp_id_list</a> (void)</td></tr>
<tr class="memdesc:a84d2fed0c0cdde5201451bb5461aa275"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the list of supported curves in order of preferrence (grp_id only)  <a href="#a84d2fed0c0cdde5201451bb5461aa275">More...</a><br /></td></tr>
<tr class="separator:a84d2fed0c0cdde5201451bb5461aa275"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6234c72d1af65d804da31a2706ef522e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a6234c72d1af65d804da31a2706ef522e">mbedtls_ecp_curve_info_from_grp_id</a> (<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> grp_id)</td></tr>
<tr class="memdesc:a6234c72d1af65d804da31a2706ef522e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get curve information from an internal group identifier.  <a href="#a6234c72d1af65d804da31a2706ef522e">More...</a><br /></td></tr>
<tr class="separator:a6234c72d1af65d804da31a2706ef522e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac1e9b4f0112b88fbbc26776c5268c19"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#aac1e9b4f0112b88fbbc26776c5268c19">mbedtls_ecp_curve_info_from_tls_id</a> (uint16_t tls_id)</td></tr>
<tr class="memdesc:aac1e9b4f0112b88fbbc26776c5268c19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get curve information from a TLS NamedCurve value.  <a href="#aac1e9b4f0112b88fbbc26776c5268c19">More...</a><br /></td></tr>
<tr class="separator:aac1e9b4f0112b88fbbc26776c5268c19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a961d3dd5f6c4938054c8f931f2a4ecdc"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a961d3dd5f6c4938054c8f931f2a4ecdc">mbedtls_ecp_curve_info_from_name</a> (const char *name)</td></tr>
<tr class="memdesc:a961d3dd5f6c4938054c8f931f2a4ecdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get curve information from a human-readable name.  <a href="#a961d3dd5f6c4938054c8f931f2a4ecdc">More...</a><br /></td></tr>
<tr class="separator:a961d3dd5f6c4938054c8f931f2a4ecdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae069f80bc2f9cf2215c34430a9ccd924"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#ae069f80bc2f9cf2215c34430a9ccd924">mbedtls_ecp_point_init</a> (<a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt)</td></tr>
<tr class="memdesc:ae069f80bc2f9cf2215c34430a9ccd924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a point (as zero)  <a href="#ae069f80bc2f9cf2215c34430a9ccd924">More...</a><br /></td></tr>
<tr class="separator:ae069f80bc2f9cf2215c34430a9ccd924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5102f6d44d9f16aece7b2e685c31e5da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a5102f6d44d9f16aece7b2e685c31e5da">mbedtls_ecp_group_init</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp)</td></tr>
<tr class="memdesc:a5102f6d44d9f16aece7b2e685c31e5da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a group (to something meaningless)  <a href="#a5102f6d44d9f16aece7b2e685c31e5da">More...</a><br /></td></tr>
<tr class="separator:a5102f6d44d9f16aece7b2e685c31e5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a770d9e33e938f2033fd3f77e6fa2a697"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a770d9e33e938f2033fd3f77e6fa2a697">mbedtls_ecp_keypair_init</a> (<a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *key)</td></tr>
<tr class="memdesc:a770d9e33e938f2033fd3f77e6fa2a697"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a key pair (as an invalid one)  <a href="#a770d9e33e938f2033fd3f77e6fa2a697">More...</a><br /></td></tr>
<tr class="separator:a770d9e33e938f2033fd3f77e6fa2a697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87004f74814cc59a9ef757aea444098d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a87004f74814cc59a9ef757aea444098d">mbedtls_ecp_point_free</a> (<a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt)</td></tr>
<tr class="memdesc:a87004f74814cc59a9ef757aea444098d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the components of a point.  <a href="#a87004f74814cc59a9ef757aea444098d">More...</a><br /></td></tr>
<tr class="separator:a87004f74814cc59a9ef757aea444098d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97b130596caa2844282181082f66cb90"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a97b130596caa2844282181082f66cb90">mbedtls_ecp_group_free</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp)</td></tr>
<tr class="memdesc:a97b130596caa2844282181082f66cb90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the components of an ECP group.  <a href="#a97b130596caa2844282181082f66cb90">More...</a><br /></td></tr>
<tr class="separator:a97b130596caa2844282181082f66cb90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04ea689d8d97b423a5d646cd9c53f400"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a04ea689d8d97b423a5d646cd9c53f400">mbedtls_ecp_keypair_free</a> (<a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *key)</td></tr>
<tr class="memdesc:a04ea689d8d97b423a5d646cd9c53f400"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the components of a key pair.  <a href="#a04ea689d8d97b423a5d646cd9c53f400">More...</a><br /></td></tr>
<tr class="separator:a04ea689d8d97b423a5d646cd9c53f400"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97cfab220125dd40d96344e441656142"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a97cfab220125dd40d96344e441656142">mbedtls_ecp_copy</a> (<a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *Q)</td></tr>
<tr class="memdesc:a97cfab220125dd40d96344e441656142"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the contents of point Q into P.  <a href="#a97cfab220125dd40d96344e441656142">More...</a><br /></td></tr>
<tr class="separator:a97cfab220125dd40d96344e441656142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b6e780826b5d6ba4fd5dd5911e490dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a2b6e780826b5d6ba4fd5dd5911e490dc">mbedtls_ecp_group_copy</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *dst, const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *src)</td></tr>
<tr class="memdesc:a2b6e780826b5d6ba4fd5dd5911e490dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the contents of a group object.  <a href="#a2b6e780826b5d6ba4fd5dd5911e490dc">More...</a><br /></td></tr>
<tr class="separator:a2b6e780826b5d6ba4fd5dd5911e490dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac18b1dfe4223ac6dc6c637b2edc4a481"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#ac18b1dfe4223ac6dc6c637b2edc4a481">mbedtls_ecp_set_zero</a> (<a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt)</td></tr>
<tr class="memdesc:ac18b1dfe4223ac6dc6c637b2edc4a481"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a point to zero.  <a href="#ac18b1dfe4223ac6dc6c637b2edc4a481">More...</a><br /></td></tr>
<tr class="separator:ac18b1dfe4223ac6dc6c637b2edc4a481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17c7d8f0ee985c2ea5713659eccfd955"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a17c7d8f0ee985c2ea5713659eccfd955">mbedtls_ecp_is_zero</a> (<a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt)</td></tr>
<tr class="memdesc:a17c7d8f0ee985c2ea5713659eccfd955"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tell if a point is zero.  <a href="#a17c7d8f0ee985c2ea5713659eccfd955">More...</a><br /></td></tr>
<tr class="separator:a17c7d8f0ee985c2ea5713659eccfd955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e7676ea5e822494f5208751766daa32"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a5e7676ea5e822494f5208751766daa32">mbedtls_ecp_point_cmp</a> (const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *Q)</td></tr>
<tr class="memdesc:a5e7676ea5e822494f5208751766daa32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two points.  <a href="#a5e7676ea5e822494f5208751766daa32">More...</a><br /></td></tr>
<tr class="separator:a5e7676ea5e822494f5208751766daa32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63bfda35c538b840a78371be788675dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a63bfda35c538b840a78371be788675dd">mbedtls_ecp_point_read_string</a> (<a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, int radix, const char *x, const char *y)</td></tr>
<tr class="memdesc:a63bfda35c538b840a78371be788675dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import a non-zero point from two ASCII strings.  <a href="#a63bfda35c538b840a78371be788675dd">More...</a><br /></td></tr>
<tr class="separator:a63bfda35c538b840a78371be788675dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7d35a6631f662cc279eed8c4f0f7ba6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#af7d35a6631f662cc279eed8c4f0f7ba6">mbedtls_ecp_point_write_binary</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, int format, size_t *olen, unsigned char *buf, size_t buflen)</td></tr>
<tr class="memdesc:af7d35a6631f662cc279eed8c4f0f7ba6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export a point into unsigned binary data.  <a href="#af7d35a6631f662cc279eed8c4f0f7ba6">More...</a><br /></td></tr>
<tr class="separator:af7d35a6631f662cc279eed8c4f0f7ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08eb064f95d4ebd2d7822234f7b64b4d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a08eb064f95d4ebd2d7822234f7b64b4d">mbedtls_ecp_point_read_binary</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, const unsigned char *buf, size_t ilen)</td></tr>
<tr class="memdesc:a08eb064f95d4ebd2d7822234f7b64b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import a point from unsigned binary data.  <a href="#a08eb064f95d4ebd2d7822234f7b64b4d">More...</a><br /></td></tr>
<tr class="separator:a08eb064f95d4ebd2d7822234f7b64b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a883eb26a1be64c491ea0354189ae2604"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a883eb26a1be64c491ea0354189ae2604">mbedtls_ecp_tls_read_point</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt, const unsigned char **buf, size_t len)</td></tr>
<tr class="memdesc:a883eb26a1be64c491ea0354189ae2604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import a point from a TLS ECPoint record.  <a href="#a883eb26a1be64c491ea0354189ae2604">More...</a><br /></td></tr>
<tr class="separator:a883eb26a1be64c491ea0354189ae2604"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa98adfe68b926724607d8fcab61397a9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#aa98adfe68b926724607d8fcab61397a9">mbedtls_ecp_tls_write_point</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt, int format, size_t *olen, unsigned char *buf, size_t blen)</td></tr>
<tr class="memdesc:aa98adfe68b926724607d8fcab61397a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export a point as a TLS ECPoint record.  <a href="#aa98adfe68b926724607d8fcab61397a9">More...</a><br /></td></tr>
<tr class="separator:aa98adfe68b926724607d8fcab61397a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64439a12deff8bd1ef92eeab7ebbcf93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a64439a12deff8bd1ef92eeab7ebbcf93">mbedtls_ecp_group_load</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> id)</td></tr>
<tr class="memdesc:a64439a12deff8bd1ef92eeab7ebbcf93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a group using well-known domain parameters.  <a href="#a64439a12deff8bd1ef92eeab7ebbcf93">More...</a><br /></td></tr>
<tr class="separator:a64439a12deff8bd1ef92eeab7ebbcf93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfd0cdb926358713b31c48b2e4dd9e58"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#acfd0cdb926358713b31c48b2e4dd9e58">mbedtls_ecp_tls_read_group</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const unsigned char **buf, size_t len)</td></tr>
<tr class="memdesc:acfd0cdb926358713b31c48b2e4dd9e58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a group from a TLS ECParameters record.  <a href="#acfd0cdb926358713b31c48b2e4dd9e58">More...</a><br /></td></tr>
<tr class="separator:acfd0cdb926358713b31c48b2e4dd9e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ae23f66900fe6f3ef50eb30af4143d0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a2ae23f66900fe6f3ef50eb30af4143d0">mbedtls_ecp_tls_write_group</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, size_t *olen, unsigned char *buf, size_t blen)</td></tr>
<tr class="memdesc:a2ae23f66900fe6f3ef50eb30af4143d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the TLS ECParameters record for a group.  <a href="#a2ae23f66900fe6f3ef50eb30af4143d0">More...</a><br /></td></tr>
<tr class="separator:a2ae23f66900fe6f3ef50eb30af4143d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d005045c302e100c78bdc587e8f0e6a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a4d005045c302e100c78bdc587e8f0e6a">mbedtls_ecp_mul</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *R, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *m, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a4d005045c302e100c78bdc587e8f0e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication by an integer: R = m * P (Not thread-safe to use same group in multiple threads)  <a href="#a4d005045c302e100c78bdc587e8f0e6a">More...</a><br /></td></tr>
<tr class="separator:a4d005045c302e100c78bdc587e8f0e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09d306c628dccf6256d59f71f30be39c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a09d306c628dccf6256d59f71f30be39c">mbedtls_ecp_muladd</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *R, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *m, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *P, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *n, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *Q)</td></tr>
<tr class="memdesc:a09d306c628dccf6256d59f71f30be39c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication and addition of two points by integers: R = m * P + n * Q (Not thread-safe to use same group in multiple threads)  <a href="#a09d306c628dccf6256d59f71f30be39c">More...</a><br /></td></tr>
<tr class="separator:a09d306c628dccf6256d59f71f30be39c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8768744c65fc71137b496f10cc02370"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#ae8768744c65fc71137b496f10cc02370">mbedtls_ecp_check_pubkey</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *pt)</td></tr>
<tr class="memdesc:ae8768744c65fc71137b496f10cc02370"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check that a point is a valid public key on this curve.  <a href="#ae8768744c65fc71137b496f10cc02370">More...</a><br /></td></tr>
<tr class="separator:ae8768744c65fc71137b496f10cc02370"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eefe5e5381076f95dbc8c6779f4da4e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a5eefe5e5381076f95dbc8c6779f4da4e">mbedtls_ecp_check_privkey</a> (const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *d)</td></tr>
<tr class="memdesc:a5eefe5e5381076f95dbc8c6779f4da4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check that an <a class="el" href="structmbedtls__mpi.html" title="MPI structure. ">mbedtls_mpi</a> is a valid private key for this curve.  <a href="#a5eefe5e5381076f95dbc8c6779f4da4e">More...</a><br /></td></tr>
<tr class="separator:a5eefe5e5381076f95dbc8c6779f4da4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a521967f0d966bd98e7e76a8fd43829ed"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a521967f0d966bd98e7e76a8fd43829ed">mbedtls_ecp_gen_keypair_base</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *G, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *d, <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *Q, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a521967f0d966bd98e7e76a8fd43829ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a keypair with configurable base point.  <a href="#a521967f0d966bd98e7e76a8fd43829ed">More...</a><br /></td></tr>
<tr class="separator:a521967f0d966bd98e7e76a8fd43829ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7d8987918be4f337102afacf7203d0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#aa7d8987918be4f337102afacf7203d0d">mbedtls_ecp_gen_keypair</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *d, <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *Q, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:aa7d8987918be4f337102afacf7203d0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a keypair.  <a href="#aa7d8987918be4f337102afacf7203d0d">More...</a><br /></td></tr>
<tr class="separator:aa7d8987918be4f337102afacf7203d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c9a407214f019493ba5d7bc27fa57dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a0c9a407214f019493ba5d7bc27fa57dc">mbedtls_ecp_gen_key</a> (<a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> grp_id, <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *key, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a0c9a407214f019493ba5d7bc27fa57dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a keypair.  <a href="#a0c9a407214f019493ba5d7bc27fa57dc">More...</a><br /></td></tr>
<tr class="separator:a0c9a407214f019493ba5d7bc27fa57dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5718c919b1ad1bf86ce4d45613f06e55"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#a5718c919b1ad1bf86ce4d45613f06e55">mbedtls_ecp_check_pub_priv</a> (const <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *pub, const <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *prv)</td></tr>
<tr class="memdesc:a5718c919b1ad1bf86ce4d45613f06e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check a public-private key pair.  <a href="#a5718c919b1ad1bf86ce4d45613f06e55">More...</a><br /></td></tr>
<tr class="separator:a5718c919b1ad1bf86ce4d45613f06e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af869b14c9dcd0d4314151caee7d7e50e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecp_8h.html#af869b14c9dcd0d4314151caee7d7e50e">mbedtls_ecp_self_test</a> (int verbose)</td></tr>
<tr class="memdesc:af869b14c9dcd0d4314151caee7d7e50e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checkup routine.  <a href="#af869b14c9dcd0d4314151caee7d7e50e">More...</a><br /></td></tr>
<tr class="separator:af869b14c9dcd0d4314151caee7d7e50e"><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>Elliptic curves over GF(p) </p>

<p class="definition">Definition in file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="afef3986789abe96859bafe73485adb80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afef3986789abe96859bafe73485adb80">&#9670;&nbsp;</a></span>MBEDTLS_ECP_DP_MAX</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_DP_MAX&#160;&#160;&#160;12</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Number of supported curves (plus one for NONE).</p>
<p>(Montgomery curves excluded for now.) </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00086">86</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_FIXED_POINT_OPTIM&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Enable fixed-point speed-up </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00229">229</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_MAX_BITS&#160;&#160;&#160;521</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maximum size of the groups (that is, of N and P)Maximum bit size of groups </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00187">187</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_MAX_BYTES&#160;&#160;&#160;( ( <a class="el" href="ecp_8h.html#a98099ce7241e89e42ba34b79e770a0ab">MBEDTLS_ECP_MAX_BITS</a> + 7 ) / 8 )</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00190">190</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_MAX_PT_LEN&#160;&#160;&#160;( 2 * <a class="el" href="ecp_8h.html#aba9fdfc8a8dd423182616e5708abf607">MBEDTLS_ECP_MAX_BYTES</a> + 1 )</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00191">191</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_PF_COMPRESSED&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compressed point format </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00238">238</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_PF_UNCOMPRESSED&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Uncompressed point format </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00237">237</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ECP_TLS_NAMED_CURVE&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>ECCurveType's named_curve </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00243">243</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

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

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00214">214</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

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

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00036">36</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

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

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00032">32</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL&#160;&#160;&#160;-0x4F00</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="ecp_8h_source.html#l00033">33</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE&#160;&#160;&#160;-0x4E80</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Requested curve not available. </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00034">34</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_HW_ACCEL_FAILED&#160;&#160;&#160;-0x4B80</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>ECP hardware accelerator failed. </p>

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

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_INVALID_KEY&#160;&#160;&#160;-0x4C80</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Invalid private or public key. </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00038">38</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_RANDOM_FAILED&#160;&#160;&#160;-0x4D00</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Generation of random value, such as (ephemeral) key, failed. </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00037">37</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH&#160;&#160;&#160;-0x4C00</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The buffer contains a valid signature followed by more data. </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00039">39</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MBEDTLS_ERR_ECP_VERIFY_FAILED&#160;&#160;&#160;-0x4E00</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The signature is not valid. </p>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00035">35</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="af79e530ea8f8416480f805baa20b1a2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af79e530ea8f8416480f805baa20b1a2d">&#9670;&nbsp;</a></span>mbedtls_ecp_group_id</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Domain parameters (curve, subgroup and generator) identifiers.</p>
<p>Only curves over prime fields are supported.</p>
<dl class="section warning"><dt>Warning</dt><dd>This library does not support validation of arbitrary domain parameters. Therefore, only well-known domain parameters from trusted sources should be used. See <a class="el" href="ecp_8h.html#a64439a12deff8bd1ef92eeab7ebbcf93" title="Set a group using well-known domain parameters. ">mbedtls_ecp_group_load()</a>. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da677d15aba64be1606e0f63ebff096840"></a>MBEDTLS_ECP_DP_NONE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2dae5fcc335b9a458a68542c5b0e2a60971"></a>MBEDTLS_ECP_DP_SECP192R1&#160;</td><td class="fielddoc"><p>192-bits NIST curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da89c8d4502fa02eecd44f8de4831b38c8"></a>MBEDTLS_ECP_DP_SECP224R1&#160;</td><td class="fielddoc"><p>224-bits NIST curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2daf73bbf7b29d26a0bc77dcff47cd6b276"></a>MBEDTLS_ECP_DP_SECP256R1&#160;</td><td class="fielddoc"><p>256-bits NIST curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da08d0615820297b8c90f8ec7cbd88f641"></a>MBEDTLS_ECP_DP_SECP384R1&#160;</td><td class="fielddoc"><p>384-bits NIST curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2daaa2d9d42df56aab024ef760ee9dffca2"></a>MBEDTLS_ECP_DP_SECP521R1&#160;</td><td class="fielddoc"><p>521-bits NIST curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2dade9d3762e81c6e1d6e499d21e8190be5"></a>MBEDTLS_ECP_DP_BP256R1&#160;</td><td class="fielddoc"><p>256-bits Brainpool curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2daaf562eeec4368f2c501c163b4707900a"></a>MBEDTLS_ECP_DP_BP384R1&#160;</td><td class="fielddoc"><p>384-bits Brainpool curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da803c5f7c0d68be4556a688746be1c9e1"></a>MBEDTLS_ECP_DP_BP512R1&#160;</td><td class="fielddoc"><p>512-bits Brainpool curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da675f95c8d8550edd7eb85828d2f22b9f"></a>MBEDTLS_ECP_DP_CURVE25519&#160;</td><td class="fielddoc"><p>Curve25519 </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da0414bf86d7efb0e211214d9dddfb69d4"></a>MBEDTLS_ECP_DP_SECP192K1&#160;</td><td class="fielddoc"><p>192-bits "Koblitz" curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2dabae9bc9de43957062495162e603c0943"></a>MBEDTLS_ECP_DP_SECP224K1&#160;</td><td class="fielddoc"><p>224-bits "Koblitz" curve </p>
</td></tr>
<tr><td class="fieldname"><a id="af79e530ea8f8416480f805baa20b1a2da6de9f87d43d7c29c7f91e9986ccfc25f"></a>MBEDTLS_ECP_DP_SECP256K1&#160;</td><td class="fielddoc"><p>256-bits "Koblitz" curve </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecp_8h_source.html#l00064">64</a> of file <a class="el" href="ecp_8h_source.html">ecp.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_check_privkey </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</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>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check that an <a class="el" href="structmbedtls__mpi.html" title="MPI structure. ">mbedtls_mpi</a> is a valid private key for this curve. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>Group used </td></tr>
    <tr><td class="paramname">d</td><td>Integer to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if point is a valid private key, MBEDTLS_ERR_ECP_INVALID_KEY otherwise.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Uses bare components rather than an <a class="el" href="structmbedtls__ecp__keypair.html" title="ECP key pair structure. ">mbedtls_ecp_keypair</a> structure in order to ease use with other structures such as <a class="el" href="structmbedtls__ecdh__context.html" title="The ECDH context structure. ">mbedtls_ecdh_context</a> of mbedtls_ecdsa_context. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_check_pub_priv </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *&#160;</td>
          <td class="paramname"><em>pub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *&#160;</td>
          <td class="paramname"><em>prv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check a public-private key pair. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pub</td><td>Keypair structure holding a public key </td></tr>
    <tr><td class="paramname">prv</td><td>Keypair structure holding a private (plus public) key</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful (keys are valid and match), or MBEDTLS_ERR_ECP_BAD_INPUT_DATA, or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_ERR_MPI_XXX code. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_check_pubkey </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check that a point is a valid public key on this curve. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>Curve/group the point should belong to </td></tr>
    <tr><td class="paramname">pt</td><td>Point to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if point is a valid public key, MBEDTLS_ERR_ECP_INVALID_KEY otherwise.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function only checks the point is non-zero, has valid coordinates and lies on the curve, but not that it is indeed a multiple of G. This is additional check is more expensive, isn't required by standards, and shouldn't be necessary if the group used has a small cofactor. In particular, it is useless for the NIST groups which all have a cofactor of 1.</dd>
<dd>
Uses bare components rather than an <a class="el" href="structmbedtls__ecp__keypair.html" title="ECP key pair structure. ">mbedtls_ecp_keypair</a> structure in order to ease use with other structures such as <a class="el" href="structmbedtls__ecdh__context.html" title="The ECDH context structure. ">mbedtls_ecdh_context</a> of mbedtls_ecdsa_context. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#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__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>Q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the contents of point Q into P. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">P</td><td>Destination point </td></tr>
    <tr><td class="paramname">Q</td><td>Source point</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="a6234c72d1af65d804da31a2706ef522e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6234c72d1af65d804da31a2706ef522e">&#9670;&nbsp;</a></span>mbedtls_ecp_curve_info_from_grp_id()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a>* mbedtls_ecp_curve_info_from_grp_id </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a>&#160;</td>
          <td class="paramname"><em>grp_id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get curve information from an internal group identifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp_id</td><td>A MBEDTLS_ECP_DP_XXX value</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The associated curve information or NULL </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a>* mbedtls_ecp_curve_info_from_name </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get curve information from a human-readable name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>The name</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The associated curve information or NULL </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a>* mbedtls_ecp_curve_info_from_tls_id </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>tls_id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get curve information from a TLS NamedCurve value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tls_id</td><td>A MBEDTLS_ECP_DP_XXX value</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The associated curve information or NULL </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmbedtls__ecp__curve__info.html">mbedtls_ecp_curve_info</a>* mbedtls_ecp_curve_list </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the list of supported curves in order of preferrence (full information) </p>
<dl class="section return"><dt>Returns</dt><dd>A statically allocated array, the last entry is 0. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_gen_key </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a>&#160;</td>
          <td class="paramname"><em>grp_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *&#160;</td>
          <td class="paramname"><em>key</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>Generate a keypair. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp_id</td><td>ECP group identifier </td></tr>
    <tr><td class="paramname">key</td><td>Destination keypair </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, or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_MPI_XXX error code </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_gen_keypair </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</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>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>Q</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>Generate a keypair. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group </td></tr>
    <tr><td class="paramname">d</td><td>Destination MPI (secret part) </td></tr>
    <tr><td class="paramname">Q</td><td>Destination point (public part) </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, or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_MPI_XXX error code</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Uses bare components rather than an <a class="el" href="structmbedtls__ecp__keypair.html" title="ECP key pair structure. ">mbedtls_ecp_keypair</a> structure in order to ease use with other structures such as <a class="el" href="structmbedtls__ecdh__context.html" title="The ECDH context structure. ">mbedtls_ecdh_context</a> of mbedtls_ecdsa_context. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_gen_keypair_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>G</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>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>Q</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>Generate a keypair with configurable base point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group </td></tr>
    <tr><td class="paramname">G</td><td>Chosen base point </td></tr>
    <tr><td class="paramname">d</td><td>Destination MPI (secret part) </td></tr>
    <tr><td class="paramname">Q</td><td>Destination point (public part) </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, or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_MPI_XXX error code</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Uses bare components rather than an <a class="el" href="structmbedtls__ecp__keypair.html" title="ECP key pair structure. ">mbedtls_ecp_keypair</a> structure in order to ease use with other structures such as <a class="el" href="structmbedtls__ecdh__context.html" title="The ECDH context structure. ">mbedtls_ecdh_context</a> of mbedtls_ecdsa_context. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_group_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the contents of a group object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>Destination group </td></tr>
    <tr><td class="paramname">src</td><td>Source group</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="a97b130596caa2844282181082f66cb90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97b130596caa2844282181082f66cb90">&#9670;&nbsp;</a></span>mbedtls_ecp_group_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecp_group_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free the components of an ECP group. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecp_group_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a group (to something meaningless) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_group_load </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a>&#160;</td>
          <td class="paramname"><em>id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a group using well-known domain parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>Destination group </td></tr>
    <tr><td class="paramname">id</td><td>Index in the list of well-known domain parameters</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_XXX if initialization failed MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE for unkownn groups</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Index should be a value of RFC 4492's enum NamedCurve, usually in the form of a MBEDTLS_ECP_DP_XXX macro. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a>* mbedtls_ecp_grp_id_list </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the list of supported curves in order of preferrence (grp_id only) </p>
<dl class="section return"><dt>Returns</dt><dd>A statically allocated array, terminated with MBEDTLS_ECP_DP_NONE. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_is_zero </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tell if a point is zero. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>Point to test</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if point is zero, 0 otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecp_keypair_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free the components of a key pair. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecp_keypair_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a key pair (as an invalid one) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_mul </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</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>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>P</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>Multiplication by an integer: R = m * P (Not thread-safe to use same group in multiple threads) </p>
<dl class="section note"><dt>Note</dt><dd>In order to prevent timing attacks, this function executes the exact same sequence of (base field) operations for any valid m. It avoids any if-branch or array index depending on the value of m.</dd>
<dd>
If f_rng is not NULL, it is used to randomize intermediate results in order to prevent potential timing attacks targeting these results. It is recommended to always provide a non-NULL f_rng (the overhead is negligible).</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group </td></tr>
    <tr><td class="paramname">R</td><td>Destination point </td></tr>
    <tr><td class="paramname">m</td><td>Integer by which to multiply </td></tr>
    <tr><td class="paramname">P</td><td>Point to multiply </td></tr>
    <tr><td class="paramname">f_rng</td><td>RNG function (see notes) </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_ECP_INVALID_KEY if m is not a valid privkey or P is not a valid pubkey, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_muladd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</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>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#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>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>Q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiplication and addition of two points by integers: R = m * P + n * Q (Not thread-safe to use same group in multiple threads) </p>
<dl class="section note"><dt>Note</dt><dd>In contrast to <a class="el" href="ecp_8h.html#a4d005045c302e100c78bdc587e8f0e6a" title="Multiplication by an integer: R = m * P (Not thread-safe to use same group in multiple threads) ...">mbedtls_ecp_mul()</a>, this function does not guarantee a constant execution flow and timing.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group </td></tr>
    <tr><td class="paramname">R</td><td>Destination point </td></tr>
    <tr><td class="paramname">m</td><td>Integer by which to multiply P </td></tr>
    <tr><td class="paramname">P</td><td>Point to multiply by m </td></tr>
    <tr><td class="paramname">n</td><td>Integer by which to multiply Q </td></tr>
    <tr><td class="paramname">Q</td><td>Point to be multiplied by n</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_ECP_INVALID_KEY if m or n is not a valid privkey or P or Q is not a valid pubkey, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_point_cmp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#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__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>Q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare two points. </p>
<dl class="section note"><dt>Note</dt><dd>This assumes the points are normalized. Otherwise, they may compare as "not equal" even if they are.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">P</td><td>First point to compare </td></tr>
    <tr><td class="paramname">Q</td><td>Second point to compare</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if the points are equal, MBEDTLS_ERR_ECP_BAD_INPUT_DATA otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecp_point_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free the components of a point. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecp_point_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a point (as zero) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_point_read_binary </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>P</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>ilen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Import a point from unsigned binary data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>Group to which the point should belong </td></tr>
    <tr><td class="paramname">P</td><td>Point to import </td></tr>
    <tr><td class="paramname">buf</td><td>Input buffer </td></tr>
    <tr><td class="paramname">ilen</td><td>Actual length of input</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_ECP_BAD_INPUT_DATA if input is invalid, MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE if the point format is not implemented.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function does NOT check that the point actually belongs to the given group, see <a class="el" href="ecp_8h.html#ae8768744c65fc71137b496f10cc02370" title="Check that a point is a valid public key on this curve. ">mbedtls_ecp_check_pubkey()</a> for that. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_point_read_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>P</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>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#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>Import a non-zero point from two ASCII strings. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">P</td><td>Destination point </td></tr>
    <tr><td class="paramname">radix</td><td>Input numeric base </td></tr>
    <tr><td class="paramname">x</td><td>First affine coordinate as a null-terminated string </td></tr>
    <tr><td class="paramname">y</td><td>Second affine coordinate as a null-terminated string</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="af7d35a6631f662cc279eed8c4f0f7ba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7d35a6631f662cc279eed8c4f0f7ba6">&#9670;&nbsp;</a></span>mbedtls_ecp_point_write_binary()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_point_write_binary </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>olen</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 a point into unsigned binary data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>Group to which the point should belong </td></tr>
    <tr><td class="paramname">P</td><td>Point to export </td></tr>
    <tr><td class="paramname">format</td><td>Point format, should be a MBEDTLS_ECP_PF_XXX macro </td></tr>
    <tr><td class="paramname">olen</td><td>Length of the actual output </td></tr>
    <tr><td class="paramname">buf</td><td>Output buffer </td></tr>
    <tr><td class="paramname">buflen</td><td>Length of the output buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or MBEDTLS_ERR_ECP_BAD_INPUT_DATA or MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_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 a test failed </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_set_zero </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a point to zero. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>Destination point</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="acfd0cdb926358713b31c48b2e4dd9e58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfd0cdb926358713b31c48b2e4dd9e58">&#9670;&nbsp;</a></span>mbedtls_ecp_tls_read_group()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_tls_read_group </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</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>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a group from a TLS ECParameters record. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>Destination group </td></tr>
    <tr><td class="paramname">buf</td><td>&amp;(Start of input buffer) </td></tr>
    <tr><td class="paramname">len</td><td>Buffer length</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>buf is updated to point right after ECParameters on exit</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_XXX if initialization failed MBEDTLS_ERR_ECP_BAD_INPUT_DATA if input is invalid </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_tls_read_point </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</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>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Import a point from a TLS ECPoint record. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group used </td></tr>
    <tr><td class="paramname">pt</td><td>Destination point </td></tr>
    <tr><td class="paramname">buf</td><td>$(Start of input buffer) </td></tr>
    <tr><td class="paramname">len</td><td>Buffer length</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>buf is updated to point right after the ECPoint on exit</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_MPI_XXX if initialization failed MBEDTLS_ERR_ECP_BAD_INPUT_DATA if input is invalid </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_tls_write_group </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>olen</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>blen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write the TLS ECParameters record for a group. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group used </td></tr>
    <tr><td class="paramname">olen</td><td>Number of bytes actually written </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to write to </td></tr>
    <tr><td class="paramname">blen</td><td>Buffer length</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecp_tls_write_point </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *&#160;</td>
          <td class="paramname"><em>grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>olen</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>blen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Export a point as a TLS ECPoint record. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">grp</td><td>ECP group used </td></tr>
    <tr><td class="paramname">pt</td><td>Point to export </td></tr>
    <tr><td class="paramname">format</td><td>Export format </td></tr>
    <tr><td class="paramname">olen</td><td>length of data written </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to write to </td></tr>
    <tr><td class="paramname">blen</td><td>Buffer length</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or MBEDTLS_ERR_ECP_BAD_INPUT_DATA or MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL </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>