Sha256: fa5a37c74cb4e19e2293a9f0ed423ec8734388092adf35e1e9ba4b4b9f08aa6f
Contents?: true
Size: 755 Bytes
Versions: 1
Compression:
Stored size: 755 Bytes
Contents
require "base64" require "json" require "jose" module JsonJws::Sign def build_signature(jwk, header, payload) payload = payload.to_json unless payload.is_a?(String) raise "header must be a Hash" unless header.is_a?(Hash) jose_signed_map = JOSE::JWS.sign(jwk, payload, header) jose_signed_map.to_hash.slice("protected", "signature").values end def add_signature(jws, jwk, protected_header) encoded_protected_header = Base64.urlsafe_encode64(protected_header.to_json) raw_payload = Base64.decode64(jws["payload"]) protected_header, signature = build_signature(jwk, protected_header, raw_payload) jws["signatures"] << { "protected" => protected_header, "signature" => signature, } jws end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
json_jws-0.2.0 | lib/json_jws/sign.rb |