blob: 394878e1b2ac13f81a69ff73462d4c1a30fb2c09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
// 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
|