Files
SwiftECC/docs/Classes.html
T
2023-07-24 17:59:53 +02:00

445 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes 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/Section/Classes" class="dashAnchor"></a>
<a title="Classes 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=""/>
Classes 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/CipherSuite.html">CipherSuite</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>
<li class="nav-group-task">
<a href="Classes/HPKEPrivateKey.html">HPKEPrivateKey</a>
</li>
<li class="nav-group-task">
<a href="Classes/HPKEPublicKey.html">HPKEPublicKey</a>
</li>
<li class="nav-group-task">
<a href="Classes/Recipient.html">Recipient</a>
</li>
<li class="nav-group-task">
<a href="Classes/Sender.html">Sender</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/AEAD.html">AEAD</a>
</li>
<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/HPKEException.html">HPKEException</a>
</li>
<li class="nav-group-task">
<a href="Enums/KDF.html">KDF</a>
</li>
<li class="nav-group-task">
<a href="Enums/KEM.html">KEM</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>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6DomainC"></a>
<a name="//apple_ref/swift/Class/Domain" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6DomainC">Domain</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<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>
<a href="Classes/Domain.html" class="slightly-smaller">See more</a>
</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">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>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC11CipherSuiteC"></a>
<a name="//apple_ref/swift/Class/CipherSuite" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC11CipherSuiteC">CipherSuite</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A CipherSuite instance is a HPKE element consisting of a <em>Key Encapsulation Mechanism</em> (KEM), a <em>Key Derivation Function</em> (KDF)
and a <em>AEAD Encryption Algorithm</em> (AEAD).
It can encrypt or decrypt a single message in one of four modes:</p>
<ul>
<li>Base mode</li>
<li>Preshared key mode</li>
<li>Authenticated mode</li>
<li>Authenticated, preshared key mode</li>
</ul>
<a href="Classes/CipherSuite.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">CipherSuite</span> <span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC14HPKEPrivateKeyC"></a>
<a name="//apple_ref/swift/Class/HPKEPrivateKey" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC14HPKEPrivateKeyC">HPKEPrivateKey</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A HPKE private key. There are five different private keys types corresponding to the five KEM&rsquo;s</p>
<ul>
<li>P256 - the key is a 32 byte value corresponding to curve EC256r1 private key</li>
<li>P384 - the key is a 48 byte value corresponding to curve EC384r1 private key</li>
<li>P521 - the key is a 66 byte value corresponding to curve EC521r1 private key</li>
<li>X25519 - the key is a 32 byte value corresponding to curve X25519 private key</li>
<li>X448 - the key is a 56 byte value corresponding to curve X448 private key</li>
</ul>
<a href="Classes/HPKEPrivateKey.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">HPKEPrivateKey</span> <span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC13HPKEPublicKeyC"></a>
<a name="//apple_ref/swift/Class/HPKEPublicKey" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC13HPKEPublicKeyC">HPKEPublicKey</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A public key. There are five different public keys types corresponding to the five KEM&rsquo;s</p>
<ul>
<li>P256 - the key is a 65 byte value corresponding to curve EC256r1 uncompressed public key point</li>
<li>P384 - the key is a 97 byte value corresponding to curve EC384r1 uncompressed public key point</li>
<li>P521 - the key is a 133 byte value corresponding to curve EC521r1 uncompressed public key point</li>
<li>X25519 - the key is a 32 byte value corresponding to curve X25519 public key</li>
<li>X448 - the key is a 56 byte value corresponding to curve X448 public key</li>
</ul>
<a href="Classes/HPKEPublicKey.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">HPKEPublicKey</span> <span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC9RecipientC"></a>
<a name="//apple_ref/swift/Class/Recipient" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC9RecipientC">Recipient</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Based on its CipherSuite, a Recipient instance can decrypt a sequence of messages in one of four modes:</p>
<ul>
<li>Base mode</li>
<li>Preshared key mode</li>
<li>Authenticated mode</li>
<li>Authenticated, preshared key mode</li>
</ul>
<p>The decryption of the messages must be done in the order in which they were encrypted</p>
<a href="Classes/Recipient.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">Recipient</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC6SenderC"></a>
<a name="//apple_ref/swift/Class/Sender" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC6SenderC">Sender</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Based on its CipherSuite, a Sender instance can encrypt a sequence of messages in one of four modes:</p>
<ul>
<li>Base mode</li>
<li>Preshared key mode</li>
<li>Authenticated mode</li>
<li>Authenticated, preshared key mode</li>
</ul>
<a href="Classes/Sender.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">Sender</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC12ECPrivateKeyC"></a>
<a name="//apple_ref/swift/Class/ECPrivateKey" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC12ECPrivateKeyC">ECPrivateKey</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An Elliptic Curve private key</p>
<a href="Classes/ECPrivateKey.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">ECPrivateKey</span> <span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC11ECPublicKeyC"></a>
<a name="//apple_ref/swift/Class/ECPublicKey" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC11ECPublicKeyC">ECPublicKey</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An Elliptic Curve public key</p>
<a href="Classes/ECPublicKey.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">ECPublicKey</span> <span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:8SwiftECC11ECSignatureC"></a>
<a name="//apple_ref/swift/Class/ECSignature" class="dashAnchor"></a>
<a class="token" href="#/s:8SwiftECC11ECSignatureC">ECSignature</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>ECSignature instances contain an ECDSA signature which consists of two byte arrays named <em>r</em> and <em>s</em></p>
<a href="Classes/ECSignature.html" class="slightly-smaller">See more</a>
</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">class</span> <span class="kt">ECSignature</span></code></pre>
</div>
</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-07-24)</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>