diff options
Diffstat (limited to 'src/scm/webid-oidc/identity-provider.scm')
-rw-r--r-- | src/scm/webid-oidc/identity-provider.scm | 10 |
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) |