@@ -31,10 +31,13 @@ const defaultCRLRefreshDuration = 1 * time.Hour
31
31
// CRLProvider is the interface to be implemented to enable custom CRL provider
32
32
// behavior.
33
33
//
34
- // The interface defines how the data is read, but doesn't prescribe a way
35
- // CRL are loaded and stored. Such implementations can be used in
36
- // RevocationConfig of advancedtls.ClientOptions and/or
37
- // advancedtls.ServerOptions .
34
+ // The interface defines how gRPC gets CRLs from the provider during handshakes,
35
+ // but doesn't prescribe a specific way to load and store CRLs. Such
36
+ // implementations can be used in RevocationConfig of advancedtls.ClientOptions
37
+ // and/or advancedtls.ServerOptions.
38
+ // Please note that checking CRLs is being directly on the path of connection
39
+ // establishment, so implementations of the CRL function need to be fast, and
40
+ // slow things such as file IO should be done asynchronously.
38
41
// TODO(erm-g): Add link to related gRFC once it's ready.
39
42
// Please refer to https://github.com/grpc/proposal/ for more details.
40
43
type CRLProvider interface {
@@ -47,9 +50,6 @@ type CRLProvider interface {
47
50
// StaticCRLProvider implements CRLProvider interface by accepting raw content
48
51
// of CRL files at creation time and storing parsed CRL structs in-memory.
49
52
type StaticCRLProvider struct {
50
- // TODO CRL is sort of our internal representation - provide an API for
51
- // people to read into it, or provide a simpler type in the API then
52
- // internally convert to this form
53
53
crls map [string ]* CRL
54
54
}
55
55
0 commit comments