std.lib.security.key

->key

added in 3.0

(->key k)

idempotent function converting input into a key

(-> {:type “AES”, :mode :secret, :format “RAW”, :encoded “euHlt5sHWhRpbKZHjrwrrQ==”} (->key) (->key)) => java.security.Key

generate-key

added in 3.0

(generate-key)(generate-key algo {:keys [provider], :as opts})

generates a key according to algorithm

(generate-key) => (“AES” “ARCFOUR” “Blowfish” “DES” “DESede” “HmacMD5” “HmacSHA1” “HmacSHA224” “HmacSHA256” “HmacSHA384” “HmacSHA512” …)

(generate-key “AES” {:length 128}) ;;=> #key {:type “AES”, ;; :mode :secret, ;; :format “RAW”, ;; :encoded “AQgv8l+vJNfnEWuhHs55wg==”}

(generate-key “HmacSHA224” {:length 40}) ;;=> #key {:type “HmacSHA224”, ;; :mode :secret, ;; :format “RAW”, ;; :encoded “0qQkmic=”}

generate-key-pair

added in 3.0

(generate-key-pair)(generate-key-pair type {:keys [provider], :as opts})

creates a public and private key pair

(generate-key-pair) => (“DSA” “DiffieHellman” “EC” “RSA”)

(generate-key-pair “RSA” {:length 512}) ;;=> [#key {:type “RSA”, ;; :mode :public, ;; :format “X.509”, ;; :encoded “….” } ;; #key {:type “RSA”, ;; :mode :private, ;; :format “PKCS#8”, ;; :encoded “…”}]

init-key-generator

added in 3.0

(init-key-generator gen {:keys [length params random], :as opts})

initializes a KeyGenerator object

init-key-pair-generator

added in 3.0

(init-key-pair-generator gen {:keys [length params random], :as opts})

initializes a KeyPairGenerator object

key->map

added in 3.0

(key->map k)

returns a map representation of a key

(key->map (generate-key “AES” {:length 128})) => (contains {:type “AES”, :mode :secret, :format “RAW”, :encoded string?})

key-mode

added in 3.0

(key-mode k)

returns the mode of a key

(->> (generate-key-pair “RSA” {:length 512}) (map key-mode)) => :public :private

key-type

added in 3.0

(key-type k)

returns the type of a key

(key-type (generate-key “AES” {:length 128})) => “AES”

map->key

multimethod

added in 3.0

transforms a map into a key

(map->key {:type “AES”, :mode :secret, :format “RAW”, :encoded “euHlt5sHWhRpbKZHjrwrrQ==”}) => java.security.Key

to-bytes

added in 3.0

(to-bytes input)

transforms input to a byte array