Sophie

Sophie

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

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

<p>Elliptic curve DSA.  
<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 ecdsa.h:</div>
<div class="dyncontent">
<div class="center"><img src="ecdsa_8h__incl.png" border="0" usemap="#ecdsa_8h" alt=""/></div>
<map name="ecdsa_8h" id="ecdsa_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><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="ecdsa_8h__dep__incl.png" border="0" usemap="#ecdsa_8hdep" alt=""/></div>
<map name="ecdsa_8hdep" id="ecdsa_8hdep">
<area shape="rect" id="node2" href="pk_8h.html" title="Public Key abstraction layer. " alt="" coords="429,80,492,107"/>
<area shape="rect" id="node3" href="ssl__ciphersuites_8h.html" title="SSL Ciphersuites for mbed TLS. " alt="" coords="77,304,279,331"/>
<area shape="rect" id="node11" href="x509_8h.html" title="X.509 generic defines and structures. " alt="" coords="419,155,502,181"/>
<area shape="rect" id="node14" href="oid_8h.html" title="Object Identifier (OID) database. " alt="" coords="646,229,718,256"/>
<area shape="rect" id="node4" href="ssl_8h.html" title="SSL/TLS functions. " alt="" coords="329,379,401,405"/>
<area shape="rect" id="node5" href="debug_8h.html" title="Functions for controlling and providing debug output from the library. " alt="" coords="5,453,97,480"/>
<area shape="rect" id="node6" href="net__sockets_8h.html" title="Network communication functions. " alt="" coords="122,453,274,480"/>
<area shape="rect" id="node8" href="ssl__cache_8h.html" title="SSL session cache implementation. " alt="" coords="299,453,431,480"/>
<area shape="rect" id="node9" href="ssl__cookie_8h.html" title="DTLS cookie callbacks implementation. " alt="" coords="455,453,597,480"/>
<area shape="rect" id="node10" href="ssl__ticket_8h.html" title="TLS server ticket callbacks implementation. " alt="" coords="621,453,764,480"/>
<area shape="rect" id="node7" href="net_8h.html" title="Deprecated header file that includes mbedtls/net_sockets.h. " alt="" coords="162,528,234,555"/>
<area shape="rect" id="node12" href="x509__crt_8h.html" title="X.509 certificate parsing and writing. " alt="" coords="303,304,426,331"/>
<area shape="rect" id="node13" href="x509__crl_8h.html" title="X.509 certificate revocation list parsing. " alt="" coords="353,229,475,256"/>
<area shape="rect" id="node15" href="x509__csr_8h.html" title="X.509 certificate signing request parsing and writing. " alt="" coords="499,229,622,256"/>
</map>
</div>
</div>
<p><a href="ecdsa_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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aeb07d11aef4d847c5cc5cfba49547136"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#aeb07d11aef4d847c5cc5cfba49547136">MBEDTLS_ECDSA_MAX_LEN</a>&#160;&#160;&#160;( 3 + 2 * ( 3 + <a class="el" href="ecp_8h.html#aba9fdfc8a8dd423182616e5708abf607">MBEDTLS_ECP_MAX_BYTES</a> ) )</td></tr>
<tr class="memdesc:aeb07d11aef4d847c5cc5cfba49547136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size of an ECDSA signature in bytes.  <a href="#aeb07d11aef4d847c5cc5cfba49547136">More...</a><br /></td></tr>
<tr class="separator:aeb07d11aef4d847c5cc5cfba49547136"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9f53b232ef244efb301233d111930dc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#aa9f53b232ef244efb301233d111930dc">MBEDTLS_DEPRECATED</a></td></tr>
<tr class="separator:aa9f53b232ef244efb301233d111930dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a86ad4c743272c83310c20585ec7a182f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a></td></tr>
<tr class="memdesc:a86ad4c743272c83310c20585ec7a182f"><td class="mdescLeft">&#160;</td><td class="mdescRight">ECDSA context structure.  <a href="#a86ad4c743272c83310c20585ec7a182f">More...</a><br /></td></tr>
<tr class="separator:a86ad4c743272c83310c20585ec7a182f"><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:af10f6fda2169862871d0ac07555c8641"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#af10f6fda2169862871d0ac07555c8641">mbedtls_ecdsa_sign</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *r, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *s, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *d, const unsigned char *buf, size_t blen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:af10f6fda2169862871d0ac07555c8641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute ECDSA signature of a previously hashed message.  <a href="#af10f6fda2169862871d0ac07555c8641">More...</a><br /></td></tr>
<tr class="separator:af10f6fda2169862871d0ac07555c8641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a381af8cc9ab0146a4cf1ba5226c81a8f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a381af8cc9ab0146a4cf1ba5226c81a8f">mbedtls_ecdsa_sign_det</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *r, <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *s, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *d, const unsigned char *buf, size_t blen, <a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> md_alg)</td></tr>
<tr class="memdesc:a381af8cc9ab0146a4cf1ba5226c81a8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute ECDSA signature of a previously hashed message, deterministic version (RFC 6979).  <a href="#a381af8cc9ab0146a4cf1ba5226c81a8f">More...</a><br /></td></tr>
<tr class="separator:a381af8cc9ab0146a4cf1ba5226c81a8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2292032f359fda59a7fd14911cc56f38"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a2292032f359fda59a7fd14911cc56f38">mbedtls_ecdsa_verify</a> (<a class="el" href="structmbedtls__ecp__group.html">mbedtls_ecp_group</a> *grp, const unsigned char *buf, size_t blen, const <a class="el" href="structmbedtls__ecp__point.html">mbedtls_ecp_point</a> *Q, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *r, const <a class="el" href="structmbedtls__mpi.html">mbedtls_mpi</a> *s)</td></tr>
<tr class="memdesc:a2292032f359fda59a7fd14911cc56f38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify ECDSA signature of a previously hashed message.  <a href="#a2292032f359fda59a7fd14911cc56f38">More...</a><br /></td></tr>
<tr class="separator:a2292032f359fda59a7fd14911cc56f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76da70289de1f746ad9cce1eadf7b135"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a76da70289de1f746ad9cce1eadf7b135">mbedtls_ecdsa_write_signature</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx, <a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> md_alg, const unsigned char *hash, size_t hlen, unsigned char *sig, size_t *slen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:a76da70289de1f746ad9cce1eadf7b135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20.  <a href="#a76da70289de1f746ad9cce1eadf7b135">More...</a><br /></td></tr>
<tr class="separator:a76da70289de1f746ad9cce1eadf7b135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3827a7cf6502530e831e0bb1fcfdd5d8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a3827a7cf6502530e831e0bb1fcfdd5d8">mbedtls_ecdsa_write_signature_det</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx, const unsigned char *hash, size_t hlen, unsigned char *sig, size_t *slen, <a class="el" href="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a> md_alg) <a class="el" href="md_8h.html#aa9f53b232ef244efb301233d111930dc">MBEDTLS_DEPRECATED</a></td></tr>
<tr class="memdesc:a3827a7cf6502530e831e0bb1fcfdd5d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20.  <a href="#a3827a7cf6502530e831e0bb1fcfdd5d8">More...</a><br /></td></tr>
<tr class="separator:a3827a7cf6502530e831e0bb1fcfdd5d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8085ade3e127118aa615f65cb1d393d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a8085ade3e127118aa615f65cb1d393d5">mbedtls_ecdsa_read_signature</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx, const unsigned char *hash, size_t hlen, const unsigned char *sig, size_t slen)</td></tr>
<tr class="memdesc:a8085ade3e127118aa615f65cb1d393d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read and verify an ECDSA signature.  <a href="#a8085ade3e127118aa615f65cb1d393d5">More...</a><br /></td></tr>
<tr class="separator:a8085ade3e127118aa615f65cb1d393d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab909bd06650e761e9fd176a86bd1ce17"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#ab909bd06650e761e9fd176a86bd1ce17">mbedtls_ecdsa_genkey</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx, <a class="el" href="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a> gid, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)</td></tr>
<tr class="memdesc:ab909bd06650e761e9fd176a86bd1ce17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate an ECDSA keypair on the given curve.  <a href="#ab909bd06650e761e9fd176a86bd1ce17">More...</a><br /></td></tr>
<tr class="separator:ab909bd06650e761e9fd176a86bd1ce17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6de8efd872cfe1bc2ee93b4a5584226c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a6de8efd872cfe1bc2ee93b4a5584226c">mbedtls_ecdsa_from_keypair</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx, const <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> *key)</td></tr>
<tr class="memdesc:a6de8efd872cfe1bc2ee93b4a5584226c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an ECDSA context from an EC key pair.  <a href="#a6de8efd872cfe1bc2ee93b4a5584226c">More...</a><br /></td></tr>
<tr class="separator:a6de8efd872cfe1bc2ee93b4a5584226c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca644ee02921388fdc42eb06377f4b62"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#aca644ee02921388fdc42eb06377f4b62">mbedtls_ecdsa_init</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx)</td></tr>
<tr class="memdesc:aca644ee02921388fdc42eb06377f4b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize context.  <a href="#aca644ee02921388fdc42eb06377f4b62">More...</a><br /></td></tr>
<tr class="separator:aca644ee02921388fdc42eb06377f4b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28dd93cb376a51cce39f062858c1c186"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ecdsa_8h.html#a28dd93cb376a51cce39f062858c1c186">mbedtls_ecdsa_free</a> (<a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *ctx)</td></tr>
<tr class="memdesc:a28dd93cb376a51cce39f062858c1c186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free context.  <a href="#a28dd93cb376a51cce39f062858c1c186">More...</a><br /></td></tr>
<tr class="separator:a28dd93cb376a51cce39f062858c1c186"><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 DSA. </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="ecdsa_8h_source.html">ecdsa.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aa9f53b232ef244efb301233d111930dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9f53b232ef244efb301233d111930dc">&#9670;&nbsp;</a></span>MBEDTLS_DEPRECATED</h2>

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

<p class="definition">Definition at line <a class="el" href="ecdsa_8h_source.html#l00170">170</a> of file <a class="el" href="ecdsa_8h_source.html">ecdsa.h</a>.</p>

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

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

<p>Maximum size of an ECDSA signature in bytes. </p>

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

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmbedtls__ecp__keypair.html">mbedtls_ecp_keypair</a> <a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>ECDSA context structure. </p>

<p class="definition">Definition at line <a class="el" href="ecdsa_8h_source.html#l00052">52</a> of file <a class="el" href="ecdsa_8h_source.html">ecdsa.h</a>.</p>

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

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

<p>Free context. </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="a6de8efd872cfe1bc2ee93b4a5584226c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6de8efd872cfe1bc2ee93b4a5584226c">&#9670;&nbsp;</a></span>mbedtls_ecdsa_from_keypair()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_from_keypair </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</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>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an ECDSA context from an EC key pair. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>ECDSA context to set </td></tr>
    <tr><td class="paramname">key</td><td>EC key to use</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, or a MBEDTLS_ERR_ECP_XXX code. </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_genkey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_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="ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d">mbedtls_ecp_group_id</a>&#160;</td>
          <td class="paramname"><em>gid</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 an ECDSA keypair on the given curve. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>ECDSA context in which the keypair should be stored </td></tr>
    <tr><td class="paramname">gid</td><td>Group (elliptic curve) to use. One of the various MBEDTLS_ECP_DP_XXX macros depending on configuration. </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 on success, or a MBEDTLS_ERR_ECP_XXX code. </dd></dl>

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

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

<p>Initialize context. </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="a8085ade3e127118aa615f65cb1d393d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8085ade3e127118aa615f65cb1d393d5">&#9670;&nbsp;</a></span>mbedtls_ecdsa_read_signature()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_read_signature </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_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>hash</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>slen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read and verify an ECDSA signature. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>ECDSA context </td></tr>
    <tr><td class="paramname">hash</td><td>Message hash </td></tr>
    <tr><td class="paramname">hlen</td><td>Size of hash </td></tr>
    <tr><td class="paramname">sig</td><td>Signature to read and verify </td></tr>
    <tr><td class="paramname">slen</td><td>Size of sig</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as prescribed by SEC1 4.1.4 step 3.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_ECP_BAD_INPUT_DATA if signature is invalid, MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH if the signature is valid but its actual length is less than siglen, or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_ERR_MPI_XXX error code </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_sign </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>r</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>s</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>, </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>blen</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>Compute ECDSA signature of a previously hashed message. </p>
<dl class="section note"><dt>Note</dt><dd>The deterministic version is usually prefered.</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>First output integer </td></tr>
    <tr><td class="paramname">s</td><td>Second output integer </td></tr>
    <tr><td class="paramname">d</td><td>Private signing key </td></tr>
    <tr><td class="paramname">buf</td><td>Message hash </td></tr>
    <tr><td class="paramname">blen</td><td>Length of buf </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 note"><dt>Note</dt><dd>If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as prescribed by SEC1 4.1.3 step 5.</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="a381af8cc9ab0146a4cf1ba5226c81a8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a381af8cc9ab0146a4cf1ba5226c81a8f">&#9670;&nbsp;</a></span>mbedtls_ecdsa_sign_det()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_sign_det </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>r</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>s</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>, </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>blen</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>md_alg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compute ECDSA signature of a previously hashed message, deterministic version (RFC 6979). </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">r</td><td>First output integer </td></tr>
    <tr><td class="paramname">s</td><td>Second output integer </td></tr>
    <tr><td class="paramname">d</td><td>Private signing key </td></tr>
    <tr><td class="paramname">buf</td><td>Message hash </td></tr>
    <tr><td class="paramname">blen</td><td>Length of buf </td></tr>
    <tr><td class="paramname">md_alg</td><td>MD algorithm used to hash the message</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as prescribed by SEC1 4.1.3 step 5.</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="a2292032f359fda59a7fd14911cc56f38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2292032f359fda59a7fd14911cc56f38">&#9670;&nbsp;</a></span>mbedtls_ecdsa_verify()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_verify </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>blen</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>, </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>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>s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify ECDSA signature of a previously hashed message. </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">buf</td><td>Message hash </td></tr>
    <tr><td class="paramname">blen</td><td>Length of buf </td></tr>
    <tr><td class="paramname">Q</td><td>Public key to use for verification </td></tr>
    <tr><td class="paramname">r</td><td>First integer of the signature </td></tr>
    <tr><td class="paramname">s</td><td>Second integer of the signature</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as prescribed by SEC1 4.1.4 step 3.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, MBEDTLS_ERR_ECP_BAD_INPUT_DATA if signature is invalid or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_MPI_XXX error code </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_write_signature </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_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="md_8h.html#a219313cb40503ec3e34a857ab98b2296">mbedtls_md_type_t</a>&#160;</td>
          <td class="paramname"><em>md_alg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>hash</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>slen</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>Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20. </p>
<p>(Not thread-safe to use same context in multiple threads)</p>
<dl class="section note"><dt>Note</dt><dd>The deterministic version (RFC 6979) is used if MBEDTLS_ECDSA_DETERMINISTIC is defined.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>ECDSA context </td></tr>
    <tr><td class="paramname">md_alg</td><td>Algorithm that was used to hash the message </td></tr>
    <tr><td class="paramname">hash</td><td>Message hash </td></tr>
    <tr><td class="paramname">hlen</td><td>Length of hash </td></tr>
    <tr><td class="paramname">sig</td><td>Buffer that will hold the signature </td></tr>
    <tr><td class="paramname">slen</td><td>Length of the signature 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 note"><dt>Note</dt><dd>The "sig" buffer must be at least as large as twice the size of the curve used, plus 9 (eg. 73 bytes if a 256-bit curve is used). MBEDTLS_ECDSA_MAX_LEN is always safe.</dd>
<dd>
If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as prescribed by SEC1 4.1.3 step 5.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a MBEDTLS_ERR_ECP_XXX, MBEDTLS_ERR_MPI_XXX or MBEDTLS_ERR_ASN1_XXX error code </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mbedtls_ecdsa_write_signature_det </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ecdsa_8h.html#a86ad4c743272c83310c20585ec7a182f">mbedtls_ecdsa_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>hash</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>slen</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>md_alg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20. </p>
<p>Deterministic version, RFC 6979. (Not thread-safe to use same context in multiple threads)</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Superseded by <a class="el" href="ecdsa_8h.html#a76da70289de1f746ad9cce1eadf7b135" title="Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20...">mbedtls_ecdsa_write_signature()</a> in 2.0.0</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>ECDSA context </td></tr>
    <tr><td class="paramname">hash</td><td>Message hash </td></tr>
    <tr><td class="paramname">hlen</td><td>Length of hash </td></tr>
    <tr><td class="paramname">sig</td><td>Buffer that will hold the signature </td></tr>
    <tr><td class="paramname">slen</td><td>Length of the signature written </td></tr>
    <tr><td class="paramname">md_alg</td><td>MD algorithm used to hash the message</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The "sig" buffer must be at least as large as twice the size of the curve used, plus 9 (eg. 73 bytes if a 256-bit curve is used). MBEDTLS_ECDSA_MAX_LEN is always safe.</dd>
<dd>
If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as prescribed by SEC1 4.1.3 step 5.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a MBEDTLS_ERR_ECP_XXX, MBEDTLS_ERR_MPI_XXX or MBEDTLS_ERR_ASN1_XXX error code </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>