Skip to content

Commit 9e50e99

Browse files
authored
fix JWK selection for Encrypted Authorization Reqponse (#320)
Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
1 parent 7d61bc5 commit 9e50e99

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/WalletFramework.Oid4Vc/Oid4Vp/AuthResponse/Encryption/Implementations/AuthorizationResponseEncryptionService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ public async Task<EncryptedAuthorizationResponse> Encrypt(
2727
httpClient.DefaultRequestHeaders.Clear();
2828
var httpResponseMessage = await httpClient.GetAsync(request.ClientMetadata!.JwksUri);
2929
var jwkSetJsonStr = await httpResponseMessage.Content.ReadAsStringAsync();
30-
verifierPubKey = JwkSet.FromJsonStr(jwkSetJsonStr).UnwrapOrThrow().GetFirst();
30+
verifierPubKey = JwkSet.FromJsonStr(jwkSetJsonStr).UnwrapOrThrow().GetEcP256Jwk();
3131
break;
3232
case (false, true):
33-
verifierPubKey = request.ClientMetadata!.JwkSet.UnwrapOrThrow().GetFirst();
33+
verifierPubKey = request.ClientMetadata!.JwkSet.UnwrapOrThrow().GetEcP256Jwk();
3434
break;
3535
default:
3636
throw new InvalidOperationException("Neither jwks or jwk_uri found");

src/WalletFramework.Oid4Vc/Oid4Vp/Jwk/JwkSet.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,7 @@ public static Validation<JwkSet> FromJsonStr(string json)
3838

3939
public static class JwkSetFun
4040
{
41-
public static JsonWebKey GetFirst(this JwkSet jwkSet) => jwkSet.AsEnum().First();
41+
public static JsonWebKey GetEcP256Jwk(this JwkSet jwkSet) => jwkSet.AsEnum().Single(setItem =>
42+
setItem.Kty == "EC"
43+
&& setItem.Crv == "P-256");
4244
}

0 commit comments

Comments
 (0)