From b55b40558210e9993775c9c5f1988c08d0e050e8 Mon Sep 17 00:00:00 2001 From: Eric Tendian Date: Wed, 25 Mar 2020 14:20:30 -0500 Subject: [PATCH 1/2] Switching to upstream version of JWT package with JWK classes added --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 804cdc3b..9efabab0 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "imsglobal/lti-1p3-tool", "type": "library", "require": { - "fproject/php-jwt": "^4.0", + "firebase/php-jwt": "^5.2", "phpseclib/phpseclib": "^2.0" }, "autoload": { From 1ade7d5aa53a8d17540c6e5be1c67019aecd2c8c Mon Sep 17 00:00:00 2001 From: Eric Tendian Date: Wed, 25 Mar 2020 14:37:47 -0500 Subject: [PATCH 2/2] Switch from JWK::parseKey to JWK::parseKeySet now that the former is private --- src/lti/LTI_Message_Launch.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lti/LTI_Message_Launch.php b/src/lti/LTI_Message_Launch.php index 5dd9b6f1..0ce94331 100644 --- a/src/lti/LTI_Message_Launch.php +++ b/src/lti/LTI_Message_Launch.php @@ -191,7 +191,11 @@ private function get_public_key() { foreach ($public_key_set['keys'] as $key) { if ($key['kid'] == $this->jwt['header']['kid']) { try { - return openssl_pkey_get_details(JWK::parseKey($key)); + return openssl_pkey_get_details( + JWK::parseKeySet([ + 'keys' => [$key] + ])[$key['kid']] + ); } catch(\Exception $e) { return false; }