MCPcopy Index your code
hub / github.com/coder/envbox / certPool

Function certPool

xhttp/client.go:41–74  ·  view source on GitHub ↗
(log slog.Logger, certsPath string)

Source from the content-addressed store, hash-verified

39}
40
41func certPool(log slog.Logger, certsPath string) (*x509.CertPool, error) {
42 pool, err := x509.SystemCertPool()
43 if err != nil {
44 return nil, xerrors.Errorf("system cert pool: %w", err)
45 }
46
47 fi, err := os.Stat(certsPath)
48 if err != nil {
49 return nil, xerrors.Errorf("stat %v: %w", certsPath, err)
50 }
51
52 if !fi.IsDir() {
53 err = addCert(log, pool, certsPath)
54 if err != nil {
55 return nil, xerrors.Errorf("add cert: %w", err)
56 }
57 return pool, nil
58 }
59
60 entries, err := os.ReadDir(certsPath)
61 if err != nil {
62 return nil, xerrors.Errorf("read dir %v: %w", certsPath, err)
63 }
64
65 for _, entry := range entries {
66 path := filepath.Join(certsPath, entry.Name())
67 err = addCert(log, pool, path)
68 if err != nil {
69 return nil, xerrors.Errorf("add cert: %w", err)
70 }
71 }
72
73 return pool, nil
74}
75
76func addCert(log slog.Logger, pool *x509.CertPool, path string) error {
77 b, err := os.ReadFile(path)

Callers 1

ClientFunction · 0.85

Calls 2

addCertFunction · 0.85
ErrorfMethod · 0.65

Tested by

no test coverage detected