Skip to content

Commit 495a8d7

Browse files
committed
Add test for constructing garbage publickey
The null check issue would result in totally invalid pubkeys not bailing out the whole thing. This adds a test which failed prior to the null struct fix.
1 parent e840027 commit 495a8d7

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

t/load-verify.t

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,3 +569,42 @@ false
569569
Verification failed
570570
--- no_error_log
571571
[error]
572+
573+
574+
=== TEST 20: invalid public key is not constructed
575+
--- http_config eval: $::HttpConfig
576+
--- config
577+
location /t {
578+
content_by_lua '
579+
local jwt = require "resty.jwt"
580+
581+
local public_key = [[
582+
-----BEGIN PUBLIC KEY-----
583+
R0FSQkFHRQo=
584+
-----END PUBLIC KEY-----
585+
]]
586+
jwt:set_alg_whitelist({ RS256 = 1 })
587+
local jwt_token = "eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiJ9."
588+
.. "eyJpc3MiOiAidGVzdCIsICJpYXQiOiAxNDYxOTE0MDE3fQ."
589+
.. "dng6Vc-p_ISwiWc61ifWahbFYKBNWfaIr-W3bTPpgL-awG8"
590+
.. "UlaCONkQk2PHJw_xndbpenQYl_-hipCKynokeFBTXVcSL6H"
591+
.. "7XL4D9laQVDVFnI63hcXOMQxgICsQPVdcfVSBl2jHyV8kuw"
592+
.. "XpUHbXQTxMawlE9SkI1-7UukxL9OyFIkT1D1uW7P96irVDs"
593+
.. "GkEdTLVUPJerH-jlW4rRbW9twSHsgzHgkaqnQ41giW_e2Zz"
594+
.. "r0U2euFH-AxlyvWBJd8Y7rQ_aD40USKsJilZ5qSykGZ7KHd"
595+
.. "PzuwTXioCwB8bGVE2YoL-DKYj7-tOwoNsMK7UJzyjqzHqwuqvZWtbhmeRlww"
596+
597+
local jwt_obj = jwt:verify(public_key, jwt_token)
598+
ngx.say(jwt_obj["verified"])
599+
ngx.say(jwt_obj["reason"])
600+
ngx.say(jwt_obj["payload"]["iss"])
601+
';
602+
}
603+
--- request
604+
GET /t
605+
--- response_body
606+
false
607+
Decode secret is not a valid cert/public key: ASN1 lib: nested asn1 error: bad object header: too long
608+
test
609+
--- no_error_log
610+
[error]

0 commit comments

Comments
 (0)