| package crypto |
| |
| import ( |
| "encoding/json" |
| |
| "github.com/SermoDigital/jose" |
| ) |
| |
| // Signature is a JWS signature. |
| type Signature []byte |
| |
| // MarshalJSON implements json.Marshaler for a signature. |
| func (s Signature) MarshalJSON() ([]byte, error) { |
| return jose.EncodeEscape(s), nil |
| } |
| |
| // Base64 helps implements jose.Encoder for Signature. |
| func (s Signature) Base64() ([]byte, error) { |
| return jose.Base64Encode(s), nil |
| } |
| |
| // UnmarshalJSON implements json.Unmarshaler for signature. |
| func (s *Signature) UnmarshalJSON(b []byte) error { |
| dec, err := jose.DecodeEscaped(b) |
| if err != nil { |
| return err |
| } |
| *s = Signature(dec) |
| return nil |
| } |
| |
| var ( |
| _ json.Marshaler = (Signature)(nil) |
| _ json.Unmarshaler = (*Signature)(nil) |
| _ jose.Encoder = (Signature)(nil) |
| ) |