         opts (Object)
   Returns
         (Key) derived key"
-  [k {:keys [algorithm ephemeral] :as opt}]
+  [k {:keys [ephemeral] :as opt}]
+  ;; From JS SDK doc
   ;; Derives the new private key from the source public key using the parameters passed in the opts.
   ;; This operation is needed for deriving private keys corresponding to the Transaction
   ;; Certificates.
+
+  ;; From Go SDK
+  ;;
+  ;;1. 
   )
+
+
+
+
 
 ;;; importKey
 (defn import-key

        param-specs (-> ephemeral name ECNamedCurveTable/getParameterSpec)]
    (.initialize generator param-specs (SecureRandom.))
    (.generateKeyPair generator)))

;;;deriveKey
(defn derive-key
  "Derives a key from k using opts.

(ns clojure-fabric.crypto-suite
  (:import [org.bouncycastle.crypto.generators ECKeyPairGenerator]
           [org.bouncycastle.jce ECNamedCurveTable]
           [org.bouncycastle.jce.spec ECNamedCurveParameterSpec ECParameterSpec ECNamedCurveSpec]
           [org.bouncycastle.jce.provider BouncyCastleProvider]
           [org.bouncycastle.jcajce.provider.asymmetric.ec KeyPairGeneratorSpi$ECDSA
            BCECPrivateKey BCECPublicKey]
           [java.security KeyPairGenerator SecureRandom Security])
  (:refer-clojure :exclude [hash]))

;; Add provider!
(Security/addProvider (BouncyCastleProvider.))

;;;generate_key
(defn generate-key
  "Generate a key based on the options. The utput can be a private key or a public key in an
