Documentation for 554919d9f5
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: method2 Pages: 1 -->
|
||||
<svg width="152pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: method1 Pages: 1 -->
|
||||
<svg width="152pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: math/fibonacci.cpp Pages: 1 -->
|
||||
<svg width="130pt" height="84pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
412
df/d2c/elliptic__curve__key__exchange_8cpp.html
Normal file
@@ -0,0 +1,412 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C++: ciphers/elliptic_curve_key_exchange.cpp 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="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtreedata.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.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">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('df/d2c/elliptic__curve__key__exchange_8cpp.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">elliptic_curve_key_exchange.cpp File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Implementation of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange">Elliptic Curve Diffie Hellman Key Exchange</a>.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include "<a class="el" href="../../da/da3/uint256__t_8hpp_source.html">uint256_t.hpp</a>"</code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for elliptic_curve_key_exchange.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d2/d83/elliptic__curve__key__exchange_8cpp__incl.svg" width="475" height="276"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Definition of struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a>. <a href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:d6/d4e/namespaceciphers"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></td></tr>
|
||||
<tr class="memdesc:d6/d4e/namespaceciphers"><td class="mdescLeft"> </td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Base64">Base64 Encoding and Decoding</a> <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html">ciphers::elliptic_curve_key_exchange</a></td></tr>
|
||||
<tr class="memdesc:df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange"><td class="mdescLeft"> </td><td class="mdescRight">namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a> <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </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:af0a6e3521629c25c2b5d620f26429830"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">ciphers::elliptic_curve_key_exchange::Point</a></td></tr>
|
||||
<tr class="memdesc:af0a6e3521629c25c2b5d620f26429830"><td class="mdescLeft"> </td><td class="mdescRight">Definition of struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">More...</a><br /></td></tr>
|
||||
<tr class="separator:af0a6e3521629c25c2b5d620f26429830"><td class="memSeparator" colspan="2"> </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:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">ciphers::elliptic_curve_key_exchange::exp</a> (<a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> number, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &mod)</td></tr>
|
||||
<tr class="memdesc:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="mdescLeft"> </td><td class="mdescRight">This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">Modular Exponentiation</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">More...</a><br /></td></tr>
|
||||
<tr class="separator:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d8/dc8/struct_point.html">Point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">ciphers::elliptic_curve_key_exchange::addition</a> (<a class="el" href="../../d8/dc8/struct_point.html">Point</a> a, <a class="el" href="../../d8/dc8/struct_point.html">Point</a> b, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &curve_a_coeff, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> mod)</td></tr>
|
||||
<tr class="memdesc:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="mdescLeft"> </td><td class="mdescRight">Addition of points. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">More...</a><br /></td></tr>
|
||||
<tr class="separator:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a17f3d667241b88115a95282cdd719cb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d8/dc8/struct_point.html">Point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">ciphers::elliptic_curve_key_exchange::multiply</a> (const <a class="el" href="../../d8/dc8/struct_point.html">Point</a> &a, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &curve_a_coeff, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> p, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &mod)</td></tr>
|
||||
<tr class="memdesc:a17f3d667241b88115a95282cdd719cb2"><td class="mdescLeft"> </td><td class="mdescRight">multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> and integer <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a17f3d667241b88115a95282cdd719cb2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8800c8a84d77dadadb05ad5e83b77ef4"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">uint128_t_tests</a> ()</td></tr>
|
||||
<tr class="memdesc:a8800c8a84d77dadadb05ad5e83b77ef4"><td class="mdescLeft"> </td><td class="mdescRight">Function to test the <a class="el" href="../../db/d9a/classuint128__t.html" title="class for 128-bit unsigned integer">uint128_t</a> header. <a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">More...</a><br /></td></tr>
|
||||
<tr class="separator:a8800c8a84d77dadadb05ad5e83b77ef4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a37775d1724ffe404c088dabbc8da91ae"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">uint256_t_tests</a> ()</td></tr>
|
||||
<tr class="memdesc:a37775d1724ffe404c088dabbc8da91ae"><td class="mdescLeft"> </td><td class="mdescRight">Function to test the <a class="el" href="../../d1/d83/classuint256__t.html" title="class for 256-bit unsigned integer">uint256_t</a> header. <a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">More...</a><br /></td></tr>
|
||||
<tr class="separator:a37775d1724ffe404c088dabbc8da91ae"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
|
||||
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft"> </td><td class="mdescRight">Function to test the provided algorithm above. <a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">More...</a><br /></td></tr>
|
||||
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
|
||||
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft"> </td><td class="mdescRight">Main function. <a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
|
||||
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Implementation of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange">Elliptic Curve Diffie Hellman Key Exchange</a>. </p>
|
||||
<p>The ECDH (Elliptic Curve Diffie–Hellman Key Exchange) is anonymous key agreement scheme, which allows two parties, each having an elliptic-curve public–private key pair, to establish a shared secret over an insecure channel. ECDH is very similar to the classical DHKE (Diffie–Hellman Key Exchange) algorithm, but it uses ECC point multiplication instead of modular exponentiations. ECDH is based on the following property of EC points: (a * G) * b = (b * G) * a If we have two secret numbers a and b (two private keys, belonging to Alice and Bob) and an ECC elliptic curve with generator point G, we can exchange over an insecure channel the values (a * G) and (b * G) (the public keys of Alice and Bob) and then we can derive a shared secret: secret = (a * G) * b = (b * G) * a. Pretty simple. The above equation takes the following form: alicePubKey * bobPrivKey = bobPubKey * alicePrivKey = secret </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO">Ashish Daulatabad</a> </dd></dl>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">◆ </a></span>main()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int main </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Main function. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">uint128_t_tests</a>(); <span class="comment">// running predefined 128-bit unsigned integer tests</span></div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">uint256_t_tests</a>(); <span class="comment">// running predefined 256-bit unsigned integer tests</span></div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// running self-test implementations</span></div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> }</div>
|
||||
<div class="ttc" id="aelliptic__curve__key__exchange_8cpp_html_a37775d1724ffe404c088dabbc8da91ae"><div class="ttname"><a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">uint256_t_tests</a></div><div class="ttdeci">static void uint256_t_tests()</div><div class="ttdoc">Function to test the uint256_t header.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:230</div></div>
|
||||
<div class="ttc" id="aelliptic__curve__key__exchange_8cpp_html_a8800c8a84d77dadadb05ad5e83b77ef4"><div class="ttname"><a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">uint128_t_tests</a></div><div class="ttdeci">static void uint128_t_tests()</div><div class="ttdoc">Function to test the uint128_t header.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:197</div></div>
|
||||
<div class="ttc" id="aelliptic__curve__key__exchange_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function to test the provided algorithm above.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:267</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../df/d2c/elliptic__curve__key__exchange_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="100%" height="426"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">◆ </a></span>test()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void test </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Function to test the provided algorithm above. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// demonstration of key exchange using curve secp112r1</span></div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// Equation of the form y^2 = (x^3 + ax + b) % P (here p is mod)</span></div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> a(<span class="stringliteral">"4451685225093714772084598273548424"</span>),</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  b(<span class="stringliteral">"2061118396808653202902996166388514"</span>),</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  mod(<span class="stringliteral">"4451685225093714772084598273548427"</span>);</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// Generator value: is pre-defined for the given curve</span></div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> ptr = {</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"188281465057972534892223778713752"</span>),</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"3419875491033170827167861896082688"</span>)};</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// Shared key generation.</span></div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="comment">// For alice</span></div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"For alice:\n"</span>;</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">// Alice's private key (can be generated randomly)</span></div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> alice_private_key(<span class="stringliteral">"164330438812053169644452143505618"</span>);</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> alice_public_key =</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(ptr, a, alice_private_key, mod);</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPrivate key: "</span> << alice_private_key << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPublic Key: "</span> << alice_public_key << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  </div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="comment">// For Bob</span></div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"For Bob:\n"</span>;</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// Bob's private key (can be generated randomly)</span></div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> bob_private_key(<span class="stringliteral">"1959473333748537081510525763478373"</span>);</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> bob_public_key =</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(ptr, a, bob_private_key, mod);</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPrivate key: "</span> << bob_private_key << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPublic Key: "</span> << bob_public_key << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="comment">// After public key exchange, create a shared key for communication.</span></div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">// create shared key:</span></div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> alice_shared_key = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  bob_public_key, a,</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  alice_private_key, mod),</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  bob_shared_key = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  alice_public_key, a,</div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  bob_private_key, mod);</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  </div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Shared keys:\n"</span>;</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << alice_shared_key << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << bob_shared_key << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  </div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">// Check whether shared keys are equal</span></div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  assert(alice_shared_key == bob_shared_key);</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> }</div>
|
||||
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
|
||||
<div class="ttc" id="aclassuint256__t_html"><div class="ttname"><a href="../../d1/d83/classuint256__t.html">uint256_t</a></div><div class="ttdoc">class for 256-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:33</div></div>
|
||||
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
|
||||
<div class="ttc" id="anamespaceciphers_1_1elliptic__curve__key__exchange_html_a17f3d667241b88115a95282cdd719cb2"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">ciphers::elliptic_curve_key_exchange::multiply</a></div><div class="ttdeci">Point multiply(const Point &a, const uint256_t &curve_a_coeff, uint256_t p, const uint256_t &mod)</div><div class="ttdoc">multiply Point and integer</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:165</div></div>
|
||||
<div class="ttc" id="astructciphers_1_1elliptic__curve__key__exchange_1_1_point_html"><div class="ttname"><a href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a></div><div class="ttdoc">Definition of struct Point.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:46</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../df/d2c/elliptic__curve__key__exchange_8cpp_aa8dca7b867074164d5f45b0f3851269d_cgraph.svg" width="100%" height="378"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a8800c8a84d77dadadb05ad5e83b77ef4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8800c8a84d77dadadb05ad5e83b77ef4">◆ </a></span>uint128_t_tests()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void uint128_t_tests </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Function to test the <a class="el" href="../../db/d9a/classuint128__t.html" title="class for 128-bit unsigned integer">uint128_t</a> header. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// 1st test: Operations test</span></div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a> a(<span class="stringliteral">"122"</span>), b(<span class="stringliteral">"2312"</span>);</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  assert(a + b == 2434);</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  assert(b - a == 2190);</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  assert(a * b == 282064);</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  assert(b / a == 18);</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  assert(b % a == 116);</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  assert((a & b) == 8);</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  assert((a | b) == 2426);</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  assert((a ^ b) == 2418);</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  assert((a << 64) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"2250502776992565297152"</span>));</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  assert((b >> 7) == 18);</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// 2nd test: Operations test</span></div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  a = <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"12321421424232142122"</span>);</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  b = <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"23123212"</span>);</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  assert(a + b == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"12321421424255265334"</span>));</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  assert(a - b == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"12321421424209018910"</span>));</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  assert(a * b == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"284910839733861759501135864"</span>));</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  assert(a / b == 532859423865LL);</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  assert(a % b == 3887742);</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  assert((a & b) == 18912520);</div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  assert((a | b) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"12321421424236352814"</span>));</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  assert((a ^ b) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"12321421424217440294"</span>));</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  assert((a << 64) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">"227290107637132170748078080907806769152"</span>));</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> }</div>
|
||||
<div class="ttc" id="aclassuint128__t_html"><div class="ttname"><a href="../../db/d9a/classuint128__t.html">uint128_t</a></div><div class="ttdoc">class for 128-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:59</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
<a id="a37775d1724ffe404c088dabbc8da91ae"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a37775d1724ffe404c088dabbc8da91ae">◆ </a></span>uint256_t_tests()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void uint256_t_tests </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Function to test the <a class="el" href="../../d1/d83/classuint256__t.html" title="class for 256-bit unsigned integer">uint256_t</a> header. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">// 1st test: Operations test</span></div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> a(<span class="stringliteral">"122"</span>), b(<span class="stringliteral">"2312"</span>);</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  assert(a + b == 2434);</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  assert(b - a == 2190);</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  assert(a * b == 282064);</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  assert(b / a == 18);</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  assert(b % a == 116);</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  assert((a & b) == 8);</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  assert((a | b) == 2426);</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  assert((a ^ b) == 2418);</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  assert((a << 64) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"2250502776992565297152"</span>));</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  assert((b >> 7) == 18);</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// 2nd test: Operations test</span></div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  a = <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"12321423124513251424232142122"</span>);</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  b = <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"23124312431243243215354315132413213212"</span>);</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  assert(a + b == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"23124312443564666339867566556645355334"</span>));</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// Since a < b, the value is greater</span></div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  assert(a - b == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"115792089237316195423570985008687907853246860353"</span></div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="stringliteral">"221642219366742944204948568846"</span>));</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  assert(a * b == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"284924437928789743312147393953938013677909398222"</span></div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="stringliteral">"169728183872115864"</span>));</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  assert(b / a == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"1876756621"</span>));</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  assert(b % a == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"2170491202688962563936723450"</span>));</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  assert((a & b) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"3553901085693256462344"</span>));</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  assert((a | b) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"23124312443564662785966480863388892990"</span>));</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  assert((a ^ b) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"23124312443564659232065395170132430646"</span>));</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  assert((a << 128) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">"4192763024643754272961909047609369343091683"</span></div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="stringliteral">"376561852756163540549632"</span>));</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> }</div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_4d6e05837bf820fb089a8a8cdf2f42b7.html">ciphers</a></li><li class="navelem"><a class="el" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html">elliptic_curve_key_exchange.cpp</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
12
df/d2c/elliptic__curve__key__exchange_8cpp.js
Normal file
@@ -0,0 +1,12 @@
|
||||
var elliptic__curve__key__exchange_8cpp =
|
||||
[
|
||||
[ "Point", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point" ],
|
||||
[ "Point", "df/d2c/elliptic__curve__key__exchange_8cpp.html#af0a6e3521629c25c2b5d620f26429830", null ],
|
||||
[ "addition", "df/d2c/elliptic__curve__key__exchange_8cpp.html#acc5fe9c2032fb7582c38a20d1fa69bcf", null ],
|
||||
[ "exp", "df/d2c/elliptic__curve__key__exchange_8cpp.html#ac00616a4e40d3cd5cfb4da87d9ff9af0", null ],
|
||||
[ "main", "df/d2c/elliptic__curve__key__exchange_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
|
||||
[ "multiply", "df/d2c/elliptic__curve__key__exchange_8cpp.html#a17f3d667241b88115a95282cdd719cb2", null ],
|
||||
[ "test", "df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ],
|
||||
[ "uint128_t_tests", "df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4", null ],
|
||||
[ "uint256_t_tests", "df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae", null ]
|
||||
];
|
||||
@@ -0,0 +1,8 @@
|
||||
<map id="test" name="test">
|
||||
<area shape="rect" id="node1" title="Function to test the provided algorithm above." alt="" coords="5,35,49,61"/>
|
||||
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="145,5,217,32"/>
|
||||
<area shape="rect" id="node3" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2" title="multiply Point and integer" alt="" coords="97,57,264,98"/>
|
||||
<area shape="rect" id="node4" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" title="Addition of points." alt="" coords="312,57,479,98"/>
|
||||
<area shape="rect" id="node5" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio..." alt="" coords="527,57,675,98"/>
|
||||
<area shape="rect" id="node6" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="723,64,765,91"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
a78a30a7294b2598849dd5a045626ad7
|
||||
@@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<!--zoomable 78 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 578;
|
||||
var viewHeight = 78;
|
||||
var sectionId = 'dynsection-2';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>test</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-73.5 574,-73.5 574,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Function to test the provided algorithm above.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-28 0,-47 33,-47 33,-28 0,-28"/>
|
||||
<text text-anchor="middle" x="16.5" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="104.5,-50 104.5,-69 158.5,-69 158.5,-50 104.5,-50"/>
|
||||
<text text-anchor="middle" x="131.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.21,-40.56C48.88,-43.61 73.51,-48.4 94.06,-52.41"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="93.58,-55.88 104.07,-54.35 94.92,-49.01 93.58,-55.88"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2" target="_top" xlink:title="multiply Point and integer">
|
||||
<polygon fill="white" stroke="black" points="69,-0.5 69,-30.5 194,-30.5 194,-0.5 69,-0.5"/>
|
||||
<text text-anchor="start" x="77" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="131.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::multiply</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.21,-34.44C40.28,-33.07 49.17,-31.33 58.68,-29.48"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="59.63,-32.86 68.78,-27.52 58.29,-25.99 59.63,-32.86"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" target="_top" xlink:title="Addition of points.">
|
||||
<polygon fill="white" stroke="black" points="230,-0.5 230,-30.5 355,-30.5 355,-0.5 230,-0.5"/>
|
||||
<text text-anchor="start" x="238" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="292.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node3->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node3->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M194.43,-15.5C202.67,-15.5 211.18,-15.5 219.58,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="219.74,-19 229.74,-15.5 219.74,-12 219.74,-19"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="391,-0.5 391,-30.5 502,-30.5 502,-0.5 391,-0.5"/>
|
||||
<text text-anchor="start" x="399" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="446.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M355.32,-15.5C363.62,-15.5 372.15,-15.5 380.5,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="380.57,-19 390.57,-15.5 380.57,-12 380.57,-19"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="538,-6 538,-25 570,-25 570,-6 538,-6"/>
|
||||
<text text-anchor="middle" x="554" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M502.1,-15.5C510.99,-15.5 519.8,-15.5 527.54,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="527.65,-19 537.65,-15.5 527.65,-12 527.65,-19"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="elliptic__curve__key__exchange_8cpp_aa8dca7b867074164d5f45b0f3851269d_cgraph_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<svg width="578pt" height="78pt"
|
||||
viewBox="0.00 0.00 578.00 77.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 73.5)">
|
||||
<title>test</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-73.5 574,-73.5 574,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Function to test the provided algorithm above.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-28 0,-47 33,-47 33,-28 0,-28"/>
|
||||
<text text-anchor="middle" x="16.5" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="104.5,-50 104.5,-69 158.5,-69 158.5,-50 104.5,-50"/>
|
||||
<text text-anchor="middle" x="131.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.21,-40.56C48.88,-43.61 73.51,-48.4 94.06,-52.41"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="93.58,-55.88 104.07,-54.35 94.92,-49.01 93.58,-55.88"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2" target="_top" xlink:title="multiply Point and integer">
|
||||
<polygon fill="white" stroke="black" points="69,-0.5 69,-30.5 194,-30.5 194,-0.5 69,-0.5"/>
|
||||
<text text-anchor="start" x="77" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="131.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::multiply</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M33.21,-34.44C40.28,-33.07 49.17,-31.33 58.68,-29.48"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="59.63,-32.86 68.78,-27.52 58.29,-25.99 59.63,-32.86"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" target="_top" xlink:title="Addition of points.">
|
||||
<polygon fill="white" stroke="black" points="230,-0.5 230,-30.5 355,-30.5 355,-0.5 230,-0.5"/>
|
||||
<text text-anchor="start" x="238" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="292.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node3->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node3->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M194.43,-15.5C202.67,-15.5 211.18,-15.5 219.58,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="219.74,-19 229.74,-15.5 219.74,-12 219.74,-19"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="391,-0.5 391,-30.5 502,-30.5 502,-0.5 391,-0.5"/>
|
||||
<text text-anchor="start" x="399" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="446.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M355.32,-15.5C363.62,-15.5 372.15,-15.5 380.5,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="380.57,-19 390.57,-15.5 380.57,-12 380.57,-19"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="538,-6 538,-25 570,-25 570,-6 538,-6"/>
|
||||
<text text-anchor="middle" x="554" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M502.1,-15.5C510.99,-15.5 519.8,-15.5 527.54,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="527.65,-19 537.65,-15.5 527.65,-12 527.65,-19"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,11 @@
|
||||
<map id="main" name="main">
|
||||
<area shape="rect" id="node1" title="Main function." alt="" coords="5,85,56,112"/>
|
||||
<area shape="rect" id="node2" href="$df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" title="Function to test the provided algorithm above." alt="" coords="137,35,181,61"/>
|
||||
<area shape="rect" id="node8" href="$df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4" title="Function to test the uint128_t header." alt="" coords="104,85,215,112"/>
|
||||
<area shape="rect" id="node9" href="$df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae" title="Function to test the uint256_t header." alt="" coords="104,136,215,163"/>
|
||||
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="310,5,382,32"/>
|
||||
<area shape="rect" id="node4" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2" title="multiply Point and integer" alt="" coords="263,57,429,98"/>
|
||||
<area shape="rect" id="node5" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" title="Addition of points." alt="" coords="477,57,644,98"/>
|
||||
<area shape="rect" id="node6" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio..." alt="" coords="692,57,840,98"/>
|
||||
<area shape="rect" id="node7" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="888,64,931,91"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
870a0e9ad525106b3a307324e59c841c
|
||||
@@ -0,0 +1,233 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<!--zoomable 126 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 702;
|
||||
var viewHeight = 126;
|
||||
var sectionId = 'dynsection-1';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>main</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122 698,-122 698,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Main function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-38.5 0,-57.5 38,-57.5 38,-38.5 0,-38.5"/>
|
||||
<text text-anchor="middle" x="19" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" target="_top" xlink:title="Function to test the provided algorithm above.">
|
||||
<polygon fill="white" stroke="black" points="99,-76.5 99,-95.5 132,-95.5 132,-76.5 99,-76.5"/>
|
||||
<text text-anchor="middle" x="115.5" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.22,-55.33C52.79,-61.18 73.37,-69.46 89.48,-75.94"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="88.26,-79.22 98.84,-79.7 90.87,-72.73 88.26,-79.22"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4" target="_top" xlink:title="Function to test the uint128_t header.">
|
||||
<polygon fill="white" stroke="black" points="74,-38.5 74,-57.5 157,-57.5 157,-38.5 74,-38.5"/>
|
||||
<text text-anchor="middle" x="115.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">uint128_t_tests</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.22,-48C45.55,-48 54.39,-48 63.43,-48"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="63.63,-51.5 73.63,-48 63.63,-44.5 63.63,-51.5"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae" target="_top" xlink:title="Function to test the uint256_t header.">
|
||||
<polygon fill="white" stroke="black" points="74,-0.5 74,-19.5 157,-19.5 157,-0.5 74,-0.5"/>
|
||||
<text text-anchor="middle" x="115.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">uint256_t_tests</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node9 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.22,-40.67C50.34,-35.8 66.61,-29.26 81.01,-23.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="82.64,-26.59 90.61,-19.61 80.02,-20.09 82.64,-26.59"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="228.5,-98.5 228.5,-117.5 282.5,-117.5 282.5,-98.5 228.5,-98.5"/>
|
||||
<text text-anchor="middle" x="255.5" y="-105.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M132.06,-88.48C152.81,-91.79 190.18,-97.75 218.19,-102.21"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="217.99,-105.72 228.42,-103.84 219.09,-98.81 217.99,-105.72"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2" target="_top" xlink:title="multiply Point and integer">
|
||||
<polygon fill="white" stroke="black" points="193,-49 193,-79 318,-79 318,-49 193,-49"/>
|
||||
<text text-anchor="start" x="201" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="255.5" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::multiply</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node2->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M132.06,-83.52C144.73,-81.5 163.58,-78.49 182.72,-75.44"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="183.4,-78.88 192.73,-73.85 182.3,-71.97 183.4,-78.88"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" target="_top" xlink:title="Addition of points.">
|
||||
<polygon fill="white" stroke="black" points="354,-49 354,-79 479,-79 479,-49 354,-49"/>
|
||||
<text text-anchor="start" x="362" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="416.5" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M318.43,-64C326.67,-64 335.18,-64 343.58,-64"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="343.74,-67.5 353.74,-64 343.74,-60.5 343.74,-67.5"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="515,-49 515,-79 626,-79 626,-49 515,-49"/>
|
||||
<text text-anchor="start" x="523" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="570.5" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M479.32,-64C487.62,-64 496.15,-64 504.5,-64"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="504.57,-67.5 514.57,-64 504.57,-60.5 504.57,-67.5"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="662,-54.5 662,-73.5 694,-73.5 694,-54.5 662,-54.5"/>
|
||||
<text text-anchor="middle" x="678" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node6->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node6->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M626.1,-64C634.99,-64 643.8,-64 651.54,-64"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="651.65,-67.5 661.65,-64 651.65,-60.5 651.65,-67.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="elliptic__curve__key__exchange_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,145 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="702pt" height="126pt"
|
||||
viewBox="0.00 0.00 702.00 126.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 122)">
|
||||
<title>main</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122 698,-122 698,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Main function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-38.5 0,-57.5 38,-57.5 38,-38.5 0,-38.5"/>
|
||||
<text text-anchor="middle" x="19" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" target="_top" xlink:title="Function to test the provided algorithm above.">
|
||||
<polygon fill="white" stroke="black" points="99,-76.5 99,-95.5 132,-95.5 132,-76.5 99,-76.5"/>
|
||||
<text text-anchor="middle" x="115.5" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.22,-55.33C52.79,-61.18 73.37,-69.46 89.48,-75.94"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="88.26,-79.22 98.84,-79.7 90.87,-72.73 88.26,-79.22"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4" target="_top" xlink:title="Function to test the uint128_t header.">
|
||||
<polygon fill="white" stroke="black" points="74,-38.5 74,-57.5 157,-57.5 157,-38.5 74,-38.5"/>
|
||||
<text text-anchor="middle" x="115.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">uint128_t_tests</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.22,-48C45.55,-48 54.39,-48 63.43,-48"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="63.63,-51.5 73.63,-48 63.63,-44.5 63.63,-51.5"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae" target="_top" xlink:title="Function to test the uint256_t header.">
|
||||
<polygon fill="white" stroke="black" points="74,-0.5 74,-19.5 157,-19.5 157,-0.5 74,-0.5"/>
|
||||
<text text-anchor="middle" x="115.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">uint256_t_tests</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node9 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.22,-40.67C50.34,-35.8 66.61,-29.26 81.01,-23.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="82.64,-26.59 90.61,-19.61 80.02,-20.09 82.64,-26.59"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="228.5,-98.5 228.5,-117.5 282.5,-117.5 282.5,-98.5 228.5,-98.5"/>
|
||||
<text text-anchor="middle" x="255.5" y="-105.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M132.06,-88.48C152.81,-91.79 190.18,-97.75 218.19,-102.21"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="217.99,-105.72 228.42,-103.84 219.09,-98.81 217.99,-105.72"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2" target="_top" xlink:title="multiply Point and integer">
|
||||
<polygon fill="white" stroke="black" points="193,-49 193,-79 318,-79 318,-49 193,-49"/>
|
||||
<text text-anchor="start" x="201" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="255.5" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::multiply</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node2->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M132.06,-83.52C144.73,-81.5 163.58,-78.49 182.72,-75.44"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="183.4,-78.88 192.73,-73.85 182.3,-71.97 183.4,-78.88"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" target="_top" xlink:title="Addition of points.">
|
||||
<polygon fill="white" stroke="black" points="354,-49 354,-79 479,-79 479,-49 354,-49"/>
|
||||
<text text-anchor="start" x="362" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="416.5" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node4->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node4->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M318.43,-64C326.67,-64 335.18,-64 343.58,-64"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="343.74,-67.5 353.74,-64 343.74,-60.5 343.74,-67.5"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="515,-49 515,-79 626,-79 626,-49 515,-49"/>
|
||||
<text text-anchor="start" x="523" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="570.5" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M479.32,-64C487.62,-64 496.15,-64 504.5,-64"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="504.57,-67.5 514.57,-64 504.57,-60.5 504.57,-67.5"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="662,-54.5 662,-73.5 694,-73.5 694,-54.5 662,-54.5"/>
|
||||
<text text-anchor="middle" x="678" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node6->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node6->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M626.1,-64C634.99,-64 643.8,-64 651.54,-64"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="651.65,-67.5 661.65,-64 651.65,-60.5 651.65,-67.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: backtracking/minimax.cpp Pages: 1 -->
|
||||
<svg width="254pt" height="84pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="183pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: search/exponential_search.cpp Pages: 1 -->
|
||||
<svg width="256pt" height="95pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_get_elements_inorder Pages: 1 -->
|
||||
<svg width="426pt" height="127pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_contains Pages: 1 -->
|
||||
<svg width="218pt" height="127pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_insert Pages: 1 -->
|
||||
<svg width="205pt" height="225pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_get_elements_postorder Pages: 1 -->
|
||||
<svg width="454pt" height="127pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_find_max Pages: 1 -->
|
||||
<svg width="221pt" height="127pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_get_elements_preorder Pages: 1 -->
|
||||
<svg width="438pt" height="127pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_remove Pages: 1 -->
|
||||
<svg width="214pt" height="323pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test_find_min Pages: 1 -->
|
||||
<svg width="218pt" height="127pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: hashing/chaining.cpp Pages: 1 -->
|
||||
<svg width="256pt" height="84pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<svg width="256pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="330pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: canJump Pages: 1 -->
|
||||
<svg width="187pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -145,7 +145,7 @@ Functions</h2></td></tr>
|
||||
</div><!-- fragment --><p>The direction ratios (DR) are calculated as follows: 1st DR, J: (b * z) - (c * y) 2nd DR, A: -((a * z) - (c * x)) 3rd DR, N: (a * y) - (b * x)</p>
|
||||
<p>Therefore, the direction ratios of the cross product are: J, A, N The following C++ Program calculates the direction ratios of the cross products of two vector. The program uses a function, <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> for doing so. The direction ratios for the first and the second vector has to be passed one by one seperated by a space character.</p>
|
||||
<p>Magnitude of a vector is the square root of the sum of the squares of the direction ratios.</p>
|
||||
<h3><a class="anchor" id="autotoc_md67"></a>
|
||||
<h3><a class="anchor" id="autotoc_md69"></a>
|
||||
Example:</h3>
|
||||
<p>An example of a running instance of the executable program: </p><pre class="fragment">Pass the first Vector: 1 2 3
|
||||
</pre><p> Pass the second Vector: 4 5 6 The cross product is: -3 6 -3 Magnitude: 7.34847</p>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: math::vector_cross::mag Pages: 1 -->
|
||||
<svg width="133pt" height="46pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: math::vector_cross::cross Pages: 1 -->
|
||||
<svg width="109pt" height="57pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="136pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
422
df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html
Normal file
@@ -0,0 +1,422 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C++: ciphers::elliptic_curve_key_exchange Namespace 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="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtreedata.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.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">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">ciphers::elliptic_curve_key_exchange Namespace Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a>
|
||||
<a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Definition of struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a>. <a href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </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:af0a6e3521629c25c2b5d620f26429830"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a></td></tr>
|
||||
<tr class="memdesc:af0a6e3521629c25c2b5d620f26429830"><td class="mdescLeft"> </td><td class="mdescRight">Definition of struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">More...</a><br /></td></tr>
|
||||
<tr class="separator:af0a6e3521629c25c2b5d620f26429830"><td class="memSeparator" colspan="2"> </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:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a> (<a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> number, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &mod)</td></tr>
|
||||
<tr class="memdesc:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="mdescLeft"> </td><td class="mdescRight">This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">Modular Exponentiation</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">More...</a><br /></td></tr>
|
||||
<tr class="separator:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a> (<a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> a, <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> b, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &curve_a_coeff, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> mod)</td></tr>
|
||||
<tr class="memdesc:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="mdescLeft"> </td><td class="mdescRight">Addition of points. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">More...</a><br /></td></tr>
|
||||
<tr class="separator:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a17f3d667241b88115a95282cdd719cb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a> (const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &a, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &curve_a_coeff, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> p, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &mod)</td></tr>
|
||||
<tr class="memdesc:a17f3d667241b88115a95282cdd719cb2"><td class="mdescLeft"> </td><td class="mdescRight">multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> and integer <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a17f3d667241b88115a95282cdd719cb2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a> </p>
|
||||
<p>Demonstration of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange">Elliptic Curve Diffie-Hellman</a> key exchange. </p>
|
||||
</div><h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a id="af0a6e3521629c25c2b5d620f26429830"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af0a6e3521629c25c2b5d620f26429830">◆ </a></span>Point</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Definition of struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a>. </p>
|
||||
<p>Definition of <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> in the curve. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="acc5fe9c2032fb7582c38a20d1fa69bcf"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acc5fe9c2032fb7582c38a20d1fa69bcf">◆ </a></span>addition()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> ciphers::elliptic_curve_key_exchange::addition </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> </td>
|
||||
<td class="paramname"><em>b</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> & </td>
|
||||
<td class="paramname"><em>curve_a_coeff</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> </td>
|
||||
<td class="paramname"><em>mod</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Addition of points. </p>
|
||||
<p>Add given point to generate third point. More description can be found <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Point_addition">here</a>, and <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Point_doubling">here</a> </p><dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>First point </td></tr>
|
||||
<tr><td class="paramname">b</td><td>Second point </td></tr>
|
||||
<tr><td class="paramname">curve_a_coeff</td><td>Coefficient <code>a</code> of the given curve (y^2 = x^3 + ax + b) % mod </td></tr>
|
||||
<tr><td class="paramname">mod</td><td>Given field </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the resultant point </dd></dl>
|
||||
<p>Slope</p>
|
||||
<p>value zero</p>
|
||||
<p>slope when the line is tangent to curve. This operation is performed while doubling. Taking derivative of <code>y^2 = x^3 + ax + b</code> => <code>2y dy = (3 * x^2 + a)dx</code> => <code>(dy/dx) = (3x^2 + a)/(2y)</code></p>
|
||||
<p>if y co-ordinate is zero, the slope is infinite, return inf. else calculate the slope (here % mod and store in lambda)</p>
|
||||
<div class="fragment"><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> lambda(0); <span class="comment">/// Slope</span></div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> zero(0); <span class="comment">/// value zero</span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  lambda = zero = 0;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> inf = ~zero;</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (a.x != b.x || a.y != b.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a>) {</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// Slope being infinite.</span></div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">if</span> (b.x == a.x) {</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> {inf, inf};</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> num = (b.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> - a.y + mod), den = (b.x - a.x + mod);</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  lambda = (num * (<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(den, mod - 2, mod))) % mod;</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  } <span class="keywordflow">else</span> {<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"> /**</span></div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> * slope when the line is tangent to curve. This operation is performed</span></div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> * while doubling. Taking derivative of `y^2 = x^3 + ax + b`</span></div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"> * => `2y dy = (3 * x^2 + a)dx`</span></div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> * => `(dy/dx) = (3x^2 + a)/(2y)`</span></div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> */</span><span class="comment"></span></div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> /**</span></div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> * if y co-ordinate is zero, the slope is infinite, return inf.</span></div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"> * else calculate the slope (here % mod and store in lambda)</span></div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (!a.y) {</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> {inf, inf};</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> axsq = ((a.x * a.x)) % mod;</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// Mulitply by 3 adjustment</span></div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  axsq += (axsq << 1);</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  axsq %= mod;</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// Mulitply by 2 adjustment</span></div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> a_2 = (a.y << 1);</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  lambda =</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  (((axsq + curve_a_coeff) % mod) * <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(a_2, mod - 2, mod)) % mod;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="../../d8/dc8/struct_point.html">Point</a> c;</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// new point: x = ((lambda^2) - x1 - x2)</span></div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// y = (lambda * (x1 - x)) - y1</span></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  c.x = ((lambda * lambda) % mod + (mod << 1) - a.x - b.x) % mod;</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  c.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = (((lambda * (a.x + mod - c.x)) % mod) + mod - a.y) % mod;</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> c;</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div>
|
||||
<div class="ttc" id="aclassuint256__t_html"><div class="ttname"><a href="../../d1/d83/classuint256__t.html">uint256_t</a></div><div class="ttdoc">class for 256-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:33</div></div>
|
||||
<div class="ttc" id="anamespaceciphers_1_1elliptic__curve__key__exchange_html_ac00616a4e40d3cd5cfb4da87d9ff9af0"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">ciphers::elliptic_curve_key_exchange::exp</a></div><div class="ttdeci">uint256_t exp(uint256_t number, uint256_t power, const uint256_t &mod)</div><div class="ttdoc">This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:78</div></div>
|
||||
<div class="ttc" id="astruct_point_html"><div class="ttname"><a href="../../d8/dc8/struct_point.html">Point</a></div><div class="ttdef"><b>Definition:</b> line_segment_intersection.cpp:12</div></div>
|
||||
<div class="ttc" id="astruct_point_html_a2e1b5fb2b2a83571f5c0bc0f66a73cf7"><div class="ttname"><a href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">Point::y</a></div><div class="ttdeci">int y</div><div class="ttdoc">Point respect to x coordinate.</div><div class="ttdef"><b>Definition:</b> line_segment_intersection.cpp:14</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange_acc5fe9c2032fb7582c38a20d1fa69bcf_cgraph.svg" width="464" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ac00616a4e40d3cd5cfb4da87d9ff9af0"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac00616a4e40d3cd5cfb4da87d9ff9af0">◆ </a></span>exp()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> ciphers::elliptic_curve_key_exchange::exp </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> </td>
|
||||
<td class="paramname"><em>number</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> </td>
|
||||
<td class="paramname"><em>power</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> & </td>
|
||||
<td class="paramname"><em>mod</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">Modular Exponentiation</a>. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">number</td><td>integer base </td></tr>
|
||||
<tr><td class="paramname">power</td><td>unsigned integer exponent </td></tr>
|
||||
<tr><td class="paramname">mod</td><td>integer modulo </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>number raised to power modulo mod </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (!power) {</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(1);</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>(1);</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  number = number % mod;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">while</span> (power) {</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> ((power & 1)) {</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = (<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> * number) % mod;</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">power</a> >>= 1;</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (power) {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  number = (number * number) % mod;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div>
|
||||
<div class="ttc" id="afibonacci__sum_8cpp_html_a7cf5feaf168b88e74544da59ed830311"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">math::fibonacci_sum::power</a></div><div class="ttdeci">math::fibonacci_sum::matrix power(math::fibonacci_sum::matrix T, uint64_t ex)</div><div class="ttdef"><b>Definition:</b> fibonacci_sum.cpp:57</div></div>
|
||||
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange_ac00616a4e40d3cd5cfb4da87d9ff9af0_cgraph.svg" width="250" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a17f3d667241b88115a95282cdd719cb2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a17f3d667241b88115a95282cdd719cb2">◆ </a></span>multiply()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> ciphers::elliptic_curve_key_exchange::multiply </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> & </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> & </td>
|
||||
<td class="paramname"><em>curve_a_coeff</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> </td>
|
||||
<td class="paramname"><em>p</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> & </td>
|
||||
<td class="paramname"><em>mod</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> and integer </p>
|
||||
<p>Multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> by a scalar factor (here it is a private key p). The multiplication is called as <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Double-and-add">double and add method</a> </p><dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> to multiply </td></tr>
|
||||
<tr><td class="paramname">curve_a_coeff</td><td>Coefficient of given curve (y^2 = x^3 + ax + b) % mod </td></tr>
|
||||
<tr><td class="paramname">p</td><td>The scalar value </td></tr>
|
||||
<tr><td class="paramname">mod</td><td>Given field </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the resultant point </dd></dl>
|
||||
<div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="../../d8/dc8/struct_point.html">Point</a> <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> = a;</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.x %= mod;</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.y %= mod;</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> inf{};</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  inf = ~<a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(0);</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="../../d8/dc8/struct_point.html">Point</a> Q = {inf, inf};</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">while</span> (p) {</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span> ((p & 1)) {</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (Q.x == inf && Q.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> == inf) {</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  Q.x = <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.x;</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  Q.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.y;</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  Q = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a>(Q, N, curve_a_coeff, mod);</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  p >>= 1;</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (p) {</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a>(N, N, curve_a_coeff, mod);</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> Q;</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div>
|
||||
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition:</b> sparse_table.cpp:47</div></div>
|
||||
<div class="ttc" id="anamespaceciphers_1_1elliptic__curve__key__exchange_html_acc5fe9c2032fb7582c38a20d1fa69bcf"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">ciphers::elliptic_curve_key_exchange::addition</a></div><div class="ttdeci">Point addition(Point a, Point b, const uint256_t &curve_a_coeff, uint256_t mod)</div><div class="ttdoc">Addition of points.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:110</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange_a17f3d667241b88115a95282cdd719cb2_cgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></li><li class="navelem"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html">elliptic_curve_key_exchange</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
var namespaceciphers_1_1elliptic__curve__key__exchange =
|
||||
[
|
||||
[ "Point", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point" ],
|
||||
[ "Point", "df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830", null ],
|
||||
[ "addition", "df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf", null ],
|
||||
[ "exp", "df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0", null ],
|
||||
[ "multiply", "df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2", null ]
|
||||
];
|
||||
@@ -0,0 +1,6 @@
|
||||
<map id="ciphers::elliptic_curve_key_exchange::multiply" name="ciphers::elliptic_curve_key_exchange::multiply">
|
||||
<area shape="rect" id="node1" title="multiply Point and integer" alt="" coords="5,5,172,47"/>
|
||||
<area shape="rect" id="node2" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" title="Addition of points." alt="" coords="220,5,387,47"/>
|
||||
<area shape="rect" id="node3" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio..." alt="" coords="435,5,583,47"/>
|
||||
<area shape="rect" id="node4" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="631,13,673,39"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
2b44289b85250adc41ffb33354832b4c
|
||||
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: ciphers::elliptic_curve_key_exchange::multiply Pages: 1 -->
|
||||
<!--zoomable 39 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 509;
|
||||
var viewHeight = 39;
|
||||
var sectionId = 'dynsection-2';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>ciphers::elliptic_curve_key_exchange::multiply</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-35 505,-35 505,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="multiply Point and integer">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 125,-30.5 125,-0.5 0,-0.5"/>
|
||||
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="62.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::multiply</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" target="_top" xlink:title="Addition of points.">
|
||||
<polygon fill="white" stroke="black" points="161,-0.5 161,-30.5 286,-30.5 286,-0.5 161,-0.5"/>
|
||||
<text text-anchor="start" x="169" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="223.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M125.43,-15.5C133.67,-15.5 142.18,-15.5 150.58,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="150.74,-19 160.74,-15.5 150.74,-12 150.74,-19"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="322,-0.5 322,-30.5 433,-30.5 433,-0.5 322,-0.5"/>
|
||||
<text text-anchor="start" x="330" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="377.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M286.32,-15.5C294.62,-15.5 303.15,-15.5 311.5,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="311.57,-19 321.57,-15.5 311.57,-12 311.57,-19"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="469,-6 469,-25 501,-25 501,-6 469,-6"/>
|
||||
<text text-anchor="middle" x="485" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node3->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node3->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M433.1,-15.5C441.99,-15.5 450.8,-15.5 458.54,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="458.65,-19 468.65,-15.5 458.65,-12 458.65,-19"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="namespaceciphers_1_1elliptic__curve__key__exchange_a17f3d667241b88115a95282cdd719cb2_cgraph_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.7 KiB |
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: ciphers::elliptic_curve_key_exchange::multiply Pages: 1 -->
|
||||
<svg width="509pt" height="39pt"
|
||||
viewBox="0.00 0.00 509.00 39.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 35)">
|
||||
<title>ciphers::elliptic_curve_key_exchange::multiply</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-35 505,-35 505,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="multiply Point and integer">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 125,-30.5 125,-0.5 0,-0.5"/>
|
||||
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="62.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::multiply</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf" target="_top" xlink:title="Addition of points.">
|
||||
<polygon fill="white" stroke="black" points="161,-0.5 161,-30.5 286,-30.5 286,-0.5 161,-0.5"/>
|
||||
<text text-anchor="start" x="169" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="223.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M125.43,-15.5C133.67,-15.5 142.18,-15.5 150.58,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="150.74,-19 160.74,-15.5 150.74,-12 150.74,-19"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="322,-0.5 322,-30.5 433,-30.5 433,-0.5 322,-0.5"/>
|
||||
<text text-anchor="start" x="330" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="377.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M286.32,-15.5C294.62,-15.5 303.15,-15.5 311.5,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="311.57,-19 321.57,-15.5 311.57,-12 311.57,-19"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="469,-6 469,-25 501,-25 501,-6 469,-6"/>
|
||||
<text text-anchor="middle" x="485" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node3->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node3->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M433.1,-15.5C441.99,-15.5 450.8,-15.5 458.54,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="458.65,-19 468.65,-15.5 458.65,-12 458.65,-19"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,4 @@
|
||||
<map id="ciphers::elliptic_curve_key_exchange::exp" name="ciphers::elliptic_curve_key_exchange::exp">
|
||||
<area shape="rect" id="node1" title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio..." alt="" coords="5,5,153,47"/>
|
||||
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="201,13,244,39"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
4873a153f1b6c5ac011c24b0bae8e4f7
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: ciphers::elliptic_curve_key_exchange::exp Pages: 1 -->
|
||||
<svg width="187pt" height="39pt"
|
||||
viewBox="0.00 0.00 187.00 39.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 35)">
|
||||
<title>ciphers::elliptic_curve_key_exchange::exp</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-35 183,-35 183,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 111,-30.5 111,-0.5 0,-0.5"/>
|
||||
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="55.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="147,-6 147,-25 179,-25 179,-6 147,-6"/>
|
||||
<text text-anchor="middle" x="163" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M111.1,-15.5C119.99,-15.5 128.8,-15.5 136.54,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="136.65,-19 146.65,-15.5 136.65,-12 136.65,-19"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,5 @@
|
||||
<map id="ciphers::elliptic_curve_key_exchange::addition" name="ciphers::elliptic_curve_key_exchange::addition">
|
||||
<area shape="rect" id="node1" title="Addition of points." alt="" coords="5,5,172,47"/>
|
||||
<area shape="rect" id="node2" href="$df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio..." alt="" coords="220,5,368,47"/>
|
||||
<area shape="rect" id="node3" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="416,13,459,39"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
bf5d0d99221d9cefa99bad8ee303b525
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: ciphers::elliptic_curve_key_exchange::addition Pages: 1 -->
|
||||
<svg width="348pt" height="39pt"
|
||||
viewBox="0.00 0.00 348.00 39.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 35)">
|
||||
<title>ciphers::elliptic_curve_key_exchange::addition</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-35 344,-35 344,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Addition of points.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 125,-30.5 125,-0.5 0,-0.5"/>
|
||||
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="62.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::addition</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0" target="_top" xlink:title="This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...">
|
||||
<polygon fill="white" stroke="black" points="161,-0.5 161,-30.5 272,-30.5 272,-0.5 161,-0.5"/>
|
||||
<text text-anchor="start" x="169" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::elliptic_curve</text>
|
||||
<text text-anchor="middle" x="216.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_key_exchange::exp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M125.32,-15.5C133.62,-15.5 142.15,-15.5 150.5,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="150.57,-19 160.57,-15.5 150.57,-12 150.57,-19"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="308,-6 308,-25 340,-25 340,-6 308,-6"/>
|
||||
<text text-anchor="middle" x="324" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">ans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node2->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M272.1,-15.5C280.99,-15.5 289.8,-15.5 297.54,-15.5"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="297.65,-19 307.65,-15.5 297.65,-12 297.65,-19"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="205pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: math::modular_division::power Pages: 1 -->
|
||||
<svg width="193pt" height="39pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: math::modular_division::mod_division Pages: 1 -->
|
||||
<svg width="300pt" height="57pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<svg width="131pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph/connected_components.cpp Pages: 1 -->
|
||||
<svg width="266pt" height="84pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: tests Pages: 1 -->
|
||||
<svg width="334pt" height="142pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="408pt" height="142pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::HKGraph Pages: 1 -->
|
||||
<svg width="222pt" height="195pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: strings/rabin_karp.cpp Pages: 1 -->
|
||||
<svg width="256pt" height="84pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
6
df/d88/data__structures_2sparse__table_8cpp__incl.map
Normal file
@@ -0,0 +1,6 @@
|
||||
<map id="data_structures/sparse_table.cpp" name="data_structures/sparse_table.cpp">
|
||||
<area shape="rect" id="node1" title="Implementation of Sparse Table for min() function." alt="" coords="36,5,191,47"/>
|
||||
<area shape="rect" id="node2" title=" " alt="" coords="5,95,56,121"/>
|
||||
<area shape="rect" id="node3" title=" " alt="" coords="81,95,146,121"/>
|
||||
<area shape="rect" id="node4" title=" " alt="" coords="171,95,243,121"/>
|
||||
</map>
|
||||
1
df/d88/data__structures_2sparse__table_8cpp__incl.md5
Normal file
@@ -0,0 +1 @@
|
||||
d5235ab7b6971dd762608bd2fead7486
|
||||
68
df/d88/data__structures_2sparse__table_8cpp__incl.svg
Normal file
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: data_structures/sparse_table.cpp Pages: 1 -->
|
||||
<svg width="186pt" height="95pt"
|
||||
viewBox="0.00 0.00 186.00 95.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 91)">
|
||||
<title>data_structures/sparse_table.cpp</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-91 182,-91 182,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Implementation of Sparse Table for min() function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="23,-56.5 23,-86.5 139,-86.5 139,-56.5 23,-56.5"/>
|
||||
<text text-anchor="start" x="31" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">data_structures/sparse</text>
|
||||
<text text-anchor="middle" x="81" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_table.cpp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="0,-0.5 0,-19.5 38,-19.5 38,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="19" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">array</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M66.31,-56.4C57.02,-47.49 45,-35.95 35.4,-26.74"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="37.66,-24.06 28.02,-19.66 32.81,-29.11 37.66,-24.06"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="56.5,-0.5 56.5,-19.5 105.5,-19.5 105.5,-0.5 56.5,-0.5"/>
|
||||
<text text-anchor="middle" x="81" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">cassert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M81,-56.4C81,-48.47 81,-38.46 81,-29.86"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="84.5,-29.66 81,-19.66 77.5,-29.66 84.5,-29.66"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="124,-0.5 124,-19.5 178,-19.5 178,-0.5 124,-0.5"/>
|
||||
<text text-anchor="middle" x="151" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M97.59,-56.4C108.29,-47.31 122.19,-35.49 133.13,-26.19"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="135.46,-28.8 140.81,-19.66 130.93,-23.47 135.46,-28.8"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
122
df/d99/structstd_1_1is__unsigned_3_01uint256__t_01_4.html
Normal file
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C++: std::is_unsigned< uint256_t > Struct 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="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtreedata.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.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">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('df/d99/structstd_1_1is__unsigned_3_01uint256__t_01_4.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">std::is_unsigned< uint256_t > Struct Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="dynheader">
|
||||
Inheritance diagram for std::is_unsigned< uint256_t >:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d6d/structstd_1_1is__unsigned_3_01uint256__t_01_4__inherit__graph.svg" width="206" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
|
||||
<div class="dynheader">
|
||||
Collaboration diagram for std::is_unsigned< uint256_t >:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d75/structstd_1_1is__unsigned_3_01uint256__t_01_4__coll__graph.svg" width="206" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li>ciphers/<a class="el" href="../../da/da3/uint256__t_8hpp_source.html">uint256_t.hpp</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../d8/dcc/namespacestd.html">std</a></li><li class="navelem"><a class="el" href="../../df/d99/structstd_1_1is__unsigned_3_01uint256__t_01_4.html">is_unsigned< uint256_t ></a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::is_graph_bipartite::Graph Pages: 1 -->
|
||||
<svg width="198pt" height="184pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="199pt" height="104pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -459,7 +459,7 @@ Here is the call graph for this function:</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
|
||||
<div class="ttc" id="aempty_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/priority_queue/empty.html">std::priority_queue::empty</a></div><div class="ttdeci">T empty(T... args)</div></div>
|
||||
<div class="ttc" id="agreater_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/greater.html">std::greater</a></div></div>
|
||||
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
|
||||
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair< int, int ></a></div></div>
|
||||
<div class="ttc" id="apop_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/priority_queue/pop.html">std::priority_queue::pop</a></div><div class="ttdeci">T pop(T... args)</div></div>
|
||||
<div class="ttc" id="apriority_queue_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/priority_queue.html">std::priority_queue</a></div></div>
|
||||
<div class="ttc" id="apush_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/priority_queue/push.html">std::priority_queue::push</a></div><div class="ttdeci">T push(T... args)</div></div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::depth_first_search Pages: 1 -->
|
||||
<svg width="223pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::addEdge Pages: 1 -->
|
||||
<svg width="210pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::explore Pages: 1 -->
|
||||
<svg width="200pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::dijkstra Pages: 1 -->
|
||||
<svg width="209pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: graph::getConnectedComponents Pages: 1 -->
|
||||
<svg width="294pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="147pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: others/stairs_pattern.cpp Pages: 1 -->
|
||||
<svg width="133pt" height="84pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="159pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: Node Pages: 1 -->
|
||||
<svg width="88pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: tests Pages: 1 -->
|
||||
<svg width="368pt" height="123pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="442pt" height="141pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: power Pages: 1 -->
|
||||
<svg width="137pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="211pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.46.1 (20210213.1702)
|
||||
<!-- Generated by graphviz version 2.47.2 (20210527.0053)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="288pt" height="142pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |