2016-02-25 11:50:00 +00:00
< !DOCTYPE html PUBLIC ""
"">
2020-09-11 11:05:46 +00:00
< html > < head > < meta charset = "UTF-8" / > < title > taoensso.nippy.encryption documentation< / title > < link rel = "stylesheet" type = "text/css" href = "css/default.css" / > < link rel = "stylesheet" type = "text/css" href = "css/highlight.css" / > < script type = "text/javascript" src = "js/highlight.min.js" > < / script > < script type = "text/javascript" src = "js/jquery.min.js" > < / script > < script type = "text/javascript" src = "js/page_effects.js" > < / script > < script > hljs . initHighlightingOnLoad ( ) ; < / script > < / 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" > 3.0.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" > < a href = "taoensso.nippy.crypto.html" > < div class = "inner" > < span class = "tree" > < span class = "top" > < / span > < span class = "bottom" > < / span > < / span > < span > crypto< / 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-aes128-cbc-encryptor" > < div class = "inner" > < span > aes128-cbc-encryptor< / span > < / div > < / a > < / li > < li class = "depth-1" > < a href = "taoensso.nippy.encryption.html#var-aes128-gcm-encryptor" > < div class = "inner" > < span > aes128-gcm-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-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
2020-07-24 18:40:46 +00:00
< / pre > < / div > < div class = "public anchor" id = "var-aes128-cbc-encryptor" > < h3 > aes128-cbc-encryptor< / h3 > < div class = "usage" > < / div > < div class = "doc" > < pre class = "plaintext" > Default 128bit AES-CBC encryptor with many-round SHA-512 key-gen.
2020-09-10 09:56:10 +00:00
See also `aes-128-cbc-encryptor`.< / pre > < / div > < / div > < div class = "public anchor" id = "var-aes128-gcm-encryptor" > < h3 > aes128-gcm-encryptor< / h3 > < div class = "usage" > < / div > < div class = "doc" > < pre class = "plaintext" > Default 128bit AES-GCM encryptor with many-round SHA-512 key-gen.
2013-06-13 09:49:09 +00:00
2016-02-25 11:50:00 +00:00
Password form [:salted "my-password"]
2013-06-13 09:49:09 +00:00
---------------------------------------
USE CASE: You want more than a small, finite number of passwords (e.g. each
2015-09-17 04:19:19 +00:00
item encrypted will use a unique user-provided password).
2013-06-13 09:49:09 +00:00
IMPLEMENTATION: Uses a relatively cheap key hash, but automatically salts
every key.
PROS: Each key is independent so would need to be attacked independently.
2016-02-25 11:50:00 +00:00
CONS: Key caching impossible, so there's an inherent trade-off between
2013-06-13 09:49:09 +00:00
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.
2016-02-25 11:50:00 +00:00
Password form [:cached "my-password"]
2013-06-13 09:49:09 +00:00
---------------------------------------
USE CASE: You want only a small, finite number of passwords (e.g. a limited
2016-02-25 11:50:00 +00:00
number of staff/admins, or you'll be using a single password to
2013-06-13 09:49:09 +00:00
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
2020-09-10 09:56:10 +00:00
increased danger if a key is somehow compromised.< / pre > < / 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 > < 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 > < / div > < / body > < / html >