taoensso.nippy.crypto
Low-level crypto utils.
Private & alpha, very likely to change!
cipher-kit-aes-cbc
Default CipherKit for AES CBC
cipher-kit-aes-gcm
Default CipherKit for AES GCM
decrypt
(decrypt {:keys [cipher-kit salt-size salt->key-fn enc-ba], :or {cipher-kit cipher-kit-aes-gcm}})
encrypt
(encrypt {:keys [cipher-kit ?salt-ba key-ba plain-ba rand-bytes-fn], :or {cipher-kit cipher-kit-aes-gcm, rand-bytes-fn rand-bytes}})
ICipherKit
protocol
members
get-cipher
(get-cipher _)
Returns a thread-safe `javax.crypto.Cipher` instance.
get-iv-size
(get-iv-size _)
Returns necessary iv-ba length.
get-key-spec
(get-key-spec _ ba)
Returns a `javax.crypto.spec.SecretKeySpec`.
get-param-spec
(get-param-spec _ iv-ba)
Returns a `java.security.spec.AlgorithmParameters`.
pwd-as-ba
(pwd-as-ba utf8-or-ba)
rand-bytes
(rand-bytes size)
rand-long
(rand-long)(rand-long n)
sha512-key-ba
(sha512-key-ba ?salt-ba utf8-or-ba)(sha512-key-ba ?salt-ba utf8-or-ba n-rounds)
SHA512-based key generator. Good JVM availability without extra dependencies
(PBKDF2, bcrypt, scrypt, etc.). Decent security when using many rounds.