HydroSecretBox

This module contains functions for encryption and decryption. Probing is not yet supported.

Example:

(def context (Hydro.context "Examples"))
(def msg (Hydro.buf "Arbitrary data to encrypt"))

(let-do [key (HydroSecretBox.keygen)
        cipher (Maybe.unsafe-from (HydroSecretBox.encrypt &msg 0
                                                  context &key))]
  (println*
    &(Maybe.apply (HydroSecretBox.decrypt &cipher 0 context &key)
                  (fn [b] (Hydro.unbuf &b)))))

decrypt

defn

(Fn [(Ref (Array Byte) a), Int, (Ptr CChar), (Ref (Array Byte) b)] (Maybe (Array Byte)))

                        (decrypt c id ctx key)
                    

encrypts a cipher c with the ID id, using the context ctx and key key.

encrypt

defn

(Fn [(Ref (Array Byte) a), Int, (Ptr CChar), (Ref (Array Byte) b)] (Maybe (Array Byte)))

                        (encrypt m id ctx key)
                    

encrypts a message m with the ID id, using the context ctx and key key.

keygen

defn

(Fn [] (Array Byte))

                        (keygen)
                    

generates a key for use in encryption/decryption procedures.