Files
SwiftECC/docs/Classes/Domain.html
T
2023-06-15 11:44:36 +02:00

1847 lines
87 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Domain Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
<script src="../js/lunr.min.js" defer></script>
<script src="../js/typeahead.jquery.js" defer></script>
<script src="../js/jazzy.search.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/Domain" class="dashAnchor"></a>
<a title="Domain Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">SwiftECC Docs</a> (100% documented)</p>
<div class="header-right">
<form role="search" action="../search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">SwiftECC Reference</a>
<img id="carat" src="../img/carat.png" alt=""/>
Domain Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Domain.html">Domain</a>
</li>
<li class="nav-group-task">
<a href="../Classes/ECPrivateKey.html">ECPrivateKey</a>
</li>
<li class="nav-group-task">
<a href="../Classes/ECPublicKey.html">ECPublicKey</a>
</li>
<li class="nav-group-task">
<a href="../Classes/ECSignature.html">ECSignature</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AESCipher.html">AESCipher</a>
</li>
<li class="nav-group-task">
<a href="../Enums/BlockMode.html">BlockMode</a>
</li>
<li class="nav-group-task">
<a href="../Enums/ECCurve.html">ECCurve</a>
</li>
<li class="nav-group-task">
<a href="../Enums/ECException.html">ECException</a>
</li>
<li class="nav-group-task">
<a href="../Enums/MessageDigestAlgorithm.html">MessageDigestAlgorithm</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/Base64.html">Base64</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Point.html">Point</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RP.html">RP</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Typealiases.html">Type Aliases</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Typealiases.html#/s:8SwiftECC4Bytea">Byte</a>
</li>
<li class="nav-group-task">
<a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Domain</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Domain</span> <span class="p">:</span> <span class="kt">CustomStringConvertible</span><span class="p">,</span> <span class="kt">Equatable</span></code></pre>
</div>
</div>
<p>A Domain instance contains an elliptic curve domain - either with characteristic 2 or characteristic an odd prime.
Please refer [SEC 1] section 3.1.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Constants"></a>
<a name="//apple_ref/swift/Section/Constants" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/Constants"></a>
<h3 class="section-name"><span>Constants</span>
</h3>
</div>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC5OID_P4ASN10E16ObjectIdentifierCvpZ"></a>
<a name="//apple_ref/swift/Variable/OID_P" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC5OID_P4ASN10E16ObjectIdentifierCvpZ">OID_P</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Prime characteristic domain OID</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">OID_P</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC5OID_24ASN10E16ObjectIdentifierCvpZ"></a>
<a name="//apple_ref/swift/Variable/OID_2" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC5OID_24ASN10E16ObjectIdentifierCvpZ">OID_2</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Characteristic 2 domain OID</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">OID_2</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC6OID_EC4ASN10F16ObjectIdentifierCvpZ"></a>
<a name="//apple_ref/swift/Variable/OID_EC" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC6OID_EC4ASN10F16ObjectIdentifierCvpZ">OID_EC</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Elliptic curve OID</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">OID_EC</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Static%20Methods"></a>
<a name="//apple_ref/swift/Section/Static Methods" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/Static%20Methods"></a>
<h3 class="section-name"><span>Static Methods</span>
</h3>
</div>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8instance5curveAcA7ECCurveO_tFZ"></a>
<a name="//apple_ref/swift/Method/instance(curve:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8instance5curveAcA7ECCurveO_tFZ">instance(curve:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Returns a predefined domain from its curve</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">instance</span><span class="p">(</span><span class="nv">curve</span><span class="p">:</span> <span class="kt"><a href="../Enums/ECCurve.html">ECCurve</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Domain</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>curve</em>
</code>
</td>
<td>
<div>
<p>The domain curve</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The corresponding domain</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8instance3oidAC4ASN10F16ObjectIdentifierC_tKFZ"></a>
<a name="//apple_ref/swift/Method/instance(oid:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8instance3oidAC4ASN10F16ObjectIdentifierC_tKFZ">instance(oid:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Returns a predefined domain from its OID</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An <em>unknownOid</em> exception if <em>oid</em> does not match any domain
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">instance</span><span class="p">(</span><span class="nv">oid</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Domain</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>oid</em>
</code>
</td>
<td>
<div>
<p>The domain OID</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The corresponding domain</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8instance3pemACSS_tKFZ"></a>
<a name="//apple_ref/swift/Method/instance(pem:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8instance3pemACSS_tKFZ">instance(pem:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constructs a domain from its PEM encoding</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An exception if the PEM contents is wrong
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">instance</span><span class="p">(</span><span class="nv">pem</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Domain</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>pem</em>
</code>
</td>
<td>
<div>
<p>The PEM encoding of the domain</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The corresponding domain</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8instance4name1p1a1b2gx2gy5order8cofactor3oidACSS_6BigInt4BIntVA5PSi4ASN10N16ObjectIdentifierCSgtKFZ"></a>
<a name="//apple_ref/swift/Method/instance(name:p:a:b:gx:gy:order:cofactor:oid:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8instance4name1p1a1b2gx2gy5order8cofactor3oidACSS_6BigInt4BIntVA5PSi4ASN10N16ObjectIdentifierCSgtKFZ">instance(name:<wbr>p:<wbr>a:<wbr>b:<wbr>gx:<wbr>gy:<wbr>order:<wbr>cofactor:<wbr>oid:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constructs an odd prime characteristic domain
based on the curve y^2 = x^3 + a * x + b</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>domainParameter</em> exception if 4 * a^3 + 27 * b^2 = 0 or the generator point is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">instance</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">p</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">gx</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">gy</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">order</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">cofactor</span><span class="p">:</span> <span class="kt">Int</span><span class="p">,</span> <span class="nv">oid</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Domain</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>name</em>
</code>
</td>
<td>
<div>
<p>The domain name</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>The field order - a prime greater then 3</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>a</em>
</code>
</td>
<td>
<div>
<p>The a coefficient</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>b</em>
</code>
</td>
<td>
<div>
<p>The b coefficient</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>gx</em>
</code>
</td>
<td>
<div>
<p>The generator point x-coordinate</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>gy</em>
</code>
</td>
<td>
<div>
<p>The generator point y-coordinate</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>order</em>
</code>
</td>
<td>
<div>
<p>The curve order</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>cofactor</em>
</code>
</td>
<td>
<div>
<p>The cofactor</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>oid</em>
</code>
</td>
<td>
<div>
<p>An optional domain OID</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The domain</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8instance4name2rp1a1b2gx2gy5order8cofactor3oidACSS_AA2RPV6BigInt4BIntVA4RSi4ASN10P16ObjectIdentifierCSgtKFZ"></a>
<a name="//apple_ref/swift/Method/instance(name:rp:a:b:gx:gy:order:cofactor:oid:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8instance4name2rp1a1b2gx2gy5order8cofactor3oidACSS_AA2RPV6BigInt4BIntVA4RSi4ASN10P16ObjectIdentifierCSgtKFZ">instance(name:<wbr>rp:<wbr>a:<wbr>b:<wbr>gx:<wbr>gy:<wbr>order:<wbr>cofactor:<wbr>oid:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constructs a characteristic 2 domain
based on the curve y^2 + x * y = x^3 + a * x^2 + b</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>domainParameter</em> exception if b = 0 or the generator point is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">instance</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">rp</span><span class="p">:</span> <span class="kt"><a href="../Structs/RP.html">RP</a></span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">gx</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">gy</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">order</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">,</span> <span class="nv">cofactor</span><span class="p">:</span> <span class="kt">Int</span><span class="p">,</span> <span class="nv">oid</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Domain</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>name</em>
</code>
</td>
<td>
<div>
<p>The domain name</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>rp</em>
</code>
</td>
<td>
<div>
<p>The reduction polynomial</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>a</em>
</code>
</td>
<td>
<div>
<p>The a coefficient</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>b</em>
</code>
</td>
<td>
<div>
<p>The b coefficient</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>gx</em>
</code>
</td>
<td>
<div>
<p>The generator point x-coordinate</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>gy</em>
</code>
</td>
<td>
<div>
<p>The generator point y-coordinate</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>order</em>
</code>
</td>
<td>
<div>
<p>The curve order</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>cofactor</em>
</code>
</td>
<td>
<div>
<p>The cofactor</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>oid</em>
</code>
</td>
<td>
<div>
<p>An optional domain OID</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The domain</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Stored%20Properties"></a>
<a name="//apple_ref/swift/Section/Stored Properties" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/Stored%20Properties"></a>
<h3 class="section-name"><span>Stored Properties</span>
</h3>
</div>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC4nameSSvp"></a>
<a name="//apple_ref/swift/Property/name" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC4nameSSvp">name</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The domain name</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC1p6BigInt4BIntVvp"></a>
<a name="//apple_ref/swift/Property/p" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC1p6BigInt4BIntVvp">p</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The modulus</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">p</span><span class="p">:</span> <span class="kt">BInt</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC1a6BigInt4BIntVvp"></a>
<a name="//apple_ref/swift/Property/a" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC1a6BigInt4BIntVvp">a</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The curve <em>a</em> coefficient</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">BInt</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC1b6BigInt4BIntVvp"></a>
<a name="//apple_ref/swift/Property/b" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC1b6BigInt4BIntVvp">b</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The curve <em>b</em> coefficient</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">BInt</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC1gAA5PointVvp"></a>
<a name="//apple_ref/swift/Property/g" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC1gAA5PointVvp">g</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The generator point</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">g</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC5order6BigInt4BIntVvp"></a>
<a name="//apple_ref/swift/Property/order" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC5order6BigInt4BIntVvp">order</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The curve order</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">order</span><span class="p">:</span> <span class="kt">BInt</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8cofactorSivp"></a>
<a name="//apple_ref/swift/Property/cofactor" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8cofactorSivp">cofactor</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The cofactor</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">cofactor</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC3oid4ASN10E16ObjectIdentifierCSgvp"></a>
<a name="//apple_ref/swift/Property/oid" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC3oid4ASN10E16ObjectIdentifierCSgvp">oid</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An optional domain OID</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">oid</span><span class="p">:</span> <span class="kt">ASN1ObjectIdentifier</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC15characteristic2Sbvp"></a>
<a name="//apple_ref/swift/Property/characteristic2" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC15characteristic2Sbvp">characteristic2</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Is <em>true</em> if <em>self</em> has characteristic 2, <em>false</em> if it has an odd prime characteristic</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">characteristic2</span><span class="p">:</span> <span class="kt">Bool</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Computed%20Properties"></a>
<a name="//apple_ref/swift/Section/Computed Properties" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/Computed%20Properties"></a>
<h3 class="section-name"><span>Computed Properties</span>
</h3>
</div>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC4asn14ASN1AECvp"></a>
<a name="//apple_ref/swift/Property/asn1" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC4asn14ASN1AECvp">asn1</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The ASN1 encoding of <em>self</em></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">asn1</span><span class="p">:</span> <span class="kt">ASN1</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC3pemSSvp"></a>
<a name="//apple_ref/swift/Property/pem" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC3pemSSvp">pem</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The PEM encoding of <em>self</em></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">pem</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC11descriptionSSvp"></a>
<a name="//apple_ref/swift/Property/description" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC11descriptionSSvp">description</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A textual representation of the ASN1 encoding of <em>self</em></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">description</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Instance%20Methods"></a>
<a name="//apple_ref/swift/Section/Instance Methods" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/Instance%20Methods"></a>
<h3 class="section-name"><span>Instance Methods</span>
</h3>
</div>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC11makeKeyPairAA08ECPublicE0C_AA09ECPrivateE0CtyF"></a>
<a name="//apple_ref/swift/Method/makeKeyPair()" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC11makeKeyPairAA08ECPublicE0C_AA09ECPrivateE0CtyF">makeKeyPair()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Generates a private- and public key pair for <em>self</em></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">makeKeyPair</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="kt"><a href="../Classes/ECPublicKey.html">ECPublicKey</a></span><span class="p">,</span> <span class="kt"><a href="../Classes/ECPrivateKey.html">ECPrivateKey</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>(ECPublicKey, ECPrivateKey)</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC2eeoiySbAC_ACtFZ"></a>
<a name="//apple_ref/swift/Method/==(_:_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC2eeoiySbAC_ACtFZ">==(_:<wbr>_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Equality of two Domain instances</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="o">==</span> <span class="p">(</span><span class="nv">d1</span><span class="p">:</span> <span class="kt">Domain</span><span class="p">,</span> <span class="nv">d2</span><span class="p">:</span> <span class="kt">Domain</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>d1</em>
</code>
</td>
<td>
<div>
<p>a Domain instance</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>d2</em>
</code>
</td>
<td>
<div>
<p>a Domain instance</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p><em>true</em> if d1 and d2 are equal, <em>false</em> otherwise</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC11doublePointyAA0E0VAFKF"></a>
<a name="//apple_ref/swift/Method/doublePoint(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC11doublePointyAA0E0VAFKF">doublePoint(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Doubles a curve Point</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>notOnCurve</em> exception if <em>p</em> is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">doublePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">p</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>A curve point</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>p + p</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC9addPointsyAA5PointVAF_AFtKF"></a>
<a name="//apple_ref/swift/Method/addPoints(_:_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC9addPointsyAA5PointVAF_AFtKF">addPoints(_:<wbr>_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Adds two curve Points</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>notOnCurve</em> exception if <em>p1</em> or <em>p2</em> is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">addPoints</span><span class="p">(</span><span class="n">_</span> <span class="nv">p1</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">p2</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p1</em>
</code>
</td>
<td>
<div>
<p>The first curve point</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>p2</em>
</code>
</td>
<td>
<div>
<p>The second curve point</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>p1 + p2</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC14subtractPointsyAA5PointVAF_AFtKF"></a>
<a name="//apple_ref/swift/Method/subtractPoints(_:_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC14subtractPointsyAA5PointVAF_AFtKF">subtractPoints(_:<wbr>_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Subtracts two curve Points</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>notOnCurve</em> exception if <em>p1</em> or <em>p2</em> is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">subtractPoints</span><span class="p">(</span><span class="n">_</span> <span class="nv">p1</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">p2</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p1</em>
</code>
</td>
<td>
<div>
<p>The first curve point</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>p2</em>
</code>
</td>
<td>
<div>
<p>The second curve point</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>p1 - p2</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC11negatePointyAA0E0VAFKF"></a>
<a name="//apple_ref/swift/Method/negatePoint(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC11negatePointyAA0E0VAFKF">negatePoint(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Negates a curve Point</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>notOnCurve</em> exception if <em>p</em> is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">negatePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">p</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>A curve point</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>-p</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC13multiplyPointyAA0E0VAF_6BigInt4BIntVtKF"></a>
<a name="//apple_ref/swift/Method/multiplyPoint(_:_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC13multiplyPointyAA0E0VAF_6BigInt4BIntVtKF">multiplyPoint(_:<wbr>_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Multiplies a curve Point by an integer</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
A <em>notOnCurve</em> exception if <em>p</em> is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">multiplyPoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">p</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">n</span><span class="p">:</span> <span class="kt">BInt</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>The curve point to multiply</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>n</em>
</code>
</td>
<td>
<div>
<p>The integer to multiply with</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>n * p</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC8containsySbAA5PointVF"></a>
<a name="//apple_ref/swift/Method/contains(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC8containsySbAA5PointVF">contains(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Tests if point is on curve</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">contains</span><span class="p">(</span><span class="n">_</span> <span class="nv">p</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>The point</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p><em>true</em> iff p is on the domain curve</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC11encodePointySays5UInt8VGAA0E0V_SbtKF"></a>
<a name="//apple_ref/swift/Method/encodePoint(_:_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC11encodePointySays5UInt8VGAA0E0V_SbtKF">encodePoint(_:<wbr>_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Encodes a Point to a byte array - please refer [SEC 1] section 2.3.3</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An <em>encodePoint</em> exception if <em>p</em> is not on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">encodePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">p</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">compress</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>The point to encode</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>compress</em>
</code>
</td>
<td>
<div>
<p>If <em>true</em> use compressed encoding, if <em>false</em> use uncompressed encoding - <em>false</em> is default</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>Encoding of p</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC11decodePointyAA0E0VSays5UInt8VGKF"></a>
<a name="//apple_ref/swift/Method/decodePoint(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC11decodePointyAA0E0VSays5UInt8VGKF">decodePoint(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Decodes a Point from a byte array - please refer [SEC 1] section 2.3.4</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An <em>decodePoint</em> exception if <em>bytes</em> contains invalid data
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">decodePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">bytes</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>bytes</em>
</code>
</td>
<td>
<div>
<p>The byte array to decode</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The point</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC15asn1EncodePointy4ASN1AECAA0F0V_SbtKF"></a>
<a name="//apple_ref/swift/Method/asn1EncodePoint(_:_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC15asn1EncodePointy4ASN1AECAA0F0V_SbtKF">asn1EncodePoint(_:<wbr>_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Encodes a Point to an ASN1 structure</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An <em>encodePoint</em> exception if <em>p</em> does not lie on the curve
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">asn1EncodePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">p</span><span class="p">:</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">compress</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">ASN1</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>p</em>
</code>
</td>
<td>
<div>
<p>The point to encode</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>compress</em>
</code>
</td>
<td>
<div>
<p>If <em>true</em> use compressed encoding, if <em>false</em> use uncompressed encoding - <em>false</em> is default</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>ASN1 encoding of p</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC15asn1DecodePointyAA0F0V4ASN10G11OctetStringCKF"></a>
<a name="//apple_ref/swift/Method/asn1DecodePoint(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC15asn1DecodePointyAA0F0V4ASN10G11OctetStringCKF">asn1DecodePoint(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Decodes a Point from an ASN1 octet string</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An <em>decodePoint</em> exception if the octet string contains invalid data
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">asn1DecodePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">asn1</span><span class="p">:</span> <span class="kt">ASN1OctetString</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>asn1</em>
</code>
</td>
<td>
<div>
<p>The ASN1 octet string to decode</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The point</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC15asn1DecodePointyAA0F0V4ASN10G9BitStringCKF"></a>
<a name="//apple_ref/swift/Method/asn1DecodePoint(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC15asn1DecodePointyAA0F0V4ASN10G9BitStringCKF">asn1DecodePoint(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Decodes a Point from an ASN1 bit string</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An <em>decodePoint</em> exception if the bit string contains invalid data
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">asn1DecodePoint</span><span class="p">(</span><span class="n">_</span> <span class="nv">asn1</span><span class="p">:</span> <span class="kt">ASN1BitString</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Point.html">Point</a></span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>asn1</em>
</code>
</td>
<td>
<div>
<p>The ASN1 bit string to decode</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The point</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC12asn1Explicit4ASN1AECyF"></a>
<a name="//apple_ref/swift/Method/asn1Explicit()" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC12asn1Explicit4ASN1AECyF">asn1Explicit()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Explicit ASN1 encoding of <em>self</em> - please refer [SEC 1] appendix C.2<br/>
All domain components are included in the encoding - not just the domain OID</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">asn1Explicit</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">ASN1</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>Explicit ASN1 encoding of <em>self</em></p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2023 <a class="link" href="" target="_blank" rel="external noopener"></a>. All rights reserved. (Last updated: 2023-06-15)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</html>