summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/client/client.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-16 23:03:12 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-09-21 22:25:03 +0200
commitfa486f2e136a898d1b1548ec90757a78c65a0b70 (patch)
tree7601f939c6859547cc2df38e587c5d9473bae76d /src/scm/webid-oidc/client/client.scm
parent86bd90866fdc2ab5234c6e09e39bfa972f7fa395 (diff)
JWK: document it, and use GOOPS
Diffstat (limited to 'src/scm/webid-oidc/client/client.scm')
-rw-r--r--src/scm/webid-oidc/client/client.scm8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/scm/webid-oidc/client/client.scm b/src/scm/webid-oidc/client/client.scm
index 1bf1c7c..5da701b 100644
--- a/src/scm/webid-oidc/client/client.scm
+++ b/src/scm/webid-oidc/client/client.scm
@@ -58,6 +58,8 @@
)
#:declarative? #t)
+(define <jwk:key-pair> jwk:<key-pair>)
+
(define-class <client> ()
(client-id #:init-keyword #:client-id #:getter client-id)
(key-pair #:init-keyword #:key-pair #:getter client-key-pair)
@@ -65,10 +67,10 @@
(define-method (->sexp (client <client>))
`(begin
- (use-modules (oop goops) (webid-oidc client))
+ (use-modules (oop goops) (webid-oidc client) (webid-oidc jwk))
(make <client>
#:client-id ,(uri->string (client-id client))
- #:key-pair (quote ,(client-key-pair client))
+ #:key-pair (jwk->key (quote ,(key->jwk (client-key-pair client))))
#:redirect-uri ,(uri->string (client-redirect-uri client)))))
(define-method (write (client <client>) port)
@@ -92,7 +94,7 @@
(match `(,client-id ,key-pair ,redirect-uri)
(((or (? string? (= string->uri (? uri? client-id)))
(? uri? client-id))
- (? jwk:jwk? client-key)
+ (? (cute is-a? <> <jwk:key-pair>) client-key)
(or (? string? (= string->uri (? uri? redirect-uri)))
(? uri? redirect-uri)))
(begin