diff options
author | David Barksdale <amatus.amongus@gmail.com> | 2010-04-07 18:00:53 -0700 |
---|---|---|
committer | David Barksdale <amatus.amongus@gmail.com> | 2010-04-07 18:00:53 -0700 |
commit | 3bc43537f315436ad9c8c94582e85e9555e795e6 (patch) | |
tree | 76cd233c6444c0ca15684c29f2bdcef1bbb67c1e | |
parent | a2785c6f20c5f362f780467301e753b70de55f41 (diff) |
New generate-id function, and new-peer uses it.
-rw-r--r-- | src/org/gnu/clojure/gnunet/identity.clj | 7 | ||||
-rw-r--r-- | src/org/gnu/clojure/gnunet/peer.clj | 16 |
2 files changed, 17 insertions, 6 deletions
diff --git a/src/org/gnu/clojure/gnunet/identity.clj b/src/org/gnu/clojure/gnunet/identity.clj index dc47164..7eb3e03 100644 --- a/src/org/gnu/clojure/gnunet/identity.clj +++ b/src/org/gnu/clojure/gnunet/identity.clj @@ -39,4 +39,9 @@ (defn sha-512 [x] (let [sha (java.security.MessageDigest/getInstance "SHA-512")] - (.digest sha (byte-array x))))
\ No newline at end of file + (.digest sha (byte-array x)))) + +(defn generate-id + "Generate the SHA-512 hash of the encoded public key" + [keypair] + (sha-512 (encode-rsa-public-key (.getPublic keypair)))) diff --git a/src/org/gnu/clojure/gnunet/peer.clj b/src/org/gnu/clojure/gnunet/peer.clj index c35e420..b60c4d6 100644 --- a/src/org/gnu/clojure/gnunet/peer.clj +++ b/src/org/gnu/clojure/gnunet/peer.clj @@ -1,11 +1,17 @@ -(ns org.gnu.clojure.gnunet.peer) +(ns org.gnu.clojure.gnunet.peer + (:use (org.gnu.clojure.gnunet identity))) -(defstruct peer - :options) +(defstruct remote-peer + :id) + +(def peer (apply create-struct (concat + (keys (struct-map remote-peer)) + (list :keypair)))) (defstruct peer-options - :id) + :keypair) (defn new-peer [options] (struct-map peer - :options (ref options))) + :keypair (:keypair options) + :id (generate-id (:keypair options)))) |