challenger

OAuth 2.0-based authentication service that validates user can receive messages at a certain address
Log | Files | Refs | Submodules | README | LICENSE

commit cdfc8642100f01e05dc13e55360b6f225cd9048b
parent 7af37b89e9e6fbfbe8619dbef7f437d339a9020b
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Fri, 22 May 2026 11:19:05 +0200

Merge branch 'master' of ssh://git.gnunet.org/challenger

Diffstat:
DMakefile.am | 22----------------------
Mconfigure | 6+++++-
Mdebian/.gitignore | 8++------
Mdebian/challenger-httpd.README.Debian | 2+-
Ddebian/challenger-httpd.config | 8--------
Mdebian/challenger-httpd.install | 1-
Mdebian/challenger-httpd.postrm | 9++++-----
Ddebian/challenger-httpd.preinst | 4----
Mdebian/challenger-httpd.socket | 1-
Mdebian/changelog | 24++++++++++++------------
Mdebian/control | 44++++++++++++++++++++++++++++++++------------
Mdebian/copyright | 10+++-------
Mdebian/etc/apache2/sites-available/challenger.conf | 4++--
Mdebian/rules | 4+---
Mdebian/source/options | 4+---
Mdebian/watch | 2+-
16 files changed, 64 insertions(+), 89 deletions(-)

diff --git a/Makefile.am b/Makefile.am @@ -1,22 +0,0 @@ -# This Makefile is in the public domain - -if DOC_ONLY -if ENABLE_DOC - SUBDIRS = . contrib doc -else - SUBDIRS = . contrib -endif -else -if ENABLE_DOC - SUBDIRS = . src contrib doc -else - SUBDIRS = . src contrib -endif -endif - -@DX_RULES@ - -ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = \ - AUTHORS \ - COPYING.AGPL diff --git a/configure b/configure @@ -98,9 +98,13 @@ while [ "$#" -gt "0" ]; do done ;; *) - for flag in $standard_utils $standard_flags standard_vars; do + for flag in $standard_utils $standard_flags $standard_vars; do [ "$flag" = "$arg" ] && eval "$flag=\"$argparam\"" done + # Export so that "meson setup" respects them. + for flag in $standard_utils $standard_flags; do + [ "$flag" = "$arg" ] && eval export "$flag" + done ;; esac diff --git a/debian/.gitignore b/debian/.gitignore @@ -1,13 +1,9 @@ .debhelper/ *.substvars *.log -libsync/ -libsync-dev/ -sync-httpd/ -sync-cli/ *.debhelper -autoreconf.after -autoreconf.before +challenger-httpd/ +challenger-httpd-dev/ debhelper-build-stamp files tmp/ \ No newline at end of file diff --git a/debian/challenger-httpd.README.Debian b/debian/challenger-httpd.README.Debian @@ -5,6 +5,6 @@ This package is a backend to operate a Challenger service. This package is integrated with Apache or Nginx, automatically deploying a configuration for the backend to the respective -Web server at the "/sync/" endpoint. +Web server at the "/challenger/" endpoint. -- Christian Grothoff <grothoff@gnu.org> Fri 17 Apr 2023 11:37:14 AM CET diff --git a/debian/challenger-httpd.config b/debian/challenger-httpd.config @@ -1,8 +0,0 @@ -#!/bin/sh - -set -e - -. /usr/share/debconf/confmodule - -_USERNAME=challenger-httpd -_GROUPNAME=www-data diff --git a/debian/challenger-httpd.install b/debian/challenger-httpd.install @@ -1,7 +1,6 @@ usr/bin/ usr/lib/*/libchallengerutil.so.* usr/lib/*/libchallengerdb.so.* -usr/lib/*/challenger/libchallenger_plugin*.* usr/share/challenger/sql/* usr/share/challenger/spa/* usr/share/challenger/templates/* diff --git a/debian/challenger-httpd.postrm b/debian/challenger-httpd.postrm @@ -2,17 +2,16 @@ set -e -_USERNAME=challenger-httpd - -if [ -f /usr/share/debconf/confmodule ]; then +if [ -f /usr/share/debconf/confmodule ]; +then . /usr/share/debconf/confmodule fi case "${1}" in purge) - rm -rf /var/lib/challenger/httpd/ + rm -rf /run/challenger/httpd/ rm -f /etc/challenger/override.conf - deluser--system --quiet ${_USERNAME} || true + deluser --system --quiet challenger-httpd || true ;; remove | upgrade | failed-upgrade | abort-install | abort-upgrade | disappear) ;; diff --git a/debian/challenger-httpd.preinst b/debian/challenger-httpd.preinst @@ -1,4 +0,0 @@ -#!/bin/bash - -set -e -exit 0 diff --git a/debian/challenger-httpd.socket b/debian/challenger-httpd.socket @@ -1,6 +1,5 @@ [Unit] Description=Challenger Socket -PartOf=challenger-httpd.service [Socket] ListenStream=/run/challenger/httpd/challenger-http.sock diff --git a/debian/changelog b/debian/changelog @@ -2,13 +2,13 @@ challenger (1.5.1) unstable; urgency=low * Release 1.5.1. - -- Christian Grothoff <christian@grothoff.org> Sun, 22 Mar 2026 00:20:17 +0100 + -- Christian Grothoff <grothoff@gnu.org> Sun, 22 Mar 2026 00:20:17 +0100 challenger (1.5.0) unstable; urgency=low * Release 1.5.0. - -- Christian Grothoff <christian@grothoff.org> Sat, 21 Mar 2026 18:18:43 +0100 + -- Christian Grothoff <grothoff@gnu.org> Sat, 21 Mar 2026 18:18:43 +0100 challenger (1.4.2) unstable; urgency=low @@ -32,19 +32,19 @@ challenger (1.3.0) unstable; urgency=low * Release 1.3.0. - -- Christian Grothoff <christian@grothoff.org> Sun, 21 Dec 2025 21:40:30 +0100 + -- Christian Grothoff <grothoff@gnu.org> Sun, 21 Dec 2025 21:40:30 +0100 challenger (1.2.0) unstable; urgency=low * Release 1.2.0. - -- Christian Grothoff <christian@grothoff.org> Sat, 22 Nov 2025 22:47:46 +0100 + -- Christian Grothoff <grothoff@gnu.org> Sat, 22 Nov 2025 22:47:46 +0100 challenger (1.1.0) unstable; urgency=low * Release 1.1.0. - -- Christian Grothoff <christian@grothoff.org> Wed, 08 Oct 2025 20:59:37 +0200 + -- Christian Grothoff <grothoff@gnu.org> Wed, 08 Oct 2025 20:59:37 +0200 challenger (1.0.4) unstable; urgency=low @@ -74,7 +74,7 @@ challenger (1.0.0) unstable; urgency=low * Release 1.0.0. - -- Christian Grothoff <christian@grothoff.org> Sat, 10 May 2025 00:00:00 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sat, 10 May 2025 00:00:00 +0200 challenger (0.14.25) unstable; urgency=low @@ -92,37 +92,37 @@ challenger (0.14.23) unstable; urgency=low * Release 0.14.23. - -- Christian Grothoff <christian@grothoff.org> Sun, 04 May 2025 22:38:01 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sun, 04 May 2025 22:38:01 +0200 challenger (0.14.22) unstable; urgency=low * Release 0.14.22. - -- Christian Grothoff <christian@grothoff.org> Sun, 04 May 2025 20:29:16 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sun, 04 May 2025 20:29:16 +0200 challenger (0.14.21) unstable; urgency=low * Release 0.14.21. - -- Christian Grothoff <christian@grothoff.org> Sun, 04 May 2025 19:29:40 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sun, 04 May 2025 19:29:40 +0200 challenger (0.14.20) unstable; urgency=low * Release 0.14.20. - -- Christian Grothoff <christian@grothoff.org> Sun, 04 May 2025 15:38:14 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sun, 04 May 2025 15:38:14 +0200 challenger (0.14.19) unstable; urgency=low * Release 0.14.19. - -- Christian Grothoff <christian@grothoff.org> Sun, 04 May 2025 13:56:10 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sun, 04 May 2025 13:56:10 +0200 challenger (0.14.18) unstable; urgency=low * Release 0.14.18. - -- Christian Grothoff <christian@grothoff.org> Sun, 04 May 2025 10:01:25 +0200 + -- Christian Grothoff <grothoff@gnu.org> Sun, 04 May 2025 10:01:25 +0200 challenger (0.14.17) unstable; urgency=low diff --git a/debian/control b/debian/control @@ -3,11 +3,9 @@ Section: net Priority: optional Maintainer: Christian Grothoff <grothoff@gnu.org> Build-Depends: - autoconf (>=2.59), - automake (>=1.11.1), - autopoint, + meson, + ninja-build, debhelper-compat (= 12), - gettext, libgnunet-dev (>=0.27.0), libtalerexchange-dev (>= 1.5.0), libpq-dev (>=15), @@ -17,7 +15,7 @@ Build-Depends: texinfo Standards-Version: 4.5.0 Vcs-Git: https://salsa.debian.org/debian/challenger.git -Vcs-browser: https://salsa.debian.org/debian/challenger +Vcs-Browser: https://salsa.debian.org/debian/challenger Homepage: https://taler.net/ Package: challenger-httpd @@ -37,12 +35,26 @@ Depends: Recommends: apache2 | nginx | httpd, postgresql (>=15.0) -Description: OAuth 2.0 address validation authenticator. +Description: OAuth 2.0-compatible address validation service + Challenger validates that a user is able to receive messages at a given + address (e-mail, SMS phone number, or postal address) and exposes the + verified address to a registered client via OAuth 2.0. After the user + submits an address, Challenger generates a TAN code and sends it through + a configurable helper script (one is shipped for each supported address + type); once the user returns the correct code, the client may obtain the + validated address through the standard OAuth 2.0 ``/info`` endpoint. . - A Challenger service validates that user is able to - receive a challenge at a given address and then - permits that user to perform an OAuth 2.0 authentication - based on that address. + Typical use cases include Know-Your-Customer (KYC) flows for the GNU + Taler payment system and any other application that needs lightweight + proof that a user controls a particular contact address. + . + This package provides the challenger-httpd daemon together with its + systemd socket and service units, command-line administration tools + (challenger-admin, challenger-config, challenger-dbconfig, + challenger-dbinit), the bundled single-page web frontend, and example + reverse-proxy snippets for Apache and nginx. The daemon listens on a + UNIX domain socket and is intended to be run behind a TLS-terminating + reverse proxy; PostgreSQL is used for persistent storage. Package: challenger-httpd-dev @@ -51,6 +63,14 @@ Architecture: any Depends: libtalerexchange-dev (>= 1.5.0), ${misc:Depends} -Description: Development headers. +Description: OAuth 2.0-compatible address validation service - development files + Challenger validates that a user is able to receive messages at a given + address (e-mail, SMS phone number, or postal address) and exposes the + verified address to a registered client via OAuth 2.0. . - This package contains the development files. + This package contains the C headers and shared-library symlinks needed + to build software that links against Challenger's utility or database + libraries. It should be noted that these libraries are not useful to + interact with the Challenger REST API and we are currently not aware + of any component using these library interfaces. The are also not + considered to be stable and may change in the future. diff --git a/debian/copyright b/debian/copyright @@ -1,21 +1,17 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: GNU Taler -Upstream-Contact: Christian Grothoff <christian@grothoff.org> +Upstream-Contact: Christian Grothoff <grothoff@gnu.org> Source: https://taler.net/ Files: * Copyright: - (C) 2013-2020 Taler Systems SA + (C) 2013-2026 Taler Systems SA License: AGPL-3+ Comment: Many contributors are mentioned in AUTHORS Files: debian/* Copyright: - (C) 2020 Christian Grothoff <grothoff@gnu.org> -License: GPL-3+ - -Files: debian/po/* -Copyright: + (C) 2020-2026 Christian Grothoff <grothoff@gnu.org> License: GPL-3+ License: GPL-3+ diff --git a/debian/etc/apache2/sites-available/challenger.conf b/debian/etc/apache2/sites-available/challenger.conf @@ -6,6 +6,6 @@ # a2enmod proxy_http --> -<Location "/sync/"> -ProxyPass "unix:/var/lib/sync/httpd/challenger.sock|http://example.com/" +<Location "/challenger/"> +ProxyPass "unix:/var/lib/challenger/httpd/challenger.sock|http://example.com/" </Location> diff --git a/debian/rules b/debian/rules @@ -21,9 +21,7 @@ override_dh_auto_install-arch: dh_auto_install # Removing useless files - rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la \ - debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/challenger/*.la \ - debian/tmp/usr/share/doc/challenger/COPYING + rm -f debian/tmp/usr/share/doc/challenger/COPYING override_dh_auto_install-indep: diff --git a/debian/source/options b/debian/source/options @@ -1,3 +1 @@ -extend-diff-ignore = "^(config\.sub|config\.guess|Makefile)$" - - +extend-diff-ignore = "^(Makefile)$" diff --git a/debian/watch b/debian/watch @@ -1,3 +1,3 @@ version=4 opts="pgpmode=auto, uversionmangle=s/pre/~pre/;s/rc/~rc/" \ - https://ftp.gnu.org/gnu/@PACKAGE@/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ + https://ftp.gnu.org/gnu/taler/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@