aboutsummaryrefslogtreecommitdiff
path: root/lib/identity.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/identity.ex')
-rw-r--r--lib/identity.ex46
1 files changed, 0 insertions, 46 deletions
diff --git a/lib/identity.ex b/lib/identity.ex
deleted file mode 100644
index f1899df..0000000
--- a/lib/identity.ex
+++ /dev/null
@@ -1,46 +0,0 @@
-defmodule Shard.Identity do
- use Agent
- require Salty.Sign.Ed25519, as: Sign
- require Logger
-
- def start_link(_) do
- Agent.start_link(__MODULE__, :init, [], name: __MODULE__)
- end
-
- def init() do
- Logger.info "Generating keypair..."
- {pk, sk} = gen_keypair(Application.get_env(:shard, :peer_id_suffix))
- nick_suffix = pk
- |> binary_part(0, 3)
- |> Base.encode16
- |> String.downcase
- %{
- keypair: {pk, sk},
- nickname: "Anon" <> nick_suffix,
- }
- end
-
- defp gen_keypair(suffix, n \\ 0) do
- {:ok, pk, sk} = Sign.keypair
- if rem(n, 10000) == 0 do
- Logger.info "#{n}... expected #{:math.pow(256, byte_size(suffix))}"
- end
- if :binary.longest_common_suffix([pk, suffix]) == byte_size(suffix) do
- {pk, sk}
- else
- gen_keypair(suffix, n+1)
- end
- end
-
- def get_keypair() do
- Agent.get(__MODULE__, &(&1.keypair))
- end
-
- def get_nickname() do
- Agent.get(__MODULE__, &(&1.nickname))
- end
-
- def set_nickname(newnick) do
- Agent.update(__MODULE__, &(%{&1 | nickname: newnick}))
- end
-end