summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/identity-provider.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/identity-provider.scm
parent86bd90866fdc2ab5234c6e09e39bfa972f7fa395 (diff)
JWK: document it, and use GOOPS
Diffstat (limited to 'src/scm/webid-oidc/identity-provider.scm')
-rw-r--r--src/scm/webid-oidc/identity-provider.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/scm/webid-oidc/identity-provider.scm b/src/scm/webid-oidc/identity-provider.scm
index 7f1fb48..cf06b62 100644
--- a/src/scm/webid-oidc/identity-provider.scm
+++ b/src/scm/webid-oidc/identity-provider.scm
@@ -41,6 +41,7 @@
#:use-module (sxml match)
#:use-module (srfi srfi-19)
#:use-module (rnrs bytevectors)
+ #:use-module (oop goops)
#:declarative? #t
#:export
(
@@ -66,7 +67,10 @@
(let ((key
(catch #t
(lambda ()
- (call-with-input-file key-file stubs:json->scm))
+ (call-with-input-file key-file
+ (lambda (port)
+ (jwk->key
+ (stubs:json->scm port)))))
(lambda error
(format (current-error-port)
(G_ "Warning: generating a new key pair."))
@@ -74,7 +78,7 @@
(stubs:call-with-output-file*
key-file
(lambda (port)
- (stubs:scm->json k port #:pretty #t)))
+ (stubs:scm->json (key->jwk k) port #:pretty #t)))
k)))))
(let ((alg
(if (eq? (kty key) 'RSA)
@@ -109,7 +113,7 @@
(exp-sec (+ current-sec 3600))
(exp (time-utc->date
(make-time time-utc 0 exp-sec))))
- (serve-jwks exp (make-jwks (list key)))))
+ (serve (make <jwks> #:keys (list key)) exp)))
((same-uri? uri authorization-endpoint-uri #:skip-query #t)
(authorization-endpoint request request-body))
((same-uri? uri token-endpoint-uri)