mirror of
https://github.com/leif-ibsen/SwiftECC.git
synced 2026-06-06 20:08:03 +00:00
418 lines
20 KiB
HTML
418 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<title>ChaChaPoly 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/ChaChaPoly" class="dashAnchor"></a>
|
|
<a title="ChaChaPoly Class Reference"></a>
|
|
<header>
|
|
<div class="content-wrapper">
|
|
<p><a href="../index.html"> 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"> Reference</a>
|
|
<img id="carat" src="../img/carat.png" alt=""/>
|
|
ChaChaPoly 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/ChaChaPoly.html">ChaChaPoly</a>
|
|
</li>
|
|
<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>ChaChaPoly</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">ChaChaPoly</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
<p>A ChaChaPoly instance encrypts and decrypts data with authentication for a given key and nonce
|
|
as defined in [RFC-8439]</p>
|
|
|
|
</section>
|
|
<section class="section task-group-section">
|
|
<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:8SwiftECC03ChaC4PolyC3keySays5UInt8VGvp"></a>
|
|
<a name="//apple_ref/swift/Property/key" class="dashAnchor"></a>
|
|
<a class="token" href="#/s:8SwiftECC03ChaC4PolyC3keySays5UInt8VGvp">key</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>The key - a 32 byte value</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">internal(set)</span> <span class="k">var</span> <span class="nv">key</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></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:8SwiftECC03ChaC4PolyC5nonceSays5UInt8VGvp"></a>
|
|
<a name="//apple_ref/swift/Property/nonce" class="dashAnchor"></a>
|
|
<a class="token" href="#/s:8SwiftECC03ChaC4PolyC5nonceSays5UInt8VGvp">nonce</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>The nonce - a 12 byte value</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">internal(set)</span> <span class="k">var</span> <span class="nv">nonce</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></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="/Initializers"></a>
|
|
<a name="//apple_ref/swift/Section/Initializers" class="dashAnchor"></a>
|
|
<div class="section-name-container">
|
|
<a class="section-name-link" href="#/Initializers"></a>
|
|
<h3 class="section-name"><span>Initializers</span>
|
|
</h3>
|
|
</div>
|
|
</div>
|
|
<ul>
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/s:8SwiftECC03ChaC4PolyCyACSays5UInt8VG_AFtcfc"></a>
|
|
<a name="//apple_ref/swift/Method/init(_:_:)" class="dashAnchor"></a>
|
|
<a class="token" href="#/s:8SwiftECC03ChaC4PolyCyACSays5UInt8VG_AFtcfc">init(_:<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>Constructs a ChaChaPoly instance from key and nonce</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="nf">init</span><span class="p">(</span><span class="n">_</span> <span class="nv">key</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">nonce</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span><span class="p">)</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h4>Parameters</h4>
|
|
<table class="graybox">
|
|
<tbody>
|
|
<tr>
|
|
<td>
|
|
<code>
|
|
<em>key</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The key - a 32 byte value</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<code>
|
|
<em>nonce</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The nonce - a 12 byte value</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</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:8SwiftECC03ChaC4PolyC7encryptySays5UInt8VGAGz_AGtF"></a>
|
|
<a name="//apple_ref/swift/Method/encrypt(_:_:)" class="dashAnchor"></a>
|
|
<a class="token" href="#/s:8SwiftECC03ChaC4PolyC7encryptySays5UInt8VGAGz_AGtF">encrypt(_:<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>Encrypts a byte array and computes the tag</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">encrypt</span><span class="p">(</span><span class="n">_</span> <span class="nv">plaintext</span><span class="p">:</span> <span class="k">inout</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">aad</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span> <span class="o">=</span> <span class="p">[])</span> <span class="o">-></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>plaintext</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The bytes to encrypt - it is replaced by the corresponding ciphertext of the same length</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<code>
|
|
<em>aad</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The additional authenticated data - possibly 0 bytes</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div>
|
|
<h4>Return Value</h4>
|
|
<p>The tag computed from <em>plaintext</em> and <em>aad</em> - a 16 byte value</p>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/s:8SwiftECC03ChaC4PolyC7decryptySbSays5UInt8VGz_A2GtF"></a>
|
|
<a name="//apple_ref/swift/Method/decrypt(_:_:_:)" class="dashAnchor"></a>
|
|
<a class="token" href="#/s:8SwiftECC03ChaC4PolyC7decryptySbSays5UInt8VGz_A2GtF">decrypt(_:<wbr>_:<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>Decrypts a byte array and verifies the tag</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">decrypt</span><span class="p">(</span><span class="n">_</span> <span class="nv">ciphertext</span><span class="p">:</span> <span class="k">inout</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">tag</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">aad</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:8SwiftECC5Bytesa">Bytes</a></span> <span class="o">=</span> <span class="p">[])</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h4>Parameters</h4>
|
|
<table class="graybox">
|
|
<tbody>
|
|
<tr>
|
|
<td>
|
|
<code>
|
|
<em>ciphertext</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The bytes to decrypt - if <em>tag</em> is verified, it is replaced by the corresponding plaintext</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<code>
|
|
<em>tag</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The tag to verify against <em>ciphertext</em> and <em>aad</em> - a 16 byte value</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<code>
|
|
<em>aad</em>
|
|
</code>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<p>The additional authenticated data - possibly 0 bytes</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div>
|
|
<h4>Return Value</h4>
|
|
<p><em>true</em> iff <em>tag</em> is verified</p>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
<section id="footer">
|
|
<p>© 2022 <a class="link" href="" target="_blank" rel="external noopener"></a>. All rights reserved. (Last updated: 2022-04-03)</p>
|
|
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.2</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
|
|
</section>
|
|
</article>
|
|
</div>
|
|
</body>
|
|
</html>
|