From 9d3d360e9bde66c0b2c37a196635bcfe26872ebe Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Fri, 27 Jan 2017 16:05:20 +0100 Subject: Never cache public API keys --- src/http_auth.erl | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/http_auth.erl b/src/http_auth.erl index 3bd18b1..ff8c506 100644 --- a/src/http_auth.erl +++ b/src/http_auth.erl @@ -17,10 +17,6 @@ init_key_table() -> read_key_table(). read_key_table() -> - lists:foreach( - fun ({KeyName, Der}) -> - true = ets:insert(?KEY_TABLE, {KeyName, sign:pem_entry_decode({'SubjectPublicKeyInfo', Der, []})}) - end, plopconfig:get_env(apikeys, [])), case application:get_env(plop, own_key, none) of {_OwnKeyName, OwnKeyFile} -> OwnKey = sign:read_keyfile_ec(OwnKeyFile), @@ -42,10 +38,10 @@ own_key() -> lookup_publickey(nokey) -> nokey; lookup_publickey(KeyName) -> - case ets:lookup(?KEY_TABLE, KeyName) of - [{_, Key}] -> - Key; - [] -> + case lists:keyfind(KeyName, 1, plopconfig:get_env(apikeys, [])) of + {_, Der} -> + sign:pem_entry_decode({'SubjectPublicKeyInfo', Der, []}); + false -> failure end. -- cgit v1.1