Documentation
¶
Overview ¶
Package witbundle provides support for WIT bundles, which are JWK Sets used to validate WIT-SVID signatures.
Index ¶
- type Bundle
- func FromWITAuthorities(trustDomain spiffeid.TrustDomain, witAuthorities map[string]crypto.PublicKey) *Bundle
- func Load(trustDomain spiffeid.TrustDomain, path string) (*Bundle, error)
- func New(trustDomain spiffeid.TrustDomain) *Bundle
- func Parse(trustDomain spiffeid.TrustDomain, bundleBytes []byte) (*Bundle, error)
- func Read(trustDomain spiffeid.TrustDomain, r io.Reader) (*Bundle, error)
- func (b *Bundle) AddWITAuthority(keyID string, witAuthority crypto.PublicKey) error
- func (b *Bundle) Clone() *Bundle
- func (b *Bundle) Empty() bool
- func (b *Bundle) Equal(other *Bundle) bool
- func (b *Bundle) FindWITAuthority(keyID string) (crypto.PublicKey, bool)
- func (b *Bundle) GetWITBundleForTrustDomain(trustDomain spiffeid.TrustDomain) (*Bundle, error)
- func (b *Bundle) HasWITAuthority(keyID string) bool
- func (b *Bundle) Marshal() ([]byte, error)
- func (b *Bundle) RemoveWITAuthority(keyID string)
- func (b *Bundle) SetWITAuthorities(witAuthorities map[string]crypto.PublicKey)
- func (b *Bundle) TrustDomain() spiffeid.TrustDomain
- func (b *Bundle) WITAuthorities() map[string]crypto.PublicKey
- type Set
- func (s *Set) Add(bundle *Bundle)
- func (s *Set) Bundles() []*Bundle
- func (s *Set) Get(trustDomain spiffeid.TrustDomain) (*Bundle, bool)
- func (s *Set) GetWITBundleForTrustDomain(trustDomain spiffeid.TrustDomain) (*Bundle, error)
- func (s *Set) Has(trustDomain spiffeid.TrustDomain) bool
- func (s *Set) Len() int
- func (s *Set) Remove(trustDomain spiffeid.TrustDomain)
- type Source
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bundle ¶
type Bundle struct {
// contains filtered or unexported fields
}
Bundle is a collection of trusted WIT authorities for a trust domain.
func FromWITAuthorities ¶
func FromWITAuthorities(trustDomain spiffeid.TrustDomain, witAuthorities map[string]crypto.PublicKey) *Bundle
FromWITAuthorities creates a new bundle from a map of WIT authorities keyed by key ID.
func Load ¶
func Load(trustDomain spiffeid.TrustDomain, path string) (*Bundle, error)
Load loads a bundle from a file on disk. The file must contain a standard RFC 7517 JWKS document.
func New ¶
func New(trustDomain spiffeid.TrustDomain) *Bundle
New creates a new empty bundle for the given trust domain.
func Parse ¶
func Parse(trustDomain spiffeid.TrustDomain, bundleBytes []byte) (*Bundle, error)
Parse parses a bundle from a JWK Set JSON document.
func Read ¶
Read decodes a bundle from a reader. The contents must contain a standard RFC 7517 JWKS document.
func (*Bundle) AddWITAuthority ¶
AddWITAuthority adds a WIT authority to the bundle. If a WIT authority already exists under the given key ID, it is replaced. A key ID must be specified.
func (*Bundle) FindWITAuthority ¶
FindWITAuthority finds the WIT authority with the given key ID from the bundle. If the authority is found, it is returned and the boolean is true. Otherwise, the returned value is nil and the boolean is false.
func (*Bundle) GetWITBundleForTrustDomain ¶
func (b *Bundle) GetWITBundleForTrustDomain(trustDomain spiffeid.TrustDomain) (*Bundle, error)
GetWITBundleForTrustDomain returns the WIT bundle for the given trust domain. It implements the Source interface. An error will be returned if the trust domain does not match that of the bundle.
func (*Bundle) HasWITAuthority ¶
HasWITAuthority returns true if the bundle has a WIT authority with the given key ID.
func (*Bundle) RemoveWITAuthority ¶
RemoveWITAuthority removes the WIT authority identified by the key ID from the bundle.
func (*Bundle) SetWITAuthorities ¶
SetWITAuthorities sets the WIT authorities in the bundle.
func (*Bundle) TrustDomain ¶
func (b *Bundle) TrustDomain() spiffeid.TrustDomain
TrustDomain returns the trust domain that the bundle belongs to.
type Set ¶
type Set struct {
// contains filtered or unexported fields
}
Set is a set of WIT bundles, keyed by trust domain.
func (*Set) Add ¶
Add adds a new bundle into the set. If a bundle already exists for the trust domain, the existing bundle is replaced.
func (*Set) Get ¶
func (s *Set) Get(trustDomain spiffeid.TrustDomain) (*Bundle, bool)
Get returns a bundle for the given trust domain. If the bundle is in the set it is returned and the boolean is true. Otherwise, the returned value is nil and the boolean is false.
func (*Set) GetWITBundleForTrustDomain ¶
func (s *Set) GetWITBundleForTrustDomain(trustDomain spiffeid.TrustDomain) (*Bundle, error)
GetWITBundleForTrustDomain returns the WIT bundle for the given trust domain. It implements the Source interface.
func (*Set) Has ¶
func (s *Set) Has(trustDomain spiffeid.TrustDomain) bool
Has returns true if there is a bundle for the given trust domain.
func (*Set) Remove ¶
func (s *Set) Remove(trustDomain spiffeid.TrustDomain)
Remove removes the bundle for the given trust domain.