diff --git a/apps/amethyst/lib/encryption.ex b/apps/amethyst/lib/encryption.ex index fb72d80..2ab344c 100644 --- a/apps/amethyst/lib/encryption.ex +++ b/apps/amethyst/lib/encryption.ex @@ -30,10 +30,6 @@ defmodule Amethyst.Keys do GenServer.start_link(__MODULE__, bits, name: __MODULE__) end - def get_priv do - GenServer.call(__MODULE__, :get_priv) - end - def get_pub do GenServer.call(__MODULE__, :get_pub) end @@ -52,22 +48,19 @@ defmodule Amethyst.Keys do rsa_public_key = {:RSAPublicKey, modulus, public_exponent} Logger.info("Generated RSA keys") - {:ok, {rsa_public_key, rsa_private_key}} + {:ok, {rsa_public_key, rsa_private_key, bits}} end @impl true - def handle_call(:get_priv, _from, {pubkey, privkey}) do - {:reply, :public_key.der_encode(:RSAPrivateKey, privkey), {pubkey, privkey}} + def handle_call(:get_pub, _from, {pubkey, privkey, bits}) do + {:SubjectPublicKeyInfo, pk, :not_encrypted} = :public_key.pem_entry_encode(:SubjectPublicKeyInfo, pubkey) + # Logger.debug("#{inspect(pem_encoded, limit: :infinity)}") + {:reply, pk, {pubkey, privkey, bits}} end @impl true - def handle_call(:get_pub, _from, {pubkey, privkey}) do - {:reply, :public_key.der_encode(:RSAPublicKey, pubkey), {pubkey, privkey}} - end - - @impl true - def handle_call({:decrypt, encrypted}, _from, {pubkey, privkey}) do + def handle_call({:decrypt, encrypted}, _from, {pubkey, privkey, bits}) do plaintext = :public_key.decrypt_private(encrypted, privkey) - {:reply, plaintext, {pubkey, privkey}} + {:reply, plaintext, {pubkey, privkey, bits}} end end