19 lines
618 B
Elixir
19 lines
618 B
Elixir
defmodule Nulla.KeyGen do
|
|
def generate_keys do
|
|
rsa_key = :public_key.generate_key({:rsa, 2048, 65537})
|
|
|
|
{:RSAPrivateKey, :"two-prime", n, e, _d, _p, _q, _dp, _dq, _qi, _other} = rsa_key
|
|
public_key = {:RSAPublicKey, n, e}
|
|
|
|
private_entry =
|
|
{:PrivateKeyInfo, :public_key.der_encode(:RSAPrivateKey, rsa_key), :not_encrypted}
|
|
|
|
public_entry =
|
|
{:SubjectPublicKeyInfo, :public_key.der_encode(:RSAPublicKey, public_key), :not_encrypted}
|
|
|
|
private_pem = :public_key.pem_encode([private_entry])
|
|
public_pem = :public_key.pem_encode([public_entry])
|
|
|
|
{public_pem, private_pem}
|
|
end
|
|
end
|