From 63922f362fb2d2902e16c61325cdf3adfcf40c57 Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Mon, 7 Oct 2024 16:07:07 +0100 Subject: [PATCH] fixup! Add support for more algorithms. --- jwk.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/jwk.go b/jwk.go index 9ef2854..a434e68 100644 --- a/jwk.go +++ b/jwk.go @@ -117,14 +117,18 @@ func verifyIssuer(tokenIssuer, expectedIssuer string) error { } func jwkToPEM(jwk *JWK) ([]byte, error) { - switch jwk.Kty { - case "RSA": - return rsaJWKToPEM(jwk) - case "EC": - return ecJWKToPEM(jwk) - default: + converter, ok := jwkConverters[jwk.Kty] + if !ok { return nil, fmt.Errorf("unsupported key type: %s", jwk.Kty) } + return converter(jwk) +} + +type jwkToPEMConverter func(*JWK) ([]byte, error) + +var jwkConverters = map[string]jwkToPEMConverter{ + "RSA": rsaJWKToPEM, + "EC": ecJWKToPEM, } func rsaJWKToPEM(jwk *JWK) ([]byte, error) {