Rename default compressor, encryptor

This commit is contained in:
Peter Taoussanis 2013-06-16 17:53:43 +07:00
parent a2376184dc
commit e351fdfc43
3 changed files with 18 additions and 16 deletions

View file

@ -4,8 +4,8 @@
{:author "Peter Taoussanis"} {:author "Peter Taoussanis"}
(:require [taoensso.nippy (:require [taoensso.nippy
(utils :as utils) (utils :as utils)
(compression :as compression) (compression :as compression :refer (snappy-compressor))
(encryption :as encryption)]) (encryption :as encryption :refer (aes128-encryptor))])
(:import [java.io DataInputStream DataOutputStream ByteArrayOutputStream (:import [java.io DataInputStream DataOutputStream ByteArrayOutputStream
ByteArrayInputStream] ByteArrayInputStream]
[clojure.lang Keyword BigInt Ratio PersistentQueue PersistentTreeMap [clojure.lang Keyword BigInt Ratio PersistentQueue PersistentTreeMap
@ -167,8 +167,9 @@
true to produce bytes readble by Nippy < 2.x." true to produce bytes readble by Nippy < 2.x."
^bytes [x & [{:keys [print-dup? password compressor encryptor legacy-mode] ^bytes [x & [{:keys [print-dup? password compressor encryptor legacy-mode]
:or {print-dup? true :or {print-dup? true
compressor compression/default-snappy-compressor compressor snappy-compressor
encryptor encryption/default-aes128-encryptor}}]] encryptor aes128-encryptor}}]]
(let [ba (ByteArrayOutputStream.) (let [ba (ByteArrayOutputStream.)
stream (DataOutputStream. ba)] stream (DataOutputStream. ba)]
(binding [*print-dup* print-dup?] (freeze-to-stream x stream)) (binding [*print-dup* print-dup?] (freeze-to-stream x stream))
@ -277,8 +278,8 @@
[^bytes ba & [{:keys [read-eval? password compressor encryptor legacy-mode [^bytes ba & [{:keys [read-eval? password compressor encryptor legacy-mode
strict?] strict?]
:or {legacy-mode :auto :or {legacy-mode :auto
compressor compression/default-snappy-compressor compressor snappy-compressor
encryptor encryption/default-aes128-encryptor}}]] encryptor aes128-encryptor}}]]
(let [try-thaw-data (let [try-thaw-data
(fn [data-ba {decompress? :compressed? decrypt? :encrypted? (fn [data-ba {decompress? :compressed? decrypt? :encrypted?
@ -398,7 +399,8 @@
:or {print-dup? true :or {print-dup? true
compress? true}}] compress? true}}]
(freeze x {:print-dup? print-dup? (freeze x {:print-dup? print-dup?
:compressor (when compress? compression/default-snappy-compressor) :compressor (when compress? snappy-compressor)
:encryptor nil
:password password :password password
:legacy-mode true})) :legacy-mode true}))
@ -406,6 +408,7 @@
[ba & {:keys [read-eval? compressed? password] [ba & {:keys [read-eval? compressed? password]
:or {compressed? true}}] :or {compressed? true}}]
(thaw ba {:read-eval? read-eval? (thaw ba {:read-eval? read-eval?
:compressor (when compressed? compression/default-snappy-compressor) :compressor (when compressed? snappy-compressor)
:encryptor nil
:password password :password password
:legacy-mode true})) :legacy-mode true}))

View file

@ -11,11 +11,10 @@
;;;; Default implementations ;;;; Default implementations
(deftype DefaultSnappyCompressor [] (deftype SnappyCompressor []
ICompressor ICompressor
(compress [_ ba] (org.iq80.snappy.Snappy/compress ba)) (compress [_ ba] (org.iq80.snappy.Snappy/compress ba))
(decompress [_ ba] (org.iq80.snappy.Snappy/uncompress ba 0 (alength ^bytes ba)))) (decompress [_ ba] (org.iq80.snappy.Snappy/uncompress ba 0 (alength ^bytes ba))))
(def default-snappy-compressor (def snappy-compressor "Default org.iq80.snappy.Snappy compressor."
"Default org.iq80.snappy.Snappy compressor." (SnappyCompressor.))
(DefaultSnappyCompressor.))

View file

@ -64,7 +64,7 @@
(comment (destructure-typed-pwd [:salted "foo"])) (comment (destructure-typed-pwd [:salted "foo"]))
(defrecord DefaultAES128Encryptor [key-cache] (defrecord AES128Encryptor [key-cache]
IEncryptor IEncryptor
(encrypt [this typed-pwd data-ba] (encrypt [this typed-pwd data-ba]
(let [[type pwd] (destructure-typed-pwd typed-pwd) (let [[type pwd] (destructure-typed-pwd typed-pwd)
@ -93,7 +93,7 @@
^javax.crypto.spec.SecretKeySpec key iv) ^javax.crypto.spec.SecretKeySpec key iv)
(.doFinal aes128-cipher data-ba)))) (.doFinal aes128-cipher data-ba))))
(def default-aes128-encryptor (def aes128-encryptor
"Alpha - subject to change. "Alpha - subject to change.
Default 128bit AES encryptor with multi-round SHA-512 keygen. Default 128bit AES encryptor with multi-round SHA-512 keygen.
@ -129,12 +129,12 @@
Faster than `aes128-salted`, and harder to attack any particular key - but Faster than `aes128-salted`, and harder to attack any particular key - but
increased danger if a key is somehow compromised." increased danger if a key is somehow compromised."
(DefaultAES128Encryptor. (atom {}))) (AES128Encryptor. (atom {})))
;;;; Default implementation ;;;; Default implementation
(comment (comment
(def dae default-aes128-encryptor) (def dae aes128-encryptor)
(def secret-ba (.getBytes "Secret message" "UTF-8")) (def secret-ba (.getBytes "Secret message" "UTF-8"))
(encrypt dae "p" secret-ba) ; Malformed (encrypt dae "p" secret-ba) ; Malformed
(time (encrypt dae [:salted "p"] secret-ba)) (time (encrypt dae [:salted "p"] secret-ba))