diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2020-11-29 18:53:17 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-06-05 16:13:08 +0200 |
commit | d1140826390ed520d374484499c44b0b990940f5 (patch) | |
tree | 4b2584ee28abe3616dce14956d526e43eef34349 /tests/jwks-get.scm | |
parent | 4aa4a9208ae6abf3affa3318349be196623fbddf (diff) |
Get a JWKS on the web
Diffstat (limited to 'tests/jwks-get.scm')
-rw-r--r-- | tests/jwks-get.scm | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/jwks-get.scm b/tests/jwks-get.scm new file mode 100644 index 0000000..4584c8d --- /dev/null +++ b/tests/jwks-get.scm @@ -0,0 +1,57 @@ +(use-modules (webid-oidc jwk) + (webid-oidc testing) + (webid-oidc cache) + (web uri) + (srfi srfi-19) + (web response)) + +(with-test-environment + "jwks-get" + (lambda () + (define* (respond uri #:key (headers '())) + (unless (null? headers) + (exit 1)) + (when (string? uri) + (set! uri (string->uri uri))) + (if (string=? (uri->string uri) "https://example.com/keys") + (values + (build-response #:headers `((expires . ,(time-utc->date (make-time time-utc 0 10))) + (content-type application/json (charset . "utf-8")))) + "{ + \"keys\": [ + { + \"e\": \"AQAB\", + \"use\": \"sig\", + \"kid\": \"dedc012d07f52aedfd5f97784e1bcbe23c19724d\", + \"n\": \"sV158-MQ-5-sP2iTJibiMap1ug8tNY97laOud3Se_3jd4INq36NwhLpgU3FC5SCfJOs9wehTLzv_hBuo-sW0JNjAEtMEE-SDtx5486gjymDR-5Iwv7bgt25tD0cDgiboZLt1RLn-nP-V3zgYHZa_s9zLjpNyArsWWcSh6tWe2R8yW6BqS8l4_9z8jkKeyAwWmdpkY8BtKS0zZ9yljiCxKvs8CKjfHmrayg45sZ8V1-aRcjtR2ECxATHjE8L96_oNddZ-rj2axf2vTmnkx3OvIMgx0tZ0ycMG6Wy8wxxaR5ir2LV3Gkyfh72U7tI8Q1sokPmH6G62JcduNY66jEQlvQ\", + \"alg\": \"RS256\", + \"kty\": \"RSA\" + }, + { + \"alg\": \"RS256\", + \"kid\": \"2e3025f26b595f96eac907cc2b9471422bcaeb93\", + \"e\": \"AQAB\", + \"use\": \"sig\", + \"kty\": \"RSA\", + \"n\": \"syWuIlYmoWSl5rBQGOtYGwO5OCCZnhoWBCyl-x5gby5ofc4HNhBoVVMUggk-f_MH-pyMI5yRYsS_aPQ2bmSox2s4i9cPhxqtSAYMhTPwSwQ2BROC7xxi_N0ovp5Ivut5q8TwAn5kQZa_jR9d7JO20BUB7UqbMkBsqg2J8QTtMJ9YtA5BmUn4Y6vhIjTFtvrA6iM4i1cKoUD5Rirt5CYpcKwsLxBZbVk4E4rqgv7G0UlWt6NAs-z7XDkchlNBVpMUuiUBzxHl4LChc7dsWXRaO5vhu3j_2WnxuWCQZPlGoB51jD_ynZ027hhIcoa_tXg28_qb5Al78ZttiRCQDKueAQ\" + } + ] +} +") + (exit 2))) + (define current-time 0) + (define cache-http-get + (with-cache + #:current-time + (lambda () + (make-time time-utc 0 current-time)) + #:http-get respond)) + (define jwks (get-jwks "https://example.com/keys" + #:http-get cache-http-get)) + (define keys (jwks-keys jwks)) + (unless (eq? (length keys) 2) + (exit 3)) + (map (lambda (k) + (unless (jwk-public? k) + (exit 4))) + keys))) |