diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2020-11-30 21:39:32 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-05-11 00:30:44 +0200 |
commit | 2984035f4ffb2a5b0c34e2b177d2406a8876e356 (patch) | |
tree | ad7ccdaa39450c1326bfe904bf51259f4191fff9 /tests/dpop-proof-wrong-key.scm | |
parent | d15b79983460f6eaaa44dd48af47f586bd0d8c36 (diff) |
Implement the DPoP proof
Diffstat (limited to 'tests/dpop-proof-wrong-key.scm')
-rw-r--r-- | tests/dpop-proof-wrong-key.scm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/dpop-proof-wrong-key.scm b/tests/dpop-proof-wrong-key.scm new file mode 100644 index 0000000..9ea98ee --- /dev/null +++ b/tests/dpop-proof-wrong-key.scm @@ -0,0 +1,37 @@ +(use-modules (webid-oidc dpop-proof) + (webid-oidc jti) + (webid-oidc jwk) + (webid-oidc testing) + (webid-oidc errors) + (web uri) + (srfi srfi-19) + (web response)) + +(with-test-environment + "dpop-proof-wrong-key" + (lambda () + (define jwk (generate-key #:n-size 2048)) + (define cnf (jkt (generate-key #:n-size 2048))) + (define blacklist (make-jti-list)) + (define proof + (issue-dpop-proof + jwk + #:alg 'RS256 + #:htm 'GET + #:htu (string->uri "https://example.com/res#frag") + #:iat (time-utc->date (make-time time-utc 0 0)))) + (with-exception-handler + (lambda (error) + (unless ((record-predicate &dpop-unconfirmed-key) + ((record-accessor &cannot-decode-dpop-proof 'cause) error)) + (raise-exception error))) + (lambda () + (dpop-proof-decode (time-utc->date (make-time time-utc 0 10)) + blacklist + 'GET + (string->uri "https://example.com/res?query") + proof + cnf) + (exit 2)) + #:unwind? #t + #:unwind-for-type &cannot-decode-dpop-proof))) |