| // Package jwtbundle provides JWT bundle related functionality. | |
| // | |
| // A bundle represents a collection of JWT authorities, i.e., those that | |
| // are used to authenticate SPIFFE JWT-SVIDs. | |
| // | |
| // You can create a new bundle for a specific trust domain: | |
| // | |
| // td := spiffeid.RequireTrustDomainFromString("example.org") | |
| // bundle := jwtbundle.New(td) | |
| // | |
| // Or you can load it from disk: | |
| // | |
| // td := spiffeid.RequireTrustDomainFromString("example.org") | |
| // bundle := jwtbundle.Load(td, "bundle.jwks") | |
| // | |
| // The bundle can be initialized with JWT authorities: | |
| // | |
| // td := spiffeid.RequireTrustDomainFromString("example.org") | |
| // var jwtAuthorities map[string]crypto.PublicKey = ... | |
| // bundle := jwtbundle.FromJWTAuthorities(td, jwtAuthorities) | |
| // | |
| // In addition, you can add JWT authorities to the bundle: | |
| // | |
| // var keyID string = ... | |
| // var publicKey crypto.PublicKey = ... | |
| // bundle.AddJWTAuthority(keyID, publicKey) | |
| // | |
| // Bundles can be organized into a set, keyed by trust domain: | |
| // | |
| // set := jwtbundle.NewSet() | |
| // set.Add(bundle) | |
| // | |
| // A Source is source of JWT bundles for a trust domain. Both the Bundle | |
| // and Set types implement Source: | |
| // | |
| // // Initialize the source from a bundle or set | |
| // var source jwtbundle.Source = bundle | |
| // // ... or ... | |
| // var source jwtbundle.Source = set | |
| // | |
| // // Use the source to query for bundles by trust domain | |
| // bundle, err := source.GetJWTBundleForTrustDomain(td) | |
| package jwtbundle |