(jwkspath string)
| 122 | } |
| 123 | |
| 124 | func loadPublicKeys(jwkspath string) (map[string]*rsa.PublicKey, error) { |
| 125 | var jwks jwks |
| 126 | if err := fs.UnmarshalJSONFile(jwkspath, &jwks); err != nil { |
| 127 | return nil, err |
| 128 | } |
| 129 | keys := make(map[string]*rsa.PublicKey) |
| 130 | for _, jwk := range jwks.Keys { |
| 131 | if len(jwk.X5c) == 0 { |
| 132 | continue |
| 133 | } |
| 134 | cert := "-----BEGIN CERTIFICATE-----\n" + jwk.X5c[0] + "\n-----END CERTIFICATE-----" |
| 135 | public, err := jwt.ParseRSAPublicKeyFromPEM([]byte(cert)) |
| 136 | if err != nil { |
| 137 | return nil, err |
| 138 | } |
| 139 | keys[jwk.Kid] = public |
| 140 | } |
| 141 | return keys, nil |
| 142 | } |
no test coverage detected