module CWT
Constants
- CBOR_TAG
- VERSION
Public Class Methods
decode(token, cose_key)
click to toggle source
# File lib/cwt.rb, line 15 def self.decode(token, cose_key) decoded = CBOR.decode(token) case decoded.tag when CBOR_TAG decode(CBOR.encode(decoded.value), cose_key) when COSE::Sign1.tag key = COSE::Key.deserialize(cose_key) sign1 = COSE::Sign1.deserialize(token) if sign1.verify(key) CWT::ClaimsSet.from_cbor(sign1.payload) else raise(CWT::Error, "Verification failed") end when COSE::Mac0.tag key = COSE::Key.deserialize(cose_key) mac0 = COSE::Mac0.deserialize(token) if mac0.verify(key) CWT::ClaimsSet.from_cbor(mac0.payload) else raise(CWT::Error, "Verification failed") end else raise(CWT::Error, "Unsupported tag #{decoded.tag}") end end