carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package boxid
2
3import (
4 "crypto/x509"
5 "embed"
6 "encoding/pem"
7 "fmt"
8 "strings"
9)
10
11//go:embed certs/*.pem
12var certFS embed.FS
13
14// EmbeddedCerts returns AWS's instance-identity signing certificates by
15// region, from certs/<aws-region>.pem. A region with no file has no
16// certificate, so its boxes never verify: that is the safe default.
17func EmbeddedCerts() (map[string]*x509.Certificate, error) {
18 entries, err := certFS.ReadDir("certs")
19 if err != nil {
20 return nil, err
21 }
22 out := map[string]*x509.Certificate{}
23 for _, e := range entries {
24 region, ok := strings.CutSuffix(e.Name(), ".pem")
25 if !ok {
26 continue
27 }
28 raw, err := certFS.ReadFile("certs/" + e.Name())
29 if err != nil {
30 return nil, err
31 }
32 block, _ := pem.Decode(raw)
33 if block == nil {
34 return nil, fmt.Errorf("boxid: certs/%s is not PEM", e.Name())
35 }
36 cert, err := x509.ParseCertificate(block.Bytes)
37 if err != nil {
38 return nil, fmt.Errorf("boxid: certs/%s: %w", e.Name(), err)
39 }
40 out[region] = cert
41 }
42 return out, nil
43}
44