Sha256: b89435696a81ed50b74244ea191fb28e243213cfb903928fd0eb96b25e8a27b4
Contents?: true
Size: 681 Bytes
Versions: 1
Compression:
Stored size: 681 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 begin Base64.urlsafe_decode64(jws["payload"]) rescue return false end jws["signatures"].each_with_index do |signature, index| return false unless verify_signature(jwks[index], jws["payload"], signature) end true end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
json_jws-0.1.0 | lib/json_jws/verify.rb |