Versions in this module Expand all Collapse all v0 v0.0.2 May 21, 2021 Changes in this version + const ContextSignature + const SignMessageCBORTag + var ES256 = getAlgByNameOrPanic("ES256") + var ES384 = getAlgByNameOrPanic("ES384") + var ES512 = getAlgByNameOrPanic("ES512") + var ErrAlgNotFound = errors.New("Error fetching alg") + var ErrECDSAVerification = errors.New("verification failed ecdsa.Verify") + var ErrInvalidAlg = errors.New("Invalid algorithm") + var ErrMissingCOSETagForLabel = errors.New("No common COSE tag for label") + var ErrMissingCOSETagForTag = errors.New("No common COSE label for tag") + var ErrNilSigHeader = errors.New("Signature.headers is nil") + var ErrNilSigProtectedHeaders = errors.New("Signature.headers.protected is nil") + var ErrNilSignatures = errors.New("SignMessage.signatures is nil. Use AddSignature to add one") + var ErrNoSignatures = errors.New("No signatures to sign the message. Use AddSignature to add them") + var ErrNoSignerFound = errors.New("No signer found") + var ErrNoVerifierFound = errors.New("No verifier found") + var ErrRSAPSSVerification = errors.New("verification failed rsa.VerifyPSS err crypto/rsa: verification error") + var ErrUnavailableHashFunc = errors.New("hash function is not available") + var ErrUnknownPrivateKeyType = errors.New("Unrecognized private key type") + var ErrUnknownPublicKeyType = errors.New("Unrecognized public key type") + var PS256 = getAlgByNameOrPanic("PS256") + func CompressHeaders(headers map[interface{}]interface{}) (compressed map[interface{}]interface{}) + func DecompressHeaders(headers map[interface{}]interface{}) (decompressed map[interface{}]interface{}) + func FindDuplicateHeader(headers *Headers) interface + func FromBase64Int(data string) *big.Int + func GetCommonHeaderLabel(tag int) (label string, err error) + func GetCommonHeaderTag(label string) (tag int, err error) + func GetCommonHeaderTagOrPanic(label string) (tag int) + func I2OSP(b *big.Int, n int) []byte + func IsSignMessage(data []byte) bool + func Marshal(o interface{}) (b []byte, err error) + func Sign(rand io.Reader, digest []byte, signers []ByteSigner) (signatures [][]byte, err error) + func Unmarshal(b []byte) (o interface{}, err error) + func Verify(digest []byte, signatures [][]byte, verifiers []ByteVerifier) (err error) + type Algorithm struct + HashFunc crypto.Hash + Name string + Value int + type ByteSigner interface + Sign func(rand io.Reader, digest []byte) (signature []byte, err error) + type ByteVerifier interface + Verify func(digest []byte, signature []byte) (err error) + type Headers struct + Protected map[interface{}]interface{} + Unprotected map[interface{}]interface{} + func (h *Headers) Decode(o []interface{}) (err error) + func (h *Headers) DecodeProtected(o interface{}) (err error) + func (h *Headers) DecodeUnprotected(o interface{}) (err error) + func (h *Headers) EncodeProtected() (bstr []byte) + func (h *Headers) EncodeUnprotected() (encoded map[interface{}]interface{}) + type KeyType int + const KeyTypeECDSA + const KeyTypeRSA + const KeyTypeUnsupported + type RSAOptions struct + Size int + type SignMessage struct + Headers *Headers + Payload []byte + Signatures []Signature + func NewSignMessage() *SignMessage + func (m *SignMessage) AddSignature(s *Signature) + func (m *SignMessage) SigStructure(external []byte, signature *Signature) (ToBeSigned []byte, err error) + func (m *SignMessage) Sign(rand io.Reader, external []byte, signers []Signer) (err error) + func (m *SignMessage) SignatureDigests(external []byte) (digests [][]byte, err error) + func (m *SignMessage) Verify(external []byte, verifiers []Verifier) (err error) + func (message *SignMessage) MarshalCBOR() ([]byte, error) + func (message *SignMessage) UnmarshalCBOR(data []byte) (err error) + type Signature struct + Headers *Headers + SignatureBytes []byte + func NewSignature() (s *Signature) + func (s *Signature) Decode(o interface{}) + func (s *Signature) Equal(other *Signature) bool + type Signer struct + PrivateKey crypto.PrivateKey + func NewSigner(alg *Algorithm, options interface{}) (signer *Signer, err error) + func NewSignerFromKey(alg *Algorithm, privateKey crypto.PrivateKey) (signer *Signer, err error) + func (s *Signer) Public() (publicKey crypto.PublicKey) + func (s *Signer) Sign(rand io.Reader, digest []byte) (signature []byte, err error) + func (s *Signer) Verifier() (verifier *Verifier) + type Verifier struct + Alg *Algorithm + PublicKey crypto.PublicKey + func (v *Verifier) Verify(digest []byte, signature []byte) (err error)