View Source MaatFeather.Auth.KeyServer (maat_feather v0.2.0)

keyserver

KeyServer

# config/config.exs
config :maat_feather, MaatFeather.Auth.KeyServer,
private_key_size:
  if(System.get_env("PRIVATE_KEY_SIZE") != nil,
    do: String.to_integer(System.get_env("PRIVATE_KEY_SIZE")),
    else: 2048
  ),
exp:
  if(System.get_env("PRIVATE_KEY_EXP") != nil,
    do: String.to_integer(System.get_env("PRIVATE_KEY_EXP")),
    else: :timer.minutes(30)
  ),
key_rotation_interval:
  if(System.get_env("KEY_ROTATION_INTERVAL") != nil,
    do: String.to_integer(System.get_env("KEY_ROTATION_INTERVAL")),
    else: :timer.minutes(1)
  ),
redis_host: System.get_env("REDIS_HOST", "localhost"),
redis_port:
  if(System.get_env("REDIS_PORT") != nil,
    do: String.to_integer(System.get_env("REDIS_PORT")),
    else: 6379
  )

Link to this section Summary

Functions

Returns a specification to start this module under a supervisor.

Fetch key by kid

Fetch most recent key

Link to this section Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

@spec fetch_key!(charlist()) :: charlist()

Fetch key by kid

parameters

Parameters

  • kid: kid of the key to fetch

examples

Examples

iex> key_pem = MaatFeather.Auth.KeyServer.fetch_key!(kid)
"-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDYMp3mZs4yg9Lzui6erG8i/ZNX/VWgU6TvKDsvETvPaTuOFYfU
V7BKtksxi2OsYNTXLs8POtdH0TlGPmmY6ZnWKUffsoWbuH8dL2El9zbvrd85W0z0
6I+gt//5cpgnEMUEtk076C197DZiPAKDDh/PxRatkoIDts2B7oI7HVtuLQIDAQAB
AoGBAKFdLjNwmghkEchuNyuhQhYYs6fh4s4WgC0slvfrYfvN7HCBK29Wv7MT2o2x
HwTjBRlSy6LvZQ0qYRhHryM9f95Ui4zrdfYmmlPwlVPfENS2hJI9Og4HYLik1Y4U
MVx0EnE8jidqbV3afpVTELLmlR4TS9/WbocIcxE+Y4oVp3KVAkEA8MTMCaC8mK1T
lSzC0ssj3q6m9RPsfnCtxP1Os4V4mq9Cc1NPWWjhJc7Q8wA52Lg5PseAJ3ak3W2W
34u25NxWYwJBAOXf5Z1gJSQpLL9fPhos4RuunPjgVUBjxTR4ibFGZW9dmoibWocS
EVfPzjH/LsG2FovIqzSST3ZpoMlXiK29xi8CQQDbkTzZkuIrAfX1VoqdHXAqxW+w
lGjZrfxqZu78vD2OI0IgVdtJGGIqzn6y/IPEZcyeueTfGE2lOSmb15gFAgMtAkEA
0WP2czkt+9dpxFSMbClvT9jpcaZe4Y1ACEC4I/vcz+mypzbj6l9h3twSleY9gARO
WzwJ/5Q6v8ENzflnLePMzwJAOD7oKDz8LYe2g5EVj0M8lGY6BtfqhLOQ4mpVZ+MW
gjXDvnkeNFCgw3hM8IJuRI904Fu9cI48vmzbBrrXMaYZxA==
-----END RSA PRIVATE KEY-----

"
@spec last_key!() :: {charlist(), charlist()}

Fetch most recent key

examples

Examples

iex> {kid, key_pem} = MaatFeather.Auth.KeyServer.last_key!()
{"D1EE7997EF068672",
"-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDMXbBZLXue6XQjHmYcjhVyHGRitZ3deyvTCM0mTv40uOKProiI
WKfOZoaatJdBo7R9kOQAl4LUFb5aNcmR7GqZtDJ42CG8m1S/9fgy3R8SPpCRstHp
fawqK9cQJieb8AtPTRiNkEU1xKn7EBTeqM/UPl7t2YoqL97OvzxYylh5LwIDAQAB
AoGBAMIFwMMpl1ALvCMLXU6G5n1rzzKX0sTPh4/Xr01LebR8Qzy+KwmngclHNUvz
YBcFYPpFcPHO5nqMGihzIGfV2G1Zpu42Rt9l/kC3kZhXSp4dTmMpr6b5MT5lAaYO
Ij4s7PAZrI1Fj2Sn/TXl1eYjY8xVkoy4N7Wod6RNuK0N30QhAkEA85BY3G2B0QaI
V5Z37sSEzHB+khrAxZQxTG3uxajCN6HxzUQAJpUW3ggSHRw8J6tCUM9mBqBucuiR
N/F8w9OduwJBANbM+z6d34dQ1t9lkLJnCcSPXCaDcjdC+lg6CD8zRnn5f3DeFfQ1
v5SM0eEZVh5r4exhW3FEfXHkj8Mcu8Y3oR0CQHlkwGVczw73So0dGbmPiQC8MNlx
LBNNwSRuxksNyX8g3/uGoOyZ8kPHkf+gSvsaiHruY9N5spLjBz3yxlRz7HECQAos
aznsAEpIaeTqyo+oka3dnF+2mhJD+ddz6DAWHaBpUL/nxOJsKUa/5LDkok+OjITF
l68lr0tVp/l1wu8Ac4ECQA4Qg479XHV3G/yxm3FCO/ySDlNdlVQ1bdAiGeNeG/qI
TpI2yLu5azCuSpfs+dMRbTMkcp9aRIj20XqDAZmkwUk=
-----END RSA PRIVATE KEY-----

"}