39 lines
No EOL
7.7 KiB
HTML
39 lines
No EOL
7.7 KiB
HTML
<!DOCTYPE html>
|
|
<html><head><meta charset="UTF-8"><link href="css/default.css" rel="stylesheet" type="text/css"><script src="js/jquery.min.js" type="text/javascript"></script><script src="js/page_effects.js" type="text/javascript"></script><title>taoensso.nippy.encryption documentation</title></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Nippy</span> <span class="project-version">2.11.0-RC1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>taoensso</span></div></div></li><li class="depth-2"><a href="taoensso.nippy.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>nippy</span></div></a></li><li class="depth-3 branch"><a href="taoensso.nippy.benchmarks.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>benchmarks</span></div></a></li><li class="depth-3 branch"><a href="taoensso.nippy.compression.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>compression</span></div></a></li><li class="depth-3 branch current"><a href="taoensso.nippy.encryption.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>encryption</span></div></a></li><li class="depth-3 branch"><a href="taoensso.nippy.tools.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>tools</span></div></a></li><li class="depth-3"><a href="taoensso.nippy.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="taoensso.nippy.encryption.html#var--.3EAES128Encryptor"><div class="inner"><span>->AES128Encryptor</span></div></a></li><li class="depth-1"><a href="taoensso.nippy.encryption.html#var-aes128-encryptor"><div class="inner"><span>aes128-encryptor</span></div></a></li><li class="depth-1"><a href="taoensso.nippy.encryption.html#var-IEncryptor"><div class="inner"><span>IEncryptor</span></div></a></li><li class="depth-2 branch"><a href="taoensso.nippy.encryption.html#var-decrypt"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>decrypt</span></div></a></li><li class="depth-2 branch"><a href="taoensso.nippy.encryption.html#var-encrypt"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>encrypt</span></div></a></li><li class="depth-2"><a href="taoensso.nippy.encryption.html#var-header-id"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>header-id</span></div></a></li><li class="depth-1"><a href="taoensso.nippy.encryption.html#var-map-.3EAES128Encryptor"><div class="inner"><span>map->AES128Encryptor</span></div></a></li><li class="depth-1"><a href="taoensso.nippy.encryption.html#var-standard-header-ids"><div class="inner"><span>standard-header-ids</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">taoensso.nippy.encryption</h1><div class="doc"><pre class="plaintext">Simple no-nonsense crypto with reasonable defaults.
|
|
</pre></div><div class="public anchor" id="var--.3EAES128Encryptor"><h3>->AES128Encryptor</h3><div class="usage"><code>(->AES128Encryptor key-gen key-cache)</code></div><div class="doc"><pre class="plaintext">Positional factory function for class taoensso.nippy.encryption.AES128Encryptor.
|
|
</pre></div><div class="src-link"><a href="https://github.com/ptaoussanis/nippy/blob/master/src/taoensso/nippy/encryption.clj#L78">view source</a></div></div><div class="public anchor" id="var-aes128-encryptor"><h3>aes128-encryptor</h3><div class="usage"></div><div class="doc"><pre class="plaintext">Default 128bit AES encryptor with many-round SHA-512 key-gen.
|
|
|
|
Password form [:salted "my-password"]
|
|
---------------------------------------
|
|
USE CASE: You want more than a small, finite number of passwords (e.g. each
|
|
item encrypted will use a unique user-provided password).
|
|
|
|
IMPLEMENTATION: Uses a relatively cheap key hash, but automatically salts
|
|
every key.
|
|
|
|
PROS: Each key is independent so would need to be attacked independently.
|
|
CONS: Key caching impossible, so there's an inherent trade-off between
|
|
encryption/decryption speed and the difficulty of attacking any
|
|
particular key.
|
|
|
|
Slower than `aes128-cached`, and easier to attack any particular key - but
|
|
keys are independent.
|
|
|
|
Password form [:cached "my-password"]
|
|
---------------------------------------
|
|
USE CASE: You want only a small, finite number of passwords (e.g. a limited
|
|
number of staff/admins, or you'll be using a single password to
|
|
encrypt many items).
|
|
|
|
IMPLEMENTATION: Uses a _very_ expensive (but cached) key hash, and no salt.
|
|
|
|
PROS: Great amortized encryption/decryption speed. Expensive key hash makes
|
|
attacking any particular key very difficult.
|
|
CONS: Using a small number of keys for many encrypted items means that if any
|
|
key _is_ somehow compromised, _all_ items encrypted with that key are
|
|
compromised.
|
|
|
|
Faster than `aes128-salted`, and harder to attack any particular key - but
|
|
increased danger if a key is somehow compromised.</pre></div><div class="src-link"><a href="https://github.com/ptaoussanis/nippy/blob/master/src/taoensso/nippy/encryption.clj#L114">view source</a></div></div><div class="public anchor" id="var-IEncryptor"><h3>IEncryptor</h3><h4 class="type">protocol</h4><div class="usage"></div><div class="doc"><pre class="plaintext"></pre></div><div class="members"><h4>members</h4><div class="inner"><div class="public anchor" id="var-decrypt"><h3>decrypt</h3><div class="usage"><code>(decrypt encryptor pwd ba)</code></div><div class="doc"><pre class="plaintext"></pre></div></div><div class="public anchor" id="var-encrypt"><h3>encrypt</h3><div class="usage"><code>(encrypt encryptor pwd ba)</code></div><div class="doc"><pre class="plaintext"></pre></div></div><div class="public anchor" id="var-header-id"><h3>header-id</h3><div class="usage"><code>(header-id encryptor)</code></div><div class="doc"><pre class="plaintext"></pre></div></div></div></div><div class="src-link"><a href="https://github.com/ptaoussanis/nippy/blob/master/src/taoensso/nippy/encryption.clj#L10">view source</a></div></div><div class="public anchor" id="var-map-.3EAES128Encryptor"><h3>map->AES128Encryptor</h3><div class="usage"><code>(map->AES128Encryptor m__6518__auto__)</code></div><div class="doc"><pre class="plaintext">Factory function for class taoensso.nippy.encryption.AES128Encryptor, taking a map of keywords to field values.
|
|
</pre></div><div class="src-link"><a href="https://github.com/ptaoussanis/nippy/blob/master/src/taoensso/nippy/encryption.clj#L78">view source</a></div></div><div class="public anchor" id="var-standard-header-ids"><h3>standard-header-ids</h3><div class="usage"></div><div class="doc"><pre class="plaintext">These'll support :auto thaw
|
|
</pre></div><div class="src-link"><a href="https://github.com/ptaoussanis/nippy/blob/master/src/taoensso/nippy/encryption.clj#L8">view source</a></div></div></div></body></html> |