From 379afcdd00e9ba39ae091f2fc8b44faf6a2d9307 Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Mon, 14 Jun 2021 21:23:05 +0800 Subject: [PATCH] :bug: Fix a bug of JwkUtil --- .../java/com/fujieid/jap/ids/util/JwkUtil.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/jap-ids/src/main/java/com/fujieid/jap/ids/util/JwkUtil.java b/jap-ids/src/main/java/com/fujieid/jap/ids/util/JwkUtil.java index 6a99ed4..8dcbe19 100644 --- a/jap-ids/src/main/java/com/fujieid/jap/ids/util/JwkUtil.java +++ b/jap-ids/src/main/java/com/fujieid/jap/ids/util/JwkUtil.java @@ -21,6 +21,7 @@ import org.jose4j.jwk.*; import org.jose4j.keys.EllipticCurves; import org.jose4j.lang.JoseException; +import java.security.spec.ECParameterSpec; import java.util.Arrays; /** @@ -46,9 +47,9 @@ public class JwkUtil { RsaJsonWebKey jwk = null; try { jwk = RsaJwkGenerator.generateJwk(2048); + jwk.setUse(Use.SIGNATURE); jwk.setKeyId(keyId); jwk.setAlgorithm(signingAlg.getAlg()); - jwk.setUse("sig"); } catch (JoseException e) { e.printStackTrace(); throw new InvalidJwksException("Unable to create RSA Json Web Key."); @@ -92,12 +93,21 @@ public class JwkUtil { throw new InvalidJwksException("Unable to create ES Json Web Key. Unsupported jwk algorithm, only supports ES256, ES384, ES512"); } EllipticCurveJsonWebKey jwk = null; + + ECParameterSpec spec = null; + if (signingAlg == TokenSigningAlg.ES256) { + spec = EllipticCurves.P256; + } else if (signingAlg == TokenSigningAlg.ES384) { + spec = EllipticCurves.P384; + } else { + spec = EllipticCurves.P521; + } + try { - jwk = EcJwkGenerator.generateJwk(EllipticCurves.P256); + jwk = EcJwkGenerator.generateJwk(spec); jwk.setUse(Use.SIGNATURE); jwk.setKeyId(keyId); jwk.setAlgorithm(signingAlg.getAlg()); - jwk.setUse("sig"); } catch (JoseException e) { e.printStackTrace(); throw new InvalidJwksException("Unable to create ES Json Web Key."); -- GitLab