   ([]
    (let [pk (byte-array publickeybytes)
          sk (byte-array secretkeybytes)]
-     (.crypto_sign_keypair sodium pk sk)
+     (.crypto_sign_keypair b/sodium pk sk)
      {:public pk
       :secret sk}))
   ([seed]
    (let [pk (byte-array publickeybytes)
          sk (byte-array secretkeybytes)]
-     (.crypto_sign_seed_keypair sodium pk sk seed)
+     (.crypto_sign_seed_keypair b/sodium pk sk seed)
      {:public pk
       :secret sk})))
 

  "Puts a signature of the given message using given secret key into the given
  out buffer."
  [out sk m]
  (.crypto_sign_detached sodium out nil m (buflen m) sk)
  out)

(defn sign

(ns caesium.crypto.sign
  (:refer-clojure :exclude [bytes])
  (:require [caesium.binding :as b]
            [caesium.byte-bufs :refer [buflen]]))

(b/defconsts [bytes seedbytes publickeybytes secretkeybytes primitive])

(defn keypair!
  "Generate a public-key and secret-key for signing with
