SHA256 hash the kid claim before fetching tokens

This commit is contained in:
Sam Whited 2016-08-31 09:24:15 -05:00
parent d9559ecf63
commit d8c4c0627a
1 changed files with 7 additions and 1 deletions

View File

@ -9,6 +9,7 @@ local http = require "net.http";
local json = require "cjson";
local new_sasl = require "util.sasl".new;
local sasl = require "util.sasl";
local sha256 = require "util.hashes".sha256;
local timer = require "util.timer";
local token_util = module:require "token/util";
@ -96,10 +97,15 @@ function get_public_key(keyId)
done();
end
module:log("debug", "Fetching public key from: "..asapKeyServer..keyId);
local request = http.request(asapKeyServer..keyId, {
-- We hash the key ID to work around some legacy behavior in the original
-- deployment and make deployment easier. It also helps prevent directory
-- traversal attacks (although path cleaning could have done this too).
local request = http.request(asapKeyServer..sha256(keyId)..'.pem', {
headers = http_headers or {},
method = "GET"
}, cb);
-- TODO: Is the done() call racey? Can we cancel this if the request
-- succeedes?
local function cancel()