summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Ahltorp <map@kth.se>2017-01-27 16:05:20 +0100
committerMagnus Ahltorp <map@kth.se>2017-01-27 16:05:20 +0100
commit9d3d360e9bde66c0b2c37a196635bcfe26872ebe (patch)
tree0ce53f017a56daee41362bfc97f839653f6f45ac
parentd4793aea4dfbf1862bf6ca8eb5cf4279a41b36a4 (diff)
Never cache public API keys
-rw-r--r--src/http_auth.erl12
1 files changed, 4 insertions, 8 deletions
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.