rsa_ex v0.3.0 RsaEx

Summary

Functions

Decrypt message with RSA private key

iex(8)> {:ok, decrypted_clear_text} = RsaEx.decrypt(cipher_text, rsa_private_key)
{:ok, "Important message"}

Encrypt message with RSA public key in base64

iex> clear_text = "Important message"
"Important message"
iex> {:ok, cipher_text} = RsaEx.encrypt(clear_text, rsa_public_key)
{:ok, "Lmbv...HQ=="}

Generates RSA private/public keypair of {bits} size. Default is 2048.

iex> {:ok, {priv, pub}} = RsaEx.generate_keypair("4096")

Generates RSA private key of {bits} size. Default is 2048.

iex> {:ok, priv} = RsaEx.generate_private_key("4096")

Generates RSA public key

iex> {:ok, priv} = RsaEx.generate_private_key
iex> {:ok, pub} = RsaEx.generate_public_key(priv)

Sign message with RSA private key

iex> {:ok, signature} = RsaEx.sign(message, rsa_private_key)
{:ok, <<...>>}

Verify signature with RSA public key

iex> {:ok, valid} = RsaEx.verify(message, signature, rsa_public_key
{:ok, true}

Types

Functions

decrypt(cipher_msg, private_key)

Specs

decrypt(String.t, private_key) :: {atom, String.t}

Decrypt message with RSA private key

iex(8)> {:ok, decrypted_clear_text} = RsaEx.decrypt(cipher_text, rsa_private_key)
{:ok, "Important message"}
encrypt(message, public_key)

Specs

encrypt(String.t, public_key) :: {atom, String.t}

Encrypt message with RSA public key in base64

iex> clear_text = "Important message"
"Important message"
iex> {:ok, cipher_text} = RsaEx.encrypt(clear_text, rsa_public_key)
{:ok, "Lmbv...HQ=="}
generate_keypair(bits \\ "2048")

Generates RSA private/public keypair of {bits} size. Default is 2048.

iex> {:ok, {priv, pub}} = RsaEx.generate_keypair("4096")
generate_private_key(bits \\ "2048")

Generates RSA private key of {bits} size. Default is 2048.

iex> {:ok, priv} = RsaEx.generate_private_key("4096")
generate_public_key(private_key)

Specs

generate_public_key(private_key) :: {atom, public_key}

Generates RSA public key

iex> {:ok, priv} = RsaEx.generate_private_key
iex> {:ok, pub} = RsaEx.generate_public_key(priv)
sign(message, private_key, digest_type \\ :sha256)

Specs

sign(String.t, private_key, atom) :: {atom, binary}

Sign message with RSA private key

iex> {:ok, signature} = RsaEx.sign(message, rsa_private_key)
{:ok, <<...>>}
verify(message, signature, public_key, digest_type \\ :sha256)

Specs

verify(String.t, binary, public_key, atom) :: {atom, boolean}

Verify signature with RSA public key

iex> {:ok, valid} = RsaEx.verify(message, signature, rsa_public_key
{:ok, true}