   Returns
         Result(Object):Signature object"
   [^bytes digest priv-key {:keys [algorithm]}]
-  (let [signature (Signature/getInstance (name algorithm))]
-    (.initSign signature priv-key)
-    (.update signature digest)
-    (.sign signature)))
+  (let [signer (Signature/getInstance (name algorithm))]
+    (.initSign signer priv-key)
+    (.update signer digest)
+    (.sign signer)))
 
 ;;; verify
 (defn verify

        digest (byte[]) original digest that was signed
  Returns
        (bool): verification successful or not"
  [pub-key signature ^bytes digest {:keys [algorithm]}]
  (let [signature (Signature/getInstance (name algorithm))]
    (.initVerify signature pub-key) ;; Reflection warning! - pub-key type is unknown :(
    (.update signature digest)
    (.verify signature)))

#_
(comment

;;;
;;; Interface
;;;
;;; 'opts' is CryptoSuite
;;; 
(defrecord CryptoSuite [security-provider key-algorithm curve-name hash-algorithm])
(defn make-crypto-suite
  [{:keys [security-provider key-algorithm curve-name hash-algorithm]
