diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-09-18 18:10:21 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-09-18 18:10:21 +0200 |
commit | 6268b7e0eb400c1b5e227a73e6faee0f1e476db4 (patch) | |
tree | e858d77a66b74008c6e219b947869cb7df9d4751 /lib | |
parent | 9cefbaf01625cbb4b892ce2b767f79ceb155110b (diff) | |
download | pleroma-6268b7e0eb400c1b5e227a73e6faee0f1e476db4.tar.gz pleroma-6268b7e0eb400c1b5e227a73e6faee0f1e476db4.zip |
HTTP Signatures: Work with all test vectors.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/http_signatures/http_signatures.ex | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/pleroma/web/http_signatures/http_signatures.ex b/lib/pleroma/web/http_signatures/http_signatures.ex index e2210285e..65a344e0b 100644 --- a/lib/pleroma/web/http_signatures/http_signatures.ex +++ b/lib/pleroma/web/http_signatures/http_signatures.ex @@ -1,9 +1,9 @@ # https://tools.ietf.org/html/draft-cavage-http-signatures-08 defmodule Pleroma.Web.HTTPSignatures do def split_signature(sig) do - default = %{"headers" => ["date"]} + default = %{"headers" => "date"} - sig + sig = sig |> String.trim() |> String.split(",") |> Enum.reduce(default, fn(part, acc) -> @@ -11,6 +11,8 @@ defmodule Pleroma.Web.HTTPSignatures do value = Enum.join(rest, "=") Map.put(acc, key, String.trim(value, "\"")) end) + + Map.put(sig, "headers", String.split(sig["headers"], ~r/\s/)) end def validate(headers, signature, public_key) do |