Current section
Files
Jump to
Current section
Files
lib/crypto.ex
defmodule NetLogger.Crypto do
def public_key_pem do
File.read!("public.pem")
end
def public do
[public] = :public_key.pem_decode(File.read!("public.pem"))
:public_key.pem_entry_decode(public)
end
def private do
[private] = :public_key.pem_decode(File.read!("private.pem"))
:public_key.pem_entry_decode(private)
end
def encrypt(message, public) when is_binary(message) do
:public_key.encrypt_public(message, public)
|> Base.encode64()
end
def decrypt(encrypted, private) when is_binary(encrypted) do
Base.decode64!(encrypted, ignore: :whitespace)
|> :public_key.decrypt_private(private)
end
end