module JSON::JOSE::ClassMethods

def decode(input, key_or_secret = nil, algorithms = nil, encryption_methods = nil, allow_blank_payload = false)

def decode(input, key_or_secret = nil, algorithms = nil, encryption_methods = nil, allow_blank_payload = false)
  if input.is_a? Hash
    decode_json_serialized input, key_or_secret, algorithms, encryption_methods, allow_blank_payload
  else
    decode_compact_serialized input, key_or_secret, algorithms, encryption_methods, allow_blank_payload
  end
rescue JSON::ParserError, ArgumentError
  raise JWT::InvalidFormat.new("Invalid JSON Format")
end

def register_header_keys(*keys)

def register_header_keys(*keys)
  keys.each do |header_key|
    define_method header_key do
      self.header[header_key]
    end
    define_method "#{header_key}=" do |value|
      self.header[header_key] = value
    end
  end
end