Documentation
¶
Index ¶
- Constants
- type Headers
- type Mac0Message
- func (s *Mac0Message) Bytesify() []byte
- func (m *Mac0Message) Compute(macer key.MACer, externalData []byte) error
- func (m *Mac0Message) ComputeAndEncode(macer key.MACer, externalData []byte) ([]byte, error)
- func (m *Mac0Message) MarshalCBOR() ([]byte, error)
- func (s *Mac0Message) Tag() []byte
- func (s *Mac0Message) UnmarshalCBOR(data []byte) error
- func (m *Mac0Message) Verify(macer key.MACer, externalData []byte) error
- type Sign1Message
- func (s *Sign1Message) Bytesify() []byte
- func (s *Sign1Message) MarshalCBOR() ([]byte, error)
- func (s *Sign1Message) SignAndEncode(signer key.Signer, externalData []byte) ([]byte, error)
- func (s *Sign1Message) Signature() []byte
- func (s *Sign1Message) UnmarshalCBOR(data []byte) error
- func (s *Sign1Message) Verify(verifier key.Verifier, externalData []byte) error
- func (s *Sign1Message) WithSign(signer key.Signer, externalData []byte) error
- type SignMessage
- func (s *SignMessage) Bytesify() []byte
- func (s *SignMessage) MarshalCBOR() ([]byte, error)
- func (s *SignMessage) SignAndEncode(signers key.Signers, externalData []byte) ([]byte, error)
- func (s *SignMessage) Signatures() []*Signature
- func (s *SignMessage) UnmarshalCBOR(data []byte) error
- func (s *SignMessage) Verify(verifiers key.Verifiers, externalData []byte) error
- func (s *SignMessage) WithSign(signers key.Signers, externalData []byte) error
- type Signature
Constants ¶
const ( HeaderLabelReserved key.IntKey = 0 HeaderLabelAlgorithm key.IntKey = 1 // protected header HeaderLabelCritical key.IntKey = 2 // protected header HeaderLabelContentType key.IntKey = 3 // unprotected header HeaderLabelKeyID key.IntKey = 4 // unprotected header HeaderLabelIV key.IntKey = 5 // unprotected header HeaderLabelPartialIV key.IntKey = 6 // unprotected header HeaderLabelCounterSignature key.IntKey = 7 // unprotected header HeaderLabelCounterSignature0 key.IntKey = 9 // unprotected header )
COSE Header labels registered in the IANA "COSE Header Parameters" registry.
Reference https://www.iana.org/assignments/cose/cose.xhtml#header-parameters
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Headers ¶
Headers represents a COSE Generic_Headers structure.
func (Headers) Bytesify ¶
Bytesify returns a CBOR-encoded byte slice. It returns nil if MarshalCBOR failed.
func (Headers) MarshalCBOR ¶
MarshalCBOR implements the CBOR Marshaler interface for Headers. It is the same as IntMap.MarshalCBOR.
type Mac0Message ¶
type Mac0Message struct { Protected Headers Unprotected Headers Payload []byte // contains filtered or unexported fields }
Mac0Message represents a COSE_Mac0 object.
Reference https://datatracker.ietf.org/doc/html/rfc9052#name-signing-with-one-signer
func VerifyMac0Message ¶
func VerifyMac0Message(macer key.MACer, coseData, externalData []byte) (*Mac0Message, error)
VerifyMac0Message verifies and decodes a COSE_Mac0 message with a MACer and returns a *Mac0Message. `externalData` should be the same as the one used in `Mac0Message.ComputeAndEncode`.
func (*Mac0Message) Bytesify ¶
func (s *Mac0Message) Bytesify() []byte
Bytesify returns a CBOR-encoded byte slice. It returns nil if MarshalCBOR failed.
func (*Mac0Message) Compute ¶
func (m *Mac0Message) Compute(macer key.MACer, externalData []byte) error
Compute computes a COSE_Mac0 message' MAC with a MACer. `externalData` can be nil. https://datatracker.ietf.org/doc/html/rfc9052#name-externally-supplied-data
func (*Mac0Message) ComputeAndEncode ¶
ComputeAndEncode computes and encodes a COSE_Mac0 message with a MACer. `externalData` can be nil. https://datatracker.ietf.org/doc/html/rfc9052#name-externally-supplied-data
func (*Mac0Message) MarshalCBOR ¶
func (m *Mac0Message) MarshalCBOR() ([]byte, error)
MarshalCBOR implements the CBOR Marshaler interface for Mac0Message. It should call `Mac0Message.WithSign` before calling this method.
func (*Mac0Message) Tag ¶
func (s *Mac0Message) Tag() []byte
Tag returns the MAC tag of the Mac0Message. If the MAC is not computed, it returns nil.
func (*Mac0Message) UnmarshalCBOR ¶
func (s *Mac0Message) UnmarshalCBOR(data []byte) error
UnmarshalCBOR implements the CBOR Unmarshaler interface for Mac0Message.
func (*Mac0Message) Verify ¶
func (m *Mac0Message) Verify(macer key.MACer, externalData []byte) error
Verify verifies a COSE_Mac0 message' MAC with a MACer. It should call `Mac0Message.UnmarshalCBOR` before calling this method. `externalData` should be the same as the one used in Mac0Message.Compute.
type Sign1Message ¶
type Sign1Message struct { Protected Headers Unprotected Headers Payload []byte // contains filtered or unexported fields }
Sign1Message represents a COSE_Sign1 object.
Reference https://datatracker.ietf.org/doc/html/rfc9052#name-signing-with-one-signer
func VerifySign1Message ¶
func VerifySign1Message(verifier key.Verifier, coseData, externalData []byte) (*Sign1Message, error)
VerifySign1Message verifies and decodes a COSE_Sign1 message with a Verifier and returns a *Sign1Message. `externalData` should be the same as the one used in `Sign1Message.SignAndEncode`.
func (*Sign1Message) Bytesify ¶
func (s *Sign1Message) Bytesify() []byte
Bytesify returns a CBOR-encoded byte slice. It returns nil if MarshalCBOR failed.
func (*Sign1Message) MarshalCBOR ¶
func (s *Sign1Message) MarshalCBOR() ([]byte, error)
MarshalCBOR implements the CBOR Marshaler interface for Sign1Message. It should call `Sign1Message.WithSign` before calling this method.
func (*Sign1Message) SignAndEncode ¶
SignAndEncode signs and encodes a COSE_Sign1 message with a Signer. `externalData` can be nil. https://datatracker.ietf.org/doc/html/rfc9052#name-externally-supplied-data
func (*Sign1Message) Signature ¶
func (s *Sign1Message) Signature() []byte
Signature returns the signature of the Sign1Message. If the Sign1Message is not signed, it returns nil.
func (*Sign1Message) UnmarshalCBOR ¶
func (s *Sign1Message) UnmarshalCBOR(data []byte) error
UnmarshalCBOR implements the CBOR Unmarshaler interface for Sign1Message.
func (*Sign1Message) Verify ¶
func (s *Sign1Message) Verify(verifier key.Verifier, externalData []byte) error
Verify verifies a COSE_Sign1 message with a Verifier. It should call `Sign1Message.UnmarshalCBOR` before calling this method. `externalData` should be the same as the one used in `Sign1Message.WithSign`.
func (*Sign1Message) WithSign ¶
func (s *Sign1Message) WithSign(signer key.Signer, externalData []byte) error
WithSign signs a COSE_Sign1 message with a Signer. `externalData` can be nil. https://datatracker.ietf.org/doc/html/rfc9052#name-externally-supplied-data
type SignMessage ¶
type SignMessage struct { Protected Headers Unprotected Headers Payload []byte // contains filtered or unexported fields }
SignMessage represents a COSE_Sign object.
Reference https://datatracker.ietf.org/doc/html/rfc9052#name-signing-with-one-or-more-si
func VerifySignMessage ¶
func VerifySignMessage(verifiers key.Verifiers, coseData, externalData []byte) (*SignMessage, error)
VerifySignMessage verifies and decodes a COSE_Sign format with some Verifiers and returns a *SignMessage. `externalData` should be the same as the one used in `SignMessage.SignAndEncode`.
func (*SignMessage) Bytesify ¶
func (s *SignMessage) Bytesify() []byte
Bytesify returns a CBOR-encoded byte slice. It returns nil if MarshalCBOR failed.
func (*SignMessage) MarshalCBOR ¶
func (s *SignMessage) MarshalCBOR() ([]byte, error)
MarshalCBOR implements the CBOR Marshaler interface for SignMessage. It should call `SignMessage.WithSign` before calling this method.
func (*SignMessage) SignAndEncode ¶
SignAndEncode signs and encodes a COSE_Sign message with some Signers. `externalData` can be nil. https://datatracker.ietf.org/doc/html/rfc9052#name-externally-supplied-data
func (*SignMessage) Signatures ¶
func (s *SignMessage) Signatures() []*Signature
Signatures returns the signatures of the SignMessage. If the SignMessage is not signed, it returns nil.
func (*SignMessage) UnmarshalCBOR ¶
func (s *SignMessage) UnmarshalCBOR(data []byte) error
UnmarshalCBOR implements the CBOR Unmarshaler interface for SignMessage.
func (*SignMessage) Verify ¶
func (s *SignMessage) Verify(verifiers key.Verifiers, externalData []byte) error
Verify verifies a COSE_Sign message with some Verifiers. It should call `SignMessage.UnmarshalCBOR` before calling this method. `externalData` should be the same as the one used in SignMessage.WithSign.
func (*SignMessage) WithSign ¶
func (s *SignMessage) WithSign(signers key.Signers, externalData []byte) error
WithSign signs a COSE_Sign message with some Signers. `externalData` can be nil. https://datatracker.ietf.org/doc/html/rfc9052#name-externally-supplied-data
type Signature ¶
type Signature struct { Protected Headers Unprotected Headers // contains filtered or unexported fields }
Signature represents a COSE_Signature object.
func (*Signature) Kid ¶
Kid returns the kid of the Signature which key signed. If the SignMessage is not signed, it returns nil.
func (*Signature) MarshalCBOR ¶
MarshalCBOR implements the CBOR Marshaler interface for Signature.
func (*Signature) Signature ¶
Signature returns the signature of the Signature. If the SignMessage is not signed, it returns nil.
func (*Signature) UnmarshalCBOR ¶
UnmarshalCBOR implements the CBOR Unmarshaler interface for Signature.