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

        opts (Object)
  Returns
        (Key) An instance of the Key class wrapping the raw key bytes"
  [k {:keys [algorithm curve ephemeral type]}]
  (let [curve-name (name curve)
        parameter-spec (ECNamedCurveTable/getParameterSpec curve-name)
        curve (.getCurve parameter-spec)

        key-size (count k-byte-array)]
    (if (= curve-size key-size)
      (let [middle (int (/ key-size 2))
            kf (KeyFactory/getInstance (name algorithm) security-provider)
            spec (ECPublicKeySpec. (ECPoint. (java.math.BigInteger. 1 (Arrays/copyOfRange k-byte-array (int 0) middle))
                                             (java.math.BigInteger. 1 (Arrays/copyOfRange k-byte-array middle key-size)))
                                   (ECNamedCurveSpec. curve-name curve (.getG parameter-spec) (.getN parameter-spec)
