summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-07-01 16:41:20 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-07-02 14:49:13 +0200
commitd05a8836f29d41ec4a423d4f44dcbb93a8bdd759 (patch)
treeb41b0f76b9ee4b9a9e7a415fcde3b967b89db7a2 /src
parente0e3bbbe6d78fc7a7f54325471af5d0e5c498471 (diff)
Switch to AGPL
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am16
-rw-r--r--src/base64/Makefile.am16
-rw-r--r--src/base64/libwebidoidc-base64.c18
-rw-r--r--src/hash/Makefile.am16
-rw-r--r--src/hash/libwebidoidc-hash.c18
-rw-r--r--src/inst/Makefile.am16
-rw-r--r--src/inst/webid-oidc/Makefile.am16
-rw-r--r--src/jwk/Makefile.am16
-rw-r--r--src/jwk/generate-key.c18
-rw-r--r--src/jwk/libwebidoidc-jwk.c18
-rw-r--r--src/jws/Makefile.am16
-rw-r--r--src/jws/libwebidoidc-jws.c18
-rw-r--r--src/libwebidoidc.c18
-rw-r--r--src/pre-inst/Makefile.am16
-rw-r--r--src/pre-inst/webid-oidc/Makefile.am16
-rw-r--r--src/random/Makefile.am16
-rw-r--r--src/random/generate-random.c18
-rw-r--r--src/random/libwebidoidc-random.c18
-rw-r--r--src/random/random.c18
-rw-r--r--src/random/webid-oidc/random.h18
-rw-r--r--src/scm/Makefile.am17
-rw-r--r--src/scm/webid-oidc.scm3
-rw-r--r--src/scm/webid-oidc/Makefile.am16
-rw-r--r--src/scm/webid-oidc/access-token.scm16
-rw-r--r--src/scm/webid-oidc/authorization-code.scm16
-rw-r--r--src/scm/webid-oidc/authorization-endpoint.scm16
-rw-r--r--src/scm/webid-oidc/authorization-page-unsafe.scm16
-rw-r--r--src/scm/webid-oidc/authorization-page.scm16
-rw-r--r--src/scm/webid-oidc/cache.scm16
-rw-r--r--src/scm/webid-oidc/client-manifest.scm16
-rw-r--r--src/scm/webid-oidc/client.scm16
-rw-r--r--src/scm/webid-oidc/dpop-proof.scm16
-rw-r--r--src/scm/webid-oidc/errors.scm19
-rw-r--r--src/scm/webid-oidc/example-app.scm16
-rw-r--r--src/scm/webid-oidc/fetch.scm16
-rw-r--r--src/scm/webid-oidc/hello-world.scm49
-rw-r--r--src/scm/webid-oidc/http-link.scm16
-rw-r--r--src/scm/webid-oidc/identity-provider.scm16
-rw-r--r--src/scm/webid-oidc/jti.scm16
-rw-r--r--src/scm/webid-oidc/jwk.scm16
-rw-r--r--src/scm/webid-oidc/jws.scm16
-rw-r--r--src/scm/webid-oidc/oidc-configuration.scm16
-rw-r--r--src/scm/webid-oidc/oidc-id-token.scm16
-rw-r--r--src/scm/webid-oidc/program.scm140
-rw-r--r--src/scm/webid-oidc/provider-confirmation.scm16
-rw-r--r--src/scm/webid-oidc/rdf-index.scm16
-rw-r--r--src/scm/webid-oidc/refresh-token.scm16
-rw-r--r--src/scm/webid-oidc/resource-server.scm16
-rw-r--r--src/scm/webid-oidc/reverse-proxy.scm16
-rw-r--r--src/scm/webid-oidc/server/Makefile.am16
-rw-r--r--src/scm/webid-oidc/server/create.scm16
-rw-r--r--src/scm/webid-oidc/server/delete.scm16
-rw-r--r--src/scm/webid-oidc/server/precondition.scm16
-rw-r--r--src/scm/webid-oidc/server/read.scm16
-rw-r--r--src/scm/webid-oidc/server/resource/Makefile.am16
-rw-r--r--src/scm/webid-oidc/server/resource/content.scm16
-rw-r--r--src/scm/webid-oidc/server/resource/path.scm16
-rw-r--r--src/scm/webid-oidc/server/resource/wac.scm16
-rw-r--r--src/scm/webid-oidc/server/update.scm16
-rw-r--r--src/scm/webid-oidc/stubs.scm16
-rw-r--r--src/scm/webid-oidc/testing.scm16
-rw-r--r--src/scm/webid-oidc/token-endpoint.scm16
-rw-r--r--src/utilities.h18
-rwxr-xr-xsrc/webid-oidc16
-rwxr-xr-xsrc/webid-oidc-client-service16
-rwxr-xr-xsrc/webid-oidc-example-app16
-rwxr-xr-x[-rw-r--r--]src/webid-oidc-hello16
-rwxr-xr-xsrc/webid-oidc-issuer16
68 files changed, 1207 insertions, 51 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 034ae92..930fe01 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
lib_LTLIBRARIES += %reldir%/libwebidoidc.la
dist_bin_SCRIPTS += %reldir%/webid-oidc %reldir%/webid-oidc-hello %reldir%/webid-oidc-example-app
diff --git a/src/base64/Makefile.am b/src/base64/Makefile.am
index 11fdc5a..c049520 100644
--- a/src/base64/Makefile.am
+++ b/src/base64/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
noinst_LTLIBRARIES += %reldir%/libwebidoidc-base64.la
EXTRA_DIST += %reldir%/libwebidoidc-base64.x
BUILT_SOURCES += %reldir%/libwebidoidc-base64.x
diff --git a/src/base64/libwebidoidc-base64.c b/src/base64/libwebidoidc-base64.c
index 8eb29b8..51255b0 100644
--- a/src/base64/libwebidoidc-base64.c
+++ b/src/base64/libwebidoidc-base64.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#include <utilities.h>
#define _(s) dgettext (PACKAGE, s)
diff --git a/src/hash/Makefile.am b/src/hash/Makefile.am
index 5579608..5ecdd14 100644
--- a/src/hash/Makefile.am
+++ b/src/hash/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
noinst_LTLIBRARIES += %reldir%/libwebidoidc-hash.la
EXTRA_DIST += %reldir%/libwebidoidc-hash.x
BUILT_SOURCES += %reldir%/libwebidoidc-hash.x
diff --git a/src/hash/libwebidoidc-hash.c b/src/hash/libwebidoidc-hash.c
index 75d7da9..a9876d1 100644
--- a/src/hash/libwebidoidc-hash.c
+++ b/src/hash/libwebidoidc-hash.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#include <utilities.h>
#include <nettle/sha2.h>
diff --git a/src/inst/Makefile.am b/src/inst/Makefile.am
index 08c3f1c..d127a49 100644
--- a/src/inst/Makefile.am
+++ b/src/inst/Makefile.am
@@ -1 +1,17 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
include %reldir%/webid-oidc/Makefile.am
diff --git a/src/inst/webid-oidc/Makefile.am b/src/inst/webid-oidc/Makefile.am
index c6edc5c..5b7cfc4 100644
--- a/src/inst/webid-oidc/Makefile.am
+++ b/src/inst/webid-oidc/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
webidoidcmod_DATA += %reldir%/config.scm
webidoidcgo_DATA += %reldir%/config.go
diff --git a/src/jwk/Makefile.am b/src/jwk/Makefile.am
index 686f450..25f89b4 100644
--- a/src/jwk/Makefile.am
+++ b/src/jwk/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
noinst_LTLIBRARIES += %reldir%/libwebidoidc-jwk.la
noinst_PROGRAMS += %reldir%/generate-key
EXTRA_DIST += %reldir%/libwebidoidc-jwk.x
diff --git a/src/jwk/generate-key.c b/src/jwk/generate-key.c
index e875b24..61e7089 100644
--- a/src/jwk/generate-key.c
+++ b/src/jwk/generate-key.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* HAVE_CONFIG_H */
diff --git a/src/jwk/libwebidoidc-jwk.c b/src/jwk/libwebidoidc-jwk.c
index 71cb71c..29e038f 100644
--- a/src/jwk/libwebidoidc-jwk.c
+++ b/src/jwk/libwebidoidc-jwk.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#include <utilities.h>
#define _(s) dgettext (PACKAGE, s)
diff --git a/src/jws/Makefile.am b/src/jws/Makefile.am
index cf09f0e..a0cd924 100644
--- a/src/jws/Makefile.am
+++ b/src/jws/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
noinst_LTLIBRARIES += %reldir%/libwebidoidc-jws.la
EXTRA_DIST += %reldir%/libwebidoidc-jws.x
BUILT_SOURCES += %reldir%/libwebidoidc-jws.x
diff --git a/src/jws/libwebidoidc-jws.c b/src/jws/libwebidoidc-jws.c
index 17ae6b5..a35b854 100644
--- a/src/jws/libwebidoidc-jws.c
+++ b/src/jws/libwebidoidc-jws.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#include <utilities.h>
#define _(s) dgettext (PACKAGE, s)
diff --git a/src/libwebidoidc.c b/src/libwebidoidc.c
index 1c637e5..32f4c70 100644
--- a/src/libwebidoidc.c
+++ b/src/libwebidoidc.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#define N_(s)
void init_webidoidc_base64 (void);
void init_webidoidc_random (void);
diff --git a/src/pre-inst/Makefile.am b/src/pre-inst/Makefile.am
index 035a7bb..002bc2c 100644
--- a/src/pre-inst/Makefile.am
+++ b/src/pre-inst/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
include %reldir%/webid-oidc/Makefile.am
GUILD_OPTIONS += -L %reldir% -L $(srcdir)/%reldir%
diff --git a/src/pre-inst/webid-oidc/Makefile.am b/src/pre-inst/webid-oidc/Makefile.am
index 0503c8d..e168509 100644
--- a/src/pre-inst/webid-oidc/Makefile.am
+++ b/src/pre-inst/webid-oidc/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
$(go_DATA) $(webidoidcgo_DATA): %reldir%/config.go
CLEANFILES += %reldir%/config.go %reldir%/config.scm
diff --git a/src/random/Makefile.am b/src/random/Makefile.am
index fbd548c..79708b3 100644
--- a/src/random/Makefile.am
+++ b/src/random/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
noinst_LTLIBRARIES += %reldir%/libwebidoidc-random.la
noinst_PROGRAMS += %reldir%/generate-random
EXTRA_DIST += %reldir%/libwebidoidc-random.x
diff --git a/src/random/generate-random.c b/src/random/generate-random.c
index bde01b9..955fb88 100644
--- a/src/random/generate-random.c
+++ b/src/random/generate-random.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* HAVE_CONFIG_H */
diff --git a/src/random/libwebidoidc-random.c b/src/random/libwebidoidc-random.c
index 2bea9bb..10e8882 100644
--- a/src/random/libwebidoidc-random.c
+++ b/src/random/libwebidoidc-random.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#include <utilities.h>
#include <threads.h>
#include <fcntl.h>
diff --git a/src/random/random.c b/src/random/random.c
index d5c45f5..9c2faf3 100644
--- a/src/random/random.c
+++ b/src/random/random.c
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* not HAVE_CONFIG_H */
diff --git a/src/random/webid-oidc/random.h b/src/random/webid-oidc/random.h
index ae1adfc..65485fc 100644
--- a/src/random/webid-oidc/random.h
+++ b/src/random/webid-oidc/random.h
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#ifndef H_RANDOM_INCLUDED
#define H_RANDOM_INCLUDED
diff --git a/src/scm/Makefile.am b/src/scm/Makefile.am
index 33855e1..d127a49 100644
--- a/src/scm/Makefile.am
+++ b/src/scm/Makefile.am
@@ -1,4 +1,17 @@
-dist_mod_DATA += %reldir%/webid-oidc.scm
-go_DATA += %reldir%/webid-oidc.go
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
include %reldir%/webid-oidc/Makefile.am
diff --git a/src/scm/webid-oidc.scm b/src/scm/webid-oidc.scm
deleted file mode 100644
index 38c563d..0000000
--- a/src/scm/webid-oidc.scm
+++ /dev/null
@@ -1,3 +0,0 @@
-(define-module (webid-oidc)
- #:use-module (webid-oidc config)
- #:use-module (webid-oidc jws))
diff --git a/src/scm/webid-oidc/Makefile.am b/src/scm/webid-oidc/Makefile.am
index d96b63a..867d2ee 100644
--- a/src/scm/webid-oidc/Makefile.am
+++ b/src/scm/webid-oidc/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
dist_webidoidcmod_DATA += \
%reldir%/errors.scm \
%reldir%/stubs.scm \
diff --git a/src/scm/webid-oidc/access-token.scm b/src/scm/webid-oidc/access-token.scm
index 34afcdc..9c57326 100644
--- a/src/scm/webid-oidc/access-token.scm
+++ b/src/scm/webid-oidc/access-token.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc access-token)
#:use-module (webid-oidc jws)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/authorization-code.scm b/src/scm/webid-oidc/authorization-code.scm
index ebe97c4..3a0da3b 100644
--- a/src/scm/webid-oidc/authorization-code.scm
+++ b/src/scm/webid-oidc/authorization-code.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc authorization-code)
#:use-module (webid-oidc errors)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
diff --git a/src/scm/webid-oidc/authorization-endpoint.scm b/src/scm/webid-oidc/authorization-endpoint.scm
index 8dfa71f..3c4a730 100644
--- a/src/scm/webid-oidc/authorization-endpoint.scm
+++ b/src/scm/webid-oidc/authorization-endpoint.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc authorization-endpoint)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc authorization-page)
diff --git a/src/scm/webid-oidc/authorization-page-unsafe.scm b/src/scm/webid-oidc/authorization-page-unsafe.scm
index f969caf..1ab235e 100644
--- a/src/scm/webid-oidc/authorization-page-unsafe.scm
+++ b/src/scm/webid-oidc/authorization-page-unsafe.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc authorization-page-unsafe)
#:use-module (webid-oidc errors)
#:use-module (sxml simple)
diff --git a/src/scm/webid-oidc/authorization-page.scm b/src/scm/webid-oidc/authorization-page.scm
index b2c2f1f..453275b 100644
--- a/src/scm/webid-oidc/authorization-page.scm
+++ b/src/scm/webid-oidc/authorization-page.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc authorization-page)
#:use-module (webid-oidc errors)
#:use-module ((webid-oidc authorization-page-unsafe) #:prefix unsafe:)
diff --git a/src/scm/webid-oidc/cache.scm b/src/scm/webid-oidc/cache.scm
index 9435c10..8b8c480 100644
--- a/src/scm/webid-oidc/cache.scm
+++ b/src/scm/webid-oidc/cache.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc cache)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
#:use-module (web client)
diff --git a/src/scm/webid-oidc/client-manifest.scm b/src/scm/webid-oidc/client-manifest.scm
index 54c098a..0515fdd 100644
--- a/src/scm/webid-oidc/client-manifest.scm
+++ b/src/scm/webid-oidc/client-manifest.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc client-manifest)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc fetch)
diff --git a/src/scm/webid-oidc/client.scm b/src/scm/webid-oidc/client.scm
index d8f438b..aea2b7e 100644
--- a/src/scm/webid-oidc/client.scm
+++ b/src/scm/webid-oidc/client.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc client)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc provider-confirmation)
diff --git a/src/scm/webid-oidc/dpop-proof.scm b/src/scm/webid-oidc/dpop-proof.scm
index 89c78af..c716c33 100644
--- a/src/scm/webid-oidc/dpop-proof.scm
+++ b/src/scm/webid-oidc/dpop-proof.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc dpop-proof)
#:use-module (webid-oidc jws)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/errors.scm b/src/scm/webid-oidc/errors.scm
index dd68557..c969a40 100644
--- a/src/scm/webid-oidc/errors.scm
+++ b/src/scm/webid-oidc/errors.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc errors)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
#:use-module (ice-9 exceptions)
@@ -1434,7 +1450,8 @@
(format #f (G_ "the values ~s are problematic")
(exception-irritants err)))
((&exception-with-kind-and-args)
- (format #f (G_ "there is a kind and args")))
+ (format #f (G_ "there is a kind (~s) and args ~s")
+ (get 'kind) (get 'args)))
((&assertion-failure)
(format #f (G_ "there is an assertion failure")))
((&quit-exception)
diff --git a/src/scm/webid-oidc/example-app.scm b/src/scm/webid-oidc/example-app.scm
index bb2faa6..8d11c73 100644
--- a/src/scm/webid-oidc/example-app.scm
+++ b/src/scm/webid-oidc/example-app.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc example-app)
#:use-module (webid-oidc client)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/fetch.scm b/src/scm/webid-oidc/fetch.scm
index 6642ed1..f998ba2 100644
--- a/src/scm/webid-oidc/fetch.scm
+++ b/src/scm/webid-oidc/fetch.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc fetch)
#:use-module (webid-oidc errors)
#:use-module (ice-9 optargs)
diff --git a/src/scm/webid-oidc/hello-world.scm b/src/scm/webid-oidc/hello-world.scm
index cda88e4..9dc85cb 100644
--- a/src/scm/webid-oidc/hello-world.scm
+++ b/src/scm/webid-oidc/hello-world.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc hello-world)
#:use-module (webid-oidc resource-server)
#:use-module (webid-oidc jti)
@@ -29,13 +45,16 @@
(textdomain cfg:package)
(let ((version-sym
(string->symbol (G_ "command-line|version")))
+ (complete-corresponding-source-sym
+ (string->symbol (G_ "command-line|complete-corresponding-source")))
(help-sym
(string->symbol (G_ "comand-line|help")))
(port-sym
(string->symbol (G_ "comand-line|port"))))
(let ((options
(let ((option-spec
- `((,version-sym (single-char #\v) (value #f))
+ `((,complete-corresponding-source-sym (single-char #\S) (value #t))
+ (,version-sym (single-char #\v) (value #f))
(,help-sym (single-char #\h) (value #f))
(,port-sym (single-char #\p) (value #t)))))
(getopt-long (command-line) option-spec))))
@@ -45,15 +64,25 @@
Display your identity contained in the XXX-Agent header.
+This program is covered by the GNU Affero GPL, version 3 or
+later. This license requires you to provide a way for any user over
+the network to download the complete corresponding source code (with
+your modifications) at no cost. The server adds a \"Source:\" header
+to all responses.
+
Options:
+ -S MEANS, --~a=MEANS:
+ specify a way to download the complete corresponding source
+ code. For instance, this would be an URI pointing to a tarball.
-h, --~a:
display this help message and exit.
-v, --~a:
display the version information (~a) and exit.
- -p PORT, --port=~a:
+ -p PORT, --~a=PORT:
set the port to bind.
")
(car (command-line))
+ complete-corresponding-source-sym
help-sym version-sym
cfg:version
port-sym))
@@ -63,6 +92,13 @@ Options:
(else
(let ((port-string
(option-ref options port-sym "8080"))
+ (means-string
+ (let ((str (option-ref options complete-corresponding-source-sym #f)))
+ (unless str
+ (format (current-error-port)
+ (G_ "You are legally required to link to the complete corresponding source code.\n"))
+ (exit 1))
+ str))
(jti-list (make-jti-list)))
(unless (and (string->number port-string)
(integer? (string->number port-string))
@@ -78,7 +114,8 @@ Options:
(if (and agent (string->uri agent))
(values
(build-response
- #:headers '((content-type application/xhtml+xml)))
+ #:headers `((content-type application/xhtml+xml)
+ (source . ,means-string)))
(with-output-to-string
(lambda ()
(sxml->xml
@@ -92,7 +129,8 @@ Options:
(values
(build-response #:code 401
#:reason-phrase "Unauthorized"
- #:headers '((content-type application/xhtml+xml)))
+ #:headers `((content-type application/xhtml+xml)
+ (source . ,means-string)))
(with-output-to-string
(lambda ()
(sxml->xml
@@ -104,7 +142,8 @@ Options:
(values
(build-response #:code 405
#:reason-phrase "Method Not Allowed"
- #:headers '((content-type application/xhtml+xml)))
+ #:headers `((content-type application/xhtml+xml)
+ (source . ,means-string)))
(with-output-to-string
(lambda ()
(sxml->xml
diff --git a/src/scm/webid-oidc/http-link.scm b/src/scm/webid-oidc/http-link.scm
index 3400faf..64efc07 100644
--- a/src/scm/webid-oidc/http-link.scm
+++ b/src/scm/webid-oidc/http-link.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc http-link)
#:use-module (ice-9 receive)
#:use-module (ice-9 optargs)
diff --git a/src/scm/webid-oidc/identity-provider.scm b/src/scm/webid-oidc/identity-provider.scm
index 6f96b44..37a01be 100644
--- a/src/scm/webid-oidc/identity-provider.scm
+++ b/src/scm/webid-oidc/identity-provider.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc identity-provider)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc authorization-endpoint)
diff --git a/src/scm/webid-oidc/jti.scm b/src/scm/webid-oidc/jti.scm
index 423382a..4713d7d 100644
--- a/src/scm/webid-oidc/jti.scm
+++ b/src/scm/webid-oidc/jti.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc jti)
#:use-module (ice-9 atomic)
#:use-module (ice-9 threads)
diff --git a/src/scm/webid-oidc/jwk.scm b/src/scm/webid-oidc/jwk.scm
index fd94b9e..57da31d 100644
--- a/src/scm/webid-oidc/jwk.scm
+++ b/src/scm/webid-oidc/jwk.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc jwk)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/jws.scm b/src/scm/webid-oidc/jws.scm
index fb3edd1..43eb707 100644
--- a/src/scm/webid-oidc/jws.scm
+++ b/src/scm/webid-oidc/jws.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc jws)
#:use-module (webid-oidc jwk)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/oidc-configuration.scm b/src/scm/webid-oidc/oidc-configuration.scm
index 99a4e17..2169a99 100644
--- a/src/scm/webid-oidc/oidc-configuration.scm
+++ b/src/scm/webid-oidc/oidc-configuration.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc oidc-configuration)
#:use-module (webid-oidc jwk)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/oidc-id-token.scm b/src/scm/webid-oidc/oidc-id-token.scm
index 18ac124..9fe276c 100644
--- a/src/scm/webid-oidc/oidc-id-token.scm
+++ b/src/scm/webid-oidc/oidc-id-token.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc oidc-id-token)
#:use-module (webid-oidc oidc-configuration)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/program.scm b/src/scm/webid-oidc/program.scm
index 2ab1cbe..a9c1a0f 100644
--- a/src/scm/webid-oidc/program.scm
+++ b/src/scm/webid-oidc/program.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc program)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc reverse-proxy)
@@ -13,6 +29,7 @@
#:use-module (ice-9 i18n)
#:use-module (ice-9 getopt-long)
#:use-module (ice-9 suspendable-ports)
+ #:use-module (ice-9 control)
#:use-module (srfi srfi-19)
#:use-module (rnrs bytevectors)
#:use-module (web uri)
@@ -45,31 +62,44 @@
(define cache-http-get
(with-cache #:http-get http-get-with-log))
-(define (handler-with-log handler)
+(define (handler-with-log complete-corresponding-source handler)
(lambda (request request-body)
- (with-exception-handler
- (lambda (error)
- (format (current-error-port)
- (G_ "~a: Internal server error: ~a\n")
- (date->string (time-utc->date (current-time)))
- (error->str error))
- (values
- (build-response #:code 500
- #:reason-phrase "Internal Server Error")
- "Sorry, there was an error."))
- (lambda ()
- (with-exception-handler
- (lambda (error)
- (format (current-error-port)
- (G_ "The client locale ~s can’t be approximated by system locale ~s (because ~a), using C.\n")
- ((record-accessor &unknown-client-locale 'web-locale) error)
- ((record-accessor &unknown-client-locale 'c-locale) error)
- (error->str error)))
- (lambda ()
- (handler request request-body))
- #:unwind? #t
- #:unwind-for-type &unknown-client-locale))
- #:unwind? #t)))
+ (call/ec
+ (lambda (return)
+ (with-exception-handler
+ (lambda (error)
+ (format (current-error-port)
+ (G_ "~a: Internal server error: ~a\n")
+ (date->string (time-utc->date (current-time)))
+ (error->str error))
+ (return
+ (build-response #:code 500
+ #:reason-phrase "Internal Server Error"
+ #:headers `((source . ,complete-corresponding-source)))
+ "Sorry, there was an error."))
+ (lambda ()
+ (with-exception-handler
+ (lambda (error)
+ (format (current-error-port)
+ (G_ "The client locale ~s can’t be approximated by system locale ~s (because ~a), using C.\n")
+ ((record-accessor &unknown-client-locale 'web-locale) error)
+ ((record-accessor &unknown-client-locale 'c-locale) error)
+ (error->str error)))
+ (lambda ()
+ (receive (response response-body)
+ (handler request request-body)
+ (return
+ (build-response
+ #:version (response-version response)
+ #:code (response-code response)
+ #:reason-phrase (response-reason-phrase response)
+ #:headers (cons `(source . ,complete-corresponding-source)
+ (response-headers response))
+ #:port (response-port response)
+ #:validate-headers? #t)
+ response-body)))
+ #:unwind? #t
+ #:unwind-for-type &unknown-client-locale)))))))
(define-public (main)
(setvbuf (current-output-port) 'none)
@@ -79,6 +109,8 @@
(textdomain cfg:package)
(let ((version-sym
(string->symbol (G_ "command-line|version")))
+ (complete-corresponding-source-sym
+ (string->symbol (G_ "command-line|complete-corresponding-source")))
(help-sym
(string->symbol (G_ "command-line|help")))
(port-sym
@@ -115,7 +147,8 @@
(string->symbol (G_ "command-line|error-file"))))
(let ((options
(let ((spec
- `((,version-sym (single-char #\v) (value #f))
+ `((,complete-corresponding-source-sym (single-char #\S) (value #t))
+ (,version-sym (single-char #\v) (value #f))
(,help-sym (single-char #\h) (value #f))
(,log-file-sym (single-char #\l) (value #t))
(,error-file-sym (single-char #\e) (value #t))
@@ -140,6 +173,12 @@
Run the webid-oidc COMMAND.
+This program is covered by the GNU Affero GPL, version 3 or
+later. This license requires you to provide a way for any user over
+the network to download the complete corresponding source code (with
+your modifications) at no cost. The server adds a \"Source:\" header
+to all responses.
+
Available commands:
~a:
run an authenticating reverse proxy.
@@ -152,6 +191,9 @@ Available commands:
facility.
General options:
+ -S MEANS, --~a=MEANS:
+ specify a way to download the complete corresponding source
+ code. For instance, this would be an URI pointing to a tarball.
-h, --~a:
display a short help message and exit.
-v, --~a:
@@ -234,6 +276,7 @@ user. https://private.data.provider.com should only accept requests
from this reverse proxy.
~a ~a \\
+ --~a 'https://data.provider.com/server-source-code.tar.gz' \\
--~a 8080 \\
--~a 'https://data.provider.com' \\
--~a 'https://private.data.provider.com' \\
@@ -249,6 +292,7 @@ invoked with the following options:
export XDG_DATA_HOME=/var/lib
export XDG_CACHE_HOME=/var/cache
~a ~a \\
+ --~a 'https://webid-oidc.planete-kraus.eu/complete-corresponding-source.tar.gz' \\
--~a 'https://webid-oidc-demo.planete-kraus.eu' \\
--~a '/var/lib/webid-oidc/issuer/key.jwk' \\
--~a 'https://webid-oidc-demo.planete-kraus.eu/profile/card#me' \\
@@ -263,6 +307,7 @@ Running the public pages for an application
webid-oidc-demo.planete-kraus.eu is configured this way:
~a ~a \\
+ --~a 'https://webid-oidc.planete-kraus.eu/complete-corresponding-source.tar.gz' \\
--~a 'https://webid-oidc-demo.planete-kraus.eu/example-application#id' \\
--~a 'https://webid-oidc-demo.planete-kraus.eu/authorized' \\
--~a 'Example Solid Application' \\
@@ -279,6 +324,7 @@ If you find a bug, then please send a report to ~a.
(G_ "command-line|command|client-service")
(G_ "command-line|command|server")
;; General options
+ complete-corresponding-source-sym
;; help
help-sym
;; version
@@ -333,17 +379,20 @@ If you find a bug, then please send a report to ~a.
;; command
(G_ "command-line|command|reverse-proxy")
;; options
+ complete-corresponding-source-sym
port-sym server-name-sym backend-uri-sym header-sym
log-file-sym error-file-sym
;; Running an identity provider
(car (command-line))
(G_ "command-line|command|identity-provider")
+ complete-corresponding-source-sym
server-name-sym key-file-sym subject-sym password-sym
jwks-uri-sym authorization-endpoint-uri-sym
token-endpoint-uri-sym port-sym
;; Running the public pages for an application
(car (command-line))
(G_ "command-line|command|client-service")
+ complete-corresponding-source-sym
client-id-sym redirect-uri-sym client-name-sym client-uri-sym
port-sym
;; Bug report
@@ -353,6 +402,13 @@ If you find a bug, then please send a report to ~a.
cfg:package cfg:version))
(else
(let ((rest (option-ref options '() '()))
+ (complete-corresponding-source
+ (let ((str (option-ref options complete-corresponding-source-sym #f)))
+ (unless str
+ (format (current-error-port)
+ (G_ "You are legally required to link to the complete corresponding source code.\n"))
+ (exit 1))
+ str))
(port
(let ((port (string->number (option-ref options port-sym "8080"))))
(unless port
@@ -443,11 +499,13 @@ If you find a bug, then please send a report to ~a.
backend-uri-sym)
(exit 1))
(run-server
- (make-reverse-proxy
- #:server-uri server-name
- #:http-get cache-http-get
- #:endpoint backend-uri
- #:auth-header header)
+ (handler-with-log
+ complete-corresponding-source
+ (make-reverse-proxy
+ #:server-uri server-name
+ #:http-get cache-http-get
+ #:endpoint backend-uri
+ #:auth-header header))
'http
(list #:port port))))
((equal? command (G_ "command-line|command|identity-provider"))
@@ -488,7 +546,7 @@ If you find a bug, then please send a report to ~a.
#:current-time current-time
#:http-get cache-http-get)))
(run-server
- (handler-with-log handler)
+ (handler-with-log complete-corresponding-source handler)
'http
(list #:port port)))))
((equal? command (G_ "command-line|command|client-service"))
@@ -514,7 +572,7 @@ If you find a bug, then please send a report to ~a.
#:client-name client-name
#:client-uri client-uri)))
(run-server
- (handler-with-log handler)
+ (handler-with-log complete-corresponding-source handler)
'http
(list #:port port)))))
((equal? command (G_ "command-line|command|server"))
@@ -575,14 +633,16 @@ If you find a bug, then please send a report to ~a.
#:http-get cache-http-get)))
(create-root server-name subject)
(run-server
- (lambda (request request-body)
- (let ((path (uri-path (request-uri request))))
- (if (or (equal? path "/.well-known/openid-configuration")
- (equal? path (uri-path jwks-uri))
- (equal? path (uri-path authorization-endpoint-uri))
- (equal? path (uri-path token-endpoint-uri)))
- (identity-provider-handler request request-body)
- (resource-handler request request-body))))
+ (handler-with-log
+ complete-corresponding-source
+ (lambda (request request-body)
+ (let ((path (uri-path (request-uri request))))
+ (if (or (equal? path "/.well-known/openid-configuration")
+ (equal? path (uri-path jwks-uri))
+ (equal? path (uri-path authorization-endpoint-uri))
+ (equal? path (uri-path token-endpoint-uri)))
+ (identity-provider-handler request request-body)
+ (resource-handler request request-body)))))
'http
(list #:port port)))))
(else
diff --git a/src/scm/webid-oidc/provider-confirmation.scm b/src/scm/webid-oidc/provider-confirmation.scm
index f767fee..1baf2f3 100644
--- a/src/scm/webid-oidc/provider-confirmation.scm
+++ b/src/scm/webid-oidc/provider-confirmation.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc provider-confirmation)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc fetch)
diff --git a/src/scm/webid-oidc/rdf-index.scm b/src/scm/webid-oidc/rdf-index.scm
index f756afa..b70dc9a 100644
--- a/src/scm/webid-oidc/rdf-index.scm
+++ b/src/scm/webid-oidc/rdf-index.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc rdf-index)
#:use-module (oop goops)
#:use-module (rdf rdf)
diff --git a/src/scm/webid-oidc/refresh-token.scm b/src/scm/webid-oidc/refresh-token.scm
index d2a7da6..f9ceada 100644
--- a/src/scm/webid-oidc/refresh-token.scm
+++ b/src/scm/webid-oidc/refresh-token.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc refresh-token)
#:use-module (webid-oidc errors)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
diff --git a/src/scm/webid-oidc/resource-server.scm b/src/scm/webid-oidc/resource-server.scm
index c69bc51..b5c1a48 100644
--- a/src/scm/webid-oidc/resource-server.scm
+++ b/src/scm/webid-oidc/resource-server.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc resource-server)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc oidc-configuration)
diff --git a/src/scm/webid-oidc/reverse-proxy.scm b/src/scm/webid-oidc/reverse-proxy.scm
index cc4d46a..f9caba6 100644
--- a/src/scm/webid-oidc/reverse-proxy.scm
+++ b/src/scm/webid-oidc/reverse-proxy.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc reverse-proxy)
#:use-module (webid-oidc errors)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
diff --git a/src/scm/webid-oidc/server/Makefile.am b/src/scm/webid-oidc/server/Makefile.am
index 6ef3dcf..7551ff9 100644
--- a/src/scm/webid-oidc/server/Makefile.am
+++ b/src/scm/webid-oidc/server/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
dist_serverwebidoidcmod_DATA += \
%reldir%/create.scm \
%reldir%/read.scm \
diff --git a/src/scm/webid-oidc/server/create.scm b/src/scm/webid-oidc/server/create.scm
index f354445..f77cb49 100644
--- a/src/scm/webid-oidc/server/create.scm
+++ b/src/scm/webid-oidc/server/create.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server create)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc server resource path)
diff --git a/src/scm/webid-oidc/server/delete.scm b/src/scm/webid-oidc/server/delete.scm
index edd23cb..b5fb3a9 100644
--- a/src/scm/webid-oidc/server/delete.scm
+++ b/src/scm/webid-oidc/server/delete.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server delete)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc server resource path)
diff --git a/src/scm/webid-oidc/server/precondition.scm b/src/scm/webid-oidc/server/precondition.scm
index 94c6ae1..6912a7a 100644
--- a/src/scm/webid-oidc/server/precondition.scm
+++ b/src/scm/webid-oidc/server/precondition.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server precondition)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc server resource path)
diff --git a/src/scm/webid-oidc/server/read.scm b/src/scm/webid-oidc/server/read.scm
index 895be46..6cd1a01 100644
--- a/src/scm/webid-oidc/server/read.scm
+++ b/src/scm/webid-oidc/server/read.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server read)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc server resource path)
diff --git a/src/scm/webid-oidc/server/resource/Makefile.am b/src/scm/webid-oidc/server/resource/Makefile.am
index efc41ce..e590de4 100644
--- a/src/scm/webid-oidc/server/resource/Makefile.am
+++ b/src/scm/webid-oidc/server/resource/Makefile.am
@@ -1,3 +1,19 @@
+# webid-oidc, implementation of the Solid specification
+# Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
dist_resourceserverwebidoidcmod_DATA += \
%reldir%/content.scm \
%reldir%/path.scm \
diff --git a/src/scm/webid-oidc/server/resource/content.scm b/src/scm/webid-oidc/server/resource/content.scm
index 2bbf4f0..29d8889 100644
--- a/src/scm/webid-oidc/server/resource/content.scm
+++ b/src/scm/webid-oidc/server/resource/content.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server resource content)
#:use-module (webid-oidc errors)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
diff --git a/src/scm/webid-oidc/server/resource/path.scm b/src/scm/webid-oidc/server/resource/path.scm
index f39f4b2..f1594bc 100644
--- a/src/scm/webid-oidc/server/resource/path.scm
+++ b/src/scm/webid-oidc/server/resource/path.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server resource path)
#:use-module (webid-oidc errors)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
diff --git a/src/scm/webid-oidc/server/resource/wac.scm b/src/scm/webid-oidc/server/resource/wac.scm
index 47748ca..073d77b 100644
--- a/src/scm/webid-oidc/server/resource/wac.scm
+++ b/src/scm/webid-oidc/server/resource/wac.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server resource wac)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc server resource path)
diff --git a/src/scm/webid-oidc/server/update.scm b/src/scm/webid-oidc/server/update.scm
index 715c4ed..2e811ae 100644
--- a/src/scm/webid-oidc/server/update.scm
+++ b/src/scm/webid-oidc/server/update.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc server update)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc server resource path)
diff --git a/src/scm/webid-oidc/stubs.scm b/src/scm/webid-oidc/stubs.scm
index 3ec40a8..0c6f0bc 100644
--- a/src/scm/webid-oidc/stubs.scm
+++ b/src/scm/webid-oidc/stubs.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc stubs)
#:use-module (webid-oidc config)
#:use-module (webid-oidc errors)
diff --git a/src/scm/webid-oidc/testing.scm b/src/scm/webid-oidc/testing.scm
index aecb2a3..f6a5b16 100644
--- a/src/scm/webid-oidc/testing.scm
+++ b/src/scm/webid-oidc/testing.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc testing)
#:use-module (webid-oidc stubs)
#:use-module (webid-oidc errors))
diff --git a/src/scm/webid-oidc/token-endpoint.scm b/src/scm/webid-oidc/token-endpoint.scm
index 422bac6..95681bb 100644
--- a/src/scm/webid-oidc/token-endpoint.scm
+++ b/src/scm/webid-oidc/token-endpoint.scm
@@ -1,3 +1,19 @@
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(define-module (webid-oidc token-endpoint)
#:use-module (webid-oidc errors)
#:use-module (webid-oidc authorization-code)
diff --git a/src/utilities.h b/src/utilities.h
index c07265e..1672cb2 100644
--- a/src/utilities.h
+++ b/src/utilities.h
@@ -1,3 +1,21 @@
+/*
+ webid-oidc, implementation of the Solid specification
+ Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+*/
+
#ifndef H_UTILITIES_INCLUDED
#define H_UTILITIES_INCLUDED
diff --git a/src/webid-oidc b/src/webid-oidc
index 67affe4..765f62c 100755
--- a/src/webid-oidc
+++ b/src/webid-oidc
@@ -2,6 +2,22 @@
--no-auto-compile -s
!#
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(use-modules (webid-oidc program))
(main)
diff --git a/src/webid-oidc-client-service b/src/webid-oidc-client-service
index 1139abd..82489dd 100755
--- a/src/webid-oidc-client-service
+++ b/src/webid-oidc-client-service
@@ -2,6 +2,22 @@
--no-auto-compile -s
!#
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(use-modules (webid-oidc client))
(main-server)
diff --git a/src/webid-oidc-example-app b/src/webid-oidc-example-app
index ebf2da8..efa22a0 100755
--- a/src/webid-oidc-example-app
+++ b/src/webid-oidc-example-app
@@ -2,6 +2,22 @@
--no-auto-compile -s
!#
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(use-modules (webid-oidc example-app))
(main)
diff --git a/src/webid-oidc-hello b/src/webid-oidc-hello
index b19481f..ce169d4 100644..100755
--- a/src/webid-oidc-hello
+++ b/src/webid-oidc-hello
@@ -2,6 +2,22 @@
--no-auto-compile -s
!#
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(use-modules (webid-oidc hello-world))
(format (current-error-port) "Logging to hello.log and hello.err.\n")
diff --git a/src/webid-oidc-issuer b/src/webid-oidc-issuer
index 6dd2960..aedd383 100755
--- a/src/webid-oidc-issuer
+++ b/src/webid-oidc-issuer
@@ -2,6 +2,22 @@
--no-auto-compile -s
!#
+;; webid-oidc, implementation of the Solid specification
+;; Copyright (C) 2020, 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 <https://www.gnu.org/licenses/>.
+
(use-modules (webid-oidc identity-provider))
(main)