| // Package spiffebundle provides SPIFFE bundle related functionality. | |
| // | |
| // A bundle represents a SPIFFE bundle, a collection authorities for | |
| // authenticating SVIDs. | |
| // | |
| // You can create a new bundle for a specific trust domain: | |
| // | |
| // td := spiffeid.RequireTrustDomainFromString("example.org") | |
| // bundle := spiffebundle.New(td) | |
| // | |
| // Or you can load it from disk: | |
| // | |
| // td := spiffeid.RequireTrustDomainFromString("example.org") | |
| // bundle := spiffebundle.Load(td, "bundle.json") | |
| // | |
| // The bundle can be initialized with X.509 or JWT authorities: | |
| // | |
| // td := spiffeid.RequireTrustDomainFromString("example.org") | |
| // | |
| // var x509Authorities []*x509.Certificate = ... | |
| // bundle := spiffebundle.FromX509Authorities(td, x509Authorities) | |
| // // ... or ... | |
| // var jwtAuthorities map[string]crypto.PublicKey = ... | |
| // bundle := spiffebundle.FromJWTAuthorities(td, jwtAuthorities) | |
| // | |
| // In addition, you can add authorities to the bundle: | |
| // | |
| // var x509CA *x509.Certificate = ... | |
| // bundle.AddX509Authority(x509CA) | |
| // var keyID string = ... | |
| // var publicKey crypto.PublicKey = ... | |
| // bundle.AddJWTAuthority(keyID, publicKey) | |
| // | |
| // Bundles can be organized into a set, keyed by trust domain: | |
| // | |
| // set := spiffebundle.NewSet() | |
| // set.Add(bundle) | |
| // | |
| // A Source is source of bundles for a trust domain. Both the | |
| // Bundle and Set types implement Source: | |
| // | |
| // // Initialize the source from a bundle or set | |
| // var source spiffebundle.Source = bundle | |
| // // ... or ... | |
| // var source spiffebundle.Source = set | |
| // | |
| // // Use the source to query for X.509 bundles by trust domain | |
| // bundle, err := source.GetBundleForTrustDomain(td) | |
| // | |
| // Additionally the Bundle and Set types also implement the x509bundle.Source and jwtbundle.Source interfaces: | |
| // | |
| // // As an x509bundle.Source... | |
| // var source x509bundle.Source = bundle // or set | |
| // x509Bundle, err := source.GetX509BundleForTrustDomain(td) | |
| // | |
| // // As a jwtbundle.Source... | |
| // var source jwtbundle.Source = bundle // or set | |
| // jwtBundle, err := source.GetJWTBundleForTrustDomain(td) | |
| package spiffebundle |