diff options
Diffstat (limited to 'src/scm/webid-oidc/client')
-rw-r--r-- | src/scm/webid-oidc/client/accounts.scm | 14 | ||||
-rw-r--r-- | src/scm/webid-oidc/client/client.scm | 8 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/scm/webid-oidc/client/accounts.scm b/src/scm/webid-oidc/client/accounts.scm index 626cc6a..54c6e07 100644 --- a/src/scm/webid-oidc/client/accounts.scm +++ b/src/scm/webid-oidc/client/accounts.scm @@ -26,6 +26,7 @@ #:use-module (srfi srfi-9) #:use-module (srfi srfi-19) #:use-module (webid-oidc errors) + #:use-module (webid-oidc web-i18n) #:use-module ((webid-oidc parameters) #:prefix p:) #:use-module ((webid-oidc stubs) #:prefix stubs:) #:use-module ((webid-oidc oidc-id-token) #:prefix id:) @@ -85,12 +86,7 @@ ) #:declarative? #t) -(define (G_ text) - (let ((out (gettext text))) - (if (string=? out text) - ;; No translation, disambiguate - (car (reverse (string-split text #\|))) - out))) +(define <jwk:key-pair> jwk:<key-pair>) ;; This exception is continuable! Continue with the authorization ;; code. @@ -159,7 +155,7 @@ (define-method (->sexp (account <account>)) `(begin - (use-modules (oop goops) (webid-oidc client accounts)) + (use-modules (oop goops) (webid-oidc client accounts) (webid-oidc jwk)) (make <account> #:subject ,(uri->string (subject account)) #:issuer ,(uri->string (issuer account)) @@ -175,7 +171,7 @@ (if refresh-token `(#:refresh-token ,refresh-token) '())) - #:key-pair (quote ,(key-pair account))))) + #:key-pair (jwk->key (quote ,(key->jwk (key-pair account))))))) (define-method (write (account <account>) port) (let ((code (->sexp account))) @@ -496,7 +492,7 @@ (slot-set! ret 'refresh-token refresh-token) ret)) -(define-method (set-key-pair (a <account>) key-pair) +(define-method (set-key-pair (a <account>) (key-pair <jwk:key-pair>)) (let ((ret (shallow-clone a))) (slot-set! ret 'key-pair key-pair) ret)) 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 |