;; disfluid, implementation of the Solid specification ;; Copyright (C) 2021 Vivien Kraus ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU Affero General Public License as ;; published by the Free Software Foundation, either version 3 of the ;; License, or (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU Affero General Public License for more details. ;; You should have received a copy of the GNU Affero General Public License ;; along with this program. If not, see . (define-module (webid-oidc client reverse-stubs) #:use-module (webid-oidc client) #:use-module (webid-oidc client accounts) #:use-module (webid-oidc client application) #:use-module (webid-oidc jwk) #:use-module ((webid-oidc stubs) #:prefix stubs:) #:duplicates (merge-generics) #:declarative? #t #:export ( make-client get-client-id get-client-jwk get-client-redirect-uri )) (define (make-client client-id jwk redirect-uri) (make #:client-id client-id #:key-pair (if jwk (jwk->key (stubs:json-string->scm jwk)) ;; Generate a new one: #t) #:redirect-uri redirect-uri)) (define (get-client-id client) (uri->string (client-id client))) (define (get-key-pair client) (stubs:scm->json-string (key->jwk (key-pair client)))) (define (get-redirect-uri client) (uri->string (redirect-uri client)))