Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > e405d5f6b10a3a92bd2c28c4aa026c70 > files > 245

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

<p>Elliptic curve J-PAKE.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ecp_8h_source.html">ecp.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="md_8h_source.html">md.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ecjpake.h:</div>
<div class="dyncontent">
<div class="center"><img src="ecjpake_8h__incl.png" border="0" usemap="#ecjpake_8h" alt=""/></div>
<map name="ecjpake_8h" id="ecjpake_8h">
<area shape="rect" id="node2" href="ecp_8h.html" title="Elliptic curves over GF(p) " alt="" coords="307,80,379,107"/>
<area shape="rect" id="node10" href="md_8h.html" title="Generic message digest wrapper. " alt="" coords="417,155,479,181"/>
<area shape="rect" id="node3" href="bignum_8h.html" title="Multi&#45;precision integer library. " alt="" coords="283,155,386,181"/>
<area shape="rect" id="node4" href="config_8h.html" title="Configuration options (set of defines) " alt="" coords="35,229,138,256"/>
<area shape="rect" id="node5" href="check__config_8h.html" title="Consistency checks for configuration options. " alt="" coords="5,304,168,331"/>
</map>
</div>
</div>
<p><a href="ecjpake_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__ecjpake__context.html">mbedtls_ecjpake_context</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">EC J-PAKE context structure.  <a href="structmbedtls__ecjpake__context.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="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a3f1fa77b9cda6a2540b9bd6b84fb9f3f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3f">mbedtls_ecjpake_role</a> { <a class="el" href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3fa965b21512e945d609eecf10c59f5df94">MBEDTLS_ECJPAKE_CLIENT</a> = 0, 
<a class="el" href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3fae43795d8e4d6eb2484d706620cdc582f">MBEDTLS_ECJPAKE_SERVER</a>
 }<tr class="memdesc:a3f1fa77b9cda6a2540b9bd6b84fb9f3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Roles in the EC J-PAKE exchange.  <a href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3f">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a3f1fa77b9cda6a2540b9bd6b84fb9f3f"><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:a8183ac817fb64ecf6d2bff0d0b8225ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a8183ac817fb64ecf6d2bff0d0b8225ca">mbedtls_ecjpake_init</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx)</td></tr>
<tr class="memdesc:a8183ac817fb64ecf6d2bff0d0b8225ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a context (just makes it ready for setup() or free()).  <a href="#a8183ac817fb64ecf6d2bff0d0b8225ca">More...</a><br /></td></tr>
<tr class="separator:a8183ac817fb64ecf6d2bff0d0b8225ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58ba29c4014a666fa8875898d2e9d156"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a58ba29c4014a666fa8875898d2e9d156">mbedtls_ecjpake_setup</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx, <a class="el" href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3f">mbedtls_ecjpake_role</a> role, <a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> hash, <a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> curve, const unsigned char *secret, size_t len)</td></tr>
<tr class="memdesc:a58ba29c4014a666fa8875898d2e9d156"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a context for use.  <a href="#a58ba29c4014a666fa8875898d2e9d156">More...</a><br /></td></tr>
<tr class="separator:a58ba29c4014a666fa8875898d2e9d156"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2fea3d7011f93328d588c9a2e8e1443"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#ae2fea3d7011f93328d588c9a2e8e1443">mbedtls_ecjpake_check</a> (const <a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx)</td></tr>
<tr class="memdesc:ae2fea3d7011f93328d588c9a2e8e1443"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a context is ready for use.  <a href="#ae2fea3d7011f93328d588c9a2e8e1443">More...</a><br /></td></tr>
<tr class="separator:ae2fea3d7011f93328d588c9a2e8e1443"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a284b3e0e437d0f360f10c4039d1ffc57"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a284b3e0e437d0f360f10c4039d1ffc57">mbedtls_ecjpake_write_round_one</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx, unsigned char *buf, size_t len, size_t *olen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a284b3e0e437d0f360f10c4039d1ffc57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate and write the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes)  <a href="#a284b3e0e437d0f360f10c4039d1ffc57">More...</a><br /></td></tr>
<tr class="separator:a284b3e0e437d0f360f10c4039d1ffc57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6d2da7aef8edb18aead91fe74f43dbb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#af6d2da7aef8edb18aead91fe74f43dbb">mbedtls_ecjpake_read_round_one</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx, const unsigned char *buf, size_t len)</td></tr>
<tr class="memdesc:af6d2da7aef8edb18aead91fe74f43dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read and process the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes)  <a href="#af6d2da7aef8edb18aead91fe74f43dbb">More...</a><br /></td></tr>
<tr class="separator:af6d2da7aef8edb18aead91fe74f43dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84967d4406d8a46b97adfa60b3cd751c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a84967d4406d8a46b97adfa60b3cd751c">mbedtls_ecjpake_write_round_two</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx, unsigned char *buf, size_t len, size_t *olen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a84967d4406d8a46b97adfa60b3cd751c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate and write the second round message (TLS: contents of the Client/ServerKeyExchange)  <a href="#a84967d4406d8a46b97adfa60b3cd751c">More...</a><br /></td></tr>
<tr class="separator:a84967d4406d8a46b97adfa60b3cd751c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a139d891face474638d8664b5823fdacf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a139d891face474638d8664b5823fdacf">mbedtls_ecjpake_read_round_two</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx, const unsigned char *buf, size_t len)</td></tr>
<tr class="memdesc:a139d891face474638d8664b5823fdacf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read and process the second round message (TLS: contents of the Client/ServerKeyExchange)  <a href="#a139d891face474638d8664b5823fdacf">More...</a><br /></td></tr>
<tr class="separator:a139d891face474638d8664b5823fdacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b20729f22dbcd91ae6f42489c5cd11b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#a9b20729f22dbcd91ae6f42489c5cd11b">mbedtls_ecjpake_derive_secret</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx, unsigned char *buf, size_t len, size_t *olen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a9b20729f22dbcd91ae6f42489c5cd11b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derive the shared secret (TLS: Pre-Master Secret)  <a href="#a9b20729f22dbcd91ae6f42489c5cd11b">More...</a><br /></td></tr>
<tr class="separator:a9b20729f22dbcd91ae6f42489c5cd11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af962a58646228b3a80a4c27ac344d3cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#af962a58646228b3a80a4c27ac344d3cb">mbedtls_ecjpake_free</a> (<a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *ctx)</td></tr>
<tr class="memdesc:af962a58646228b3a80a4c27ac344d3cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a context's content.  <a href="#af962a58646228b3a80a4c27ac344d3cb">More...</a><br /></td></tr>
<tr class="separator:af962a58646228b3a80a4c27ac344d3cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac147a4eaa68fda6bf38a064398c6135"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecjpake_8h.html#aac147a4eaa68fda6bf38a064398c6135">mbedtls_ecjpake_self_test</a> (int verbose)</td></tr>
<tr class="memdesc:aac147a4eaa68fda6bf38a064398c6135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checkup routine.  <a href="#aac147a4eaa68fda6bf38a064398c6135">More...</a><br /></td></tr>
<tr class="separator:aac147a4eaa68fda6bf38a064398c6135"><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 curve J-PAKE. </p>
<p>Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<p>This file is part of mbed TLS (<a href="https://tls.mbed.org">https://tls.mbed.org</a>) </p>

<p class="definition">Definition in file <a class="el" href="ecjpake_8h_source.html">ecjpake.h</a>.</p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a3f1fa77b9cda6a2540b9bd6b84fb9f3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f1fa77b9cda6a2540b9bd6b84fb9f3f">&#9670;&nbsp;</a></span>mbedtls_ecjpake_role</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3f">mbedtls_ecjpake_role</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Roles in the EC J-PAKE exchange. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3f1fa77b9cda6a2540b9bd6b84fb9f3fa965b21512e945d609eecf10c59f5df94"></a>MBEDTLS_ECJPAKE_CLIENT&#160;</td><td class="fielddoc"><p>Client. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3f1fa77b9cda6a2540b9bd6b84fb9f3fae43795d8e4d6eb2484d706620cdc582f"></a>MBEDTLS_ECJPAKE_SERVER&#160;</td><td class="fielddoc"><p>Server. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecjpake_8h_source.html#l00053">53</a> of file <a class="el" href="ecjpake_8h_source.html">ecjpake.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_check </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if a context is ready for use. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if the context is ready for use, MBEDTLS_ERR_ECP_BAD_INPUT_DATA otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_derive_secret </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</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>len</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">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>Derive the shared secret (TLS: Pre-Master Secret) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to use </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to write the contents to </td></tr>
    <tr><td class="paramname">len</td><td>Buffer size </td></tr>
    <tr><td class="paramname">olen</td><td>Will be updated with the number of bytes written </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 successfull, a negative error code otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecjpake_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a context's content. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>context to free </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mbedtls_ecjpake_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a context (just makes it ready for setup() or free()). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>context to initialize </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_read_round_one </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</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>Read and process the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to use </td></tr>
    <tr><td class="paramname">buf</td><td>Pointer to extension contents </td></tr>
    <tr><td class="paramname">len</td><td>Extension length</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successfull, a negative error code otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_read_round_two </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</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>Read and process the second round message (TLS: contents of the Client/ServerKeyExchange) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to use </td></tr>
    <tr><td class="paramname">buf</td><td>Pointer to the message </td></tr>
    <tr><td class="paramname">len</td><td>Message length</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successfull, a negative error code otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_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="a58ba29c4014a666fa8875898d2e9d156"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58ba29c4014a666fa8875898d2e9d156">&#9670;&nbsp;</a></span>mbedtls_ecjpake_setup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_setup </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ecjpake_8h.html#a3f1fa77b9cda6a2540b9bd6b84fb9f3f">mbedtls_ecjpake_role</a>&#160;</td>
          <td class="paramname"><em>role</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a>&#160;</td>
          <td class="paramname"><em>hash</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>curve</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>secret</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 up a context for use. </p>
<dl class="section note"><dt>Note</dt><dd>Currently the only values for hash/curve allowed by the standard are MBEDTLS_MD_SHA256/MBEDTLS_ECP_DP_SECP256R1.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>context to set up </td></tr>
    <tr><td class="paramname">role</td><td>Our role: client or server </td></tr>
    <tr><td class="paramname">hash</td><td>hash function to use (MBEDTLS_MD_XXX) </td></tr>
    <tr><td class="paramname">curve</td><td>elliptic curve identifier (MBEDTLS_ECP_DP_XXX) </td></tr>
    <tr><td class="paramname">secret</td><td>pre-shared secret (passphrase) </td></tr>
    <tr><td class="paramname">len</td><td>length of the shared secret</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successfull, a negative error code otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_write_round_one </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</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>len</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">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 and write the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to use </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to write the contents to </td></tr>
    <tr><td class="paramname">len</td><td>Buffer size </td></tr>
    <tr><td class="paramname">olen</td><td>Will be updated with the number of bytes written </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 successfull, a negative error code otherwise </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecjpake_write_round_two </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmbedtls__ecjpake__context.html">mbedtls_ecjpake_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</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>len</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">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 and write the second round message (TLS: contents of the Client/ServerKeyExchange) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Context to use </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to write the contents to </td></tr>
    <tr><td class="paramname">len</td><td>Buffer size </td></tr>
    <tr><td class="paramname">olen</td><td>Will be updated with the number of bytes written </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 successfull, a negative error code otherwise </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Dec 28 2017 18:33:30 for mbed TLS v2.6.0 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>