challenger

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

commit 11064577a029c9dbfabe5cbdb7f5bab4650a5a7d
parent f3550bf44f67735195a09c1a18500300d7a252d8
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat,  6 May 2023 16:00:25 +0200

-update SQL

Diffstat:
Msrc/challengerdb/Makefile.am | 2++
Msrc/challengerdb/challenger-0001.sql | 2+-
Msrc/challengerdb/pg_challenge_set_address_and_pin.c | 52++++++++++++++++++++++++++--------------------------
Msrc/challengerdb/plugin_challengerdb_postgres.c | 6++++++
4 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/src/challengerdb/Makefile.am b/src/challengerdb/Makefile.am @@ -60,6 +60,8 @@ libchallenger_plugin_db_postgres_la_SOURCES = \ pg_client_add.h pg_client_add.c \ pg_client_delete.h pg_client_delete.c \ pg_client_check.h pg_client_check.c \ + pg_info_get_grant.h pg_info_get_grant.c \ + pg_auth_add_grant.h pg_auth_add_grant.c \ pg_setup_nonce.h pg_setup_nonce.c \ pg_login_start.h pg_login_start.c \ pg_challenge_set_address_and_pin.h pg_challenge_set_address_and_pin.c \ diff --git a/src/challengerdb/challenger-0001.sql b/src/challengerdb/challenger-0001.sql @@ -111,7 +111,7 @@ COMMENT ON COLUMN grants.address COMMENT ON COLUMN grants.address_expiration_time IS 'Timestamp until when we consider the address to be valid'; COMMENT ON COLUMN grants.grant_expiration_time - IS 'Time until when we consider the grnat to be valid'; + IS 'Time until when we consider the grant to be valid'; -- Complete transaction COMMIT; diff --git a/src/challengerdb/pg_challenge_set_address_and_pin.c b/src/challengerdb/pg_challenge_set_address_and_pin.c @@ -41,8 +41,8 @@ CH_PG_challenge_set_address_and_pin ( struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); struct GNUNET_TIME_Absolute next_tx_time - = GNUNET_TIME_absolute_subtract (last_tx_time, - validation_duration), + = GNUNET_TIME_absolute_subtract (now, + validation_duration); struct GNUNET_PQ_QueryParam params[] = { GNUNET_PQ_query_param_auto_from_type (nonce), GNUNET_PQ_query_param_string (address), @@ -78,35 +78,35 @@ CH_PG_challenge_set_address_and_pin ( ")" "UPDATE validations SET" " address_attempts_left=CASE" - " WHEN decisions.addr_changed + " WHEN decisions.addr_changed" " THEN address_attempts_left - 1 " " ELSE address_attempts_left " " END " ",last_pin = CASE " - " WHEN decisions.addr_changed - " THEN $5" - " ELSE last_pin" - " ,END" - " ,pin_transmissions_left=CASE" - " WHEN decisions.addr_changed + " WHEN decisions.addr_changed" + " THEN $5" + " ELSE last_pin" + " ,END" + " ,pin_transmissions_left=CASE" + " WHEN decisions.addr_changed" " THEN 3 " - " ELSE WHEN decisions.send_pin - " THEN pin_transmissions_left - 1" - " ELSE pin_transmissions_left" - " END" - " ,END" - " ,last_tx_time=CASE" - " WHEN decisions.send_pin" - " THEN $4" - " ELSE last_tx_time" - " END" - " ,address=$2" - " WHERE nonce=$1" - " RETURNING" - " last_tx_time" - " ,decisions.send_pin AS pin_transmit" - " ,last_pin" - " ,pin_attempts_left;"); + " ELSE WHEN decisions.send_pin" + " THEN pin_transmissions_left - 1" + " ELSE pin_transmissions_left" + " END" + " ,END" + " ,last_tx_time=CASE" + " WHEN decisions.send_pin" + " THEN $4" + " ELSE last_tx_time" + " END" + " ,address=$2" + " WHERE nonce=$1" + " RETURNING" + " last_tx_time" + " ,decisions.send_pin AS pin_transmit" + " ,last_pin" + " ,pin_attempts_left;"); return GNUNET_PQ_eval_prepared_singleton_select (pg->conn, "challenge_set_address_and_pin", params, diff --git a/src/challengerdb/plugin_challengerdb_postgres.c b/src/challengerdb/plugin_challengerdb_postgres.c @@ -28,6 +28,8 @@ #include "pg_helper.h" #include "pg_client_add.h" #include "pg_client_delete.h" +#include "pg_info_get_grant.h" +#include "pg_auth_add_grant.h" #include "pg_client_check.h" #include "pg_setup_nonce.h" #include "pg_login_start.h" @@ -400,6 +402,10 @@ libchallenger_plugin_db_postgres_init (void *cls) = &CH_PG_validate_solve_pin; plugin->validation_get = &CH_PG_validation_get; + plugin->info_get_grant + = &CH_PG_info_get_grant; + plugin->auth_add_grant + = &CH_PG_auth_add_grant; return plugin; }