cose

package
v0.0.0-...-d22c1cf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
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

type Headers key.IntMap

Headers represents a COSE Generic_Headers structure.

func (Headers) Bytesify

func (h Headers) Bytesify() []byte

Bytesify returns a CBOR-encoded byte slice. It returns nil if MarshalCBOR failed.

func (Headers) MarshalCBOR

func (h Headers) MarshalCBOR() ([]byte, error)

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

func (m *Mac0Message) ComputeAndEncode(macer key.MACer, externalData []byte) ([]byte, error)

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

func (s *Sign1Message) SignAndEncode(signer key.Signer, externalData []byte) ([]byte, error)

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

func (s *SignMessage) SignAndEncode(signers key.Signers, externalData []byte) ([]byte, error)

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

func (s *Signature) Kid() key.ByteStr

Kid returns the kid of the Signature which key signed. If the SignMessage is not signed, it returns nil.

func (*Signature) MarshalCBOR

func (s *Signature) MarshalCBOR() ([]byte, error)

MarshalCBOR implements the CBOR Marshaler interface for Signature.

func (*Signature) Signature

func (s *Signature) Signature() []byte

Signature returns the signature of the Signature. If the SignMessage is not signed, it returns nil.

func (*Signature) UnmarshalCBOR

func (s *Signature) UnmarshalCBOR(data []byte) error

UnmarshalCBOR implements the CBOR Unmarshaler interface for Signature.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL