Sha256: cc766de5cdf834bd90755f2e50b2bfb4bdbbd05dcdf8f83bf81e0987fbbd0524
Contents?: true
Size: 656 Bytes
Versions: 1
Compression:
Stored size: 656 Bytes
Contents
require "base64" require "json" require "jose" module JsonJws::Verify def verify_signature(jwk, b64_payload, jws_json_signature) verify_hash = { "payload" => b64_payload, "protected" => jws_json_signature["protected"], "signature" => jws_json_signature["signature"], } JOSE::JWS.verify(jwk, verify_hash).first end def verify(jws, jwks) # verify payload is base64 encoded Base64.urlsafe_decode64(jws["payload"]) jws["signatures"].each_with_index do |signature, index| return false unless verify_signature(jwks[index], jws["payload"], signature) end true rescue return false end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
json_jws-0.2.0 | lib/json_jws/verify.rb |