(preliminary) work on kycaid plugin
This commit is contained in:
parent
39640c3339
commit
96265412cd
@ -1 +1 @@
|
||||
Subproject commit 88f1513c159014a1cbc6d0745568770538d2b0a9
|
||||
Subproject commit 1a8af54b491e8300287eb7afb08ba22b91107f9a
|
@ -4563,6 +4563,7 @@ prepare_statements (struct PostgresClosure *pg)
|
||||
"get_wire_target_by_legitimization_id",
|
||||
"SELECT "
|
||||
" h_payto"
|
||||
",legitimization_serial_id"
|
||||
" FROM legitimizations"
|
||||
" WHERE provider_legitimization_id=$1"
|
||||
" AND provider_section=$2;",
|
||||
@ -16680,6 +16681,7 @@ postgres_lookup_kyc_requirement_by_account (
|
||||
* @param provider_section
|
||||
* @param provider_legitimization_id legi to look up
|
||||
* @param[out] h_payto where to write the result
|
||||
* @param[out] legi_row where to write the row of the entry
|
||||
* @return database transaction status
|
||||
*/
|
||||
static enum GNUNET_DB_QueryStatus
|
||||
@ -16687,7 +16689,8 @@ postgres_kyc_provider_account_lookup (
|
||||
void *cls,
|
||||
const char *provider_section,
|
||||
const char *provider_legitimization_id,
|
||||
struct TALER_PaytoHashP *h_payto)
|
||||
struct TALER_PaytoHashP *h_payto,
|
||||
uint64_t *legi_row)
|
||||
{
|
||||
struct PostgresClosure *pg = cls;
|
||||
struct GNUNET_PQ_QueryParam params[] = {
|
||||
@ -16698,6 +16701,8 @@ postgres_kyc_provider_account_lookup (
|
||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||
GNUNET_PQ_result_spec_auto_from_type ("h_payto",
|
||||
h_payto),
|
||||
GNUNET_PQ_result_spec_uint64 ("legitimization_serial_id",
|
||||
legi_row),
|
||||
GNUNET_PQ_result_spec_end
|
||||
};
|
||||
|
||||
|
@ -5675,6 +5675,7 @@ struct TALER_EXCHANGEDB_Plugin
|
||||
* @param provider_section
|
||||
* @param provider_legitimization_id legi to look up
|
||||
* @param[out] h_payto where to write the result
|
||||
* @param[out] legi_row where to write the row of the entry
|
||||
* @return database transaction status
|
||||
*/
|
||||
enum GNUNET_DB_QueryStatus
|
||||
@ -5682,7 +5683,8 @@ struct TALER_EXCHANGEDB_Plugin
|
||||
void *cls,
|
||||
const char *provider_section,
|
||||
const char *provider_legitimization_id,
|
||||
struct TALER_PaytoHashP *h_payto);
|
||||
struct TALER_PaytoHashP *h_payto,
|
||||
uint64_t *legi_row);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -210,6 +210,7 @@ typedef void
|
||||
* @param provider_section
|
||||
* @param provider_legitimization_id legi to look up
|
||||
* @param[out] h_payto where to write the result
|
||||
* @param[out] legi_row where to write the row of the entry
|
||||
* @return database transaction status
|
||||
*/
|
||||
typedef enum GNUNET_DB_QueryStatus
|
||||
@ -217,7 +218,8 @@ typedef enum GNUNET_DB_QueryStatus
|
||||
void *cls,
|
||||
const char *provider_section,
|
||||
const char *provider_legitimization_id,
|
||||
struct TALER_PaytoHashP *h_payto);
|
||||
struct TALER_PaytoHashP *h_payto,
|
||||
uint64_t *legi_row);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -10,6 +10,7 @@ pkgcfgdir = $(prefix)/share/taler/config.d/
|
||||
|
||||
pkgcfg_DATA = \
|
||||
kyclogic.conf \
|
||||
kyclogic-kycaid.conf \
|
||||
kyclogic-oauth2.conf
|
||||
|
||||
EXTRA_DIST = \
|
||||
@ -53,6 +54,7 @@ taler_exchange_kyc_tester_LDADD = \
|
||||
plugindir = $(libdir)/taler
|
||||
|
||||
plugin_LTLIBRARIES = \
|
||||
libtaler_plugin_kyclogic_kycaid.la \
|
||||
libtaler_plugin_kyclogic_oauth2.la \
|
||||
libtaler_plugin_kyclogic_template.la
|
||||
|
||||
@ -73,4 +75,18 @@ libtaler_plugin_kyclogic_oauth2_la_LDFLAGS = \
|
||||
-ljansson \
|
||||
$(XLIB)
|
||||
|
||||
libtaler_plugin_kyclogic_kycaid_la_SOURCES = \
|
||||
plugin_kyclogic_kycaid.c
|
||||
libtaler_plugin_kyclogic_kycaid_la_LIBADD = \
|
||||
$(LTLIBINTL)
|
||||
libtaler_plugin_kyclogic_kycaid_la_LDFLAGS = \
|
||||
$(TALER_PLUGIN_LDFLAGS) \
|
||||
$(top_builddir)/src/json/libtalerjson.la \
|
||||
$(top_builddir)/src/curl/libtalercurl.la \
|
||||
$(top_builddir)/src/util/libtalerutil.la \
|
||||
-lgnunetutil \
|
||||
-ljansson \
|
||||
-lcurl \
|
||||
$(XLIB)
|
||||
|
||||
AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export PATH=$${TALER_PREFIX:-@prefix@}/bin:$$PATH;
|
||||
|
22
src/kyclogic/kyclogic-kycaid.conf
Normal file
22
src/kyclogic/kyclogic-kycaid.conf
Normal file
@ -0,0 +1,22 @@
|
||||
# This file is in the public domain.
|
||||
|
||||
# Example kycaid provider configuration.
|
||||
|
||||
[kyc-provider-example-kycaid]
|
||||
|
||||
COST = 42
|
||||
LOGIC = kycaid
|
||||
USER_TYPE = INDIVIDUAL
|
||||
PROVIDED_CHECKS = EXAMPLE_DO_NOT_USE
|
||||
|
||||
# How long is the KYC check valid?
|
||||
KYC_KYCAID_VALIDITY = forever
|
||||
|
||||
# Authentication token to use.
|
||||
KYC_KYCAID_AUTH_TOKEN = XXX
|
||||
|
||||
# Form to use.
|
||||
KYC_KYCAID_FORM_ID = XXX
|
||||
|
||||
# Authentication token to use.
|
||||
KYC_KYCAID_POST_URL = https://example.com/
|
@ -288,10 +288,12 @@ load_logic (const struct GNUNET_CONFIGURATION_Handle *cfg,
|
||||
}
|
||||
plugin = GNUNET_PLUGIN_load (lib_name,
|
||||
(void *) cfg);
|
||||
if (NULL != plugin)
|
||||
plugin->library_name = lib_name;
|
||||
else
|
||||
if (NULL == plugin)
|
||||
{
|
||||
GNUNET_free (lib_name);
|
||||
return NULL;
|
||||
}
|
||||
plugin->library_name = lib_name;
|
||||
GNUNET_array_append (kyc_logics,
|
||||
num_kyc_logics,
|
||||
plugin);
|
||||
|
1386
src/kyclogic/plugin_kyclogic_kycaid.c
Normal file
1386
src/kyclogic/plugin_kyclogic_kycaid.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -68,6 +68,11 @@ struct TALER_KYCLOGIC_ProviderDetails
|
||||
*/
|
||||
struct PluginState *ps;
|
||||
|
||||
/**
|
||||
* Configuration section that configured us.
|
||||
*/
|
||||
char *section;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -130,6 +135,11 @@ struct TALER_KYCLOGIC_ProofHandle
|
||||
* Closure for @e cb.
|
||||
*/
|
||||
void *cb_cls;
|
||||
|
||||
/**
|
||||
* Connection we are handling.
|
||||
*/
|
||||
struct MHD_Connection *connection;
|
||||
};
|
||||
|
||||
|
||||
@ -164,9 +174,25 @@ struct TALER_KYCLOGIC_WebhookHandle
|
||||
*/
|
||||
const struct TALER_KYCLOGIC_ProviderDetails *pd;
|
||||
|
||||
/**
|
||||
* Connection we are handling.
|
||||
*/
|
||||
struct MHD_Connection *connection;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Release configuration resources previously loaded
|
||||
*
|
||||
* @param[in] pd configuration to release
|
||||
*/
|
||||
static void
|
||||
template_unload_configuration (struct TALER_KYCLOGIC_ProviderDetails *pd)
|
||||
{
|
||||
GNUNET_free (pd);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load the configuration of the KYC provider.
|
||||
*
|
||||
@ -183,20 +209,22 @@ template_load_configuration (void *cls,
|
||||
|
||||
pd = GNUNET_new (struct TALER_KYCLOGIC_ProviderDetails);
|
||||
pd->ps = ps;
|
||||
pd->section = GNUNET_strdup (provider_section_name);
|
||||
GNUNET_break (0); // FIXME: parse config here!
|
||||
return pd;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Release configuration resources previously loaded
|
||||
* Cancel KYC check initiation.
|
||||
*
|
||||
* @param[in] pd configuration to release
|
||||
* @param[in] ih handle of operation to cancel
|
||||
*/
|
||||
static void
|
||||
template_unload_configuration (struct TALER_KYCLOGIC_ProviderDetails *pd)
|
||||
template_initiate_cancel (struct TALER_KYCLOGIC_InitiateHandle *ih)
|
||||
{
|
||||
GNUNET_free (pd);
|
||||
GNUNET_break (0); // FIXME: add cancel logic here
|
||||
GNUNET_free (ih);
|
||||
}
|
||||
|
||||
|
||||
@ -233,15 +261,15 @@ template_initiate (void *cls,
|
||||
|
||||
|
||||
/**
|
||||
* Cancel KYC check initiation.
|
||||
* Cancel KYC proof.
|
||||
*
|
||||
* @param[in] ih handle of operation to cancel
|
||||
* @param[in] ph handle of operation to cancel
|
||||
*/
|
||||
static void
|
||||
template_initiate_cancel (struct TALER_KYCLOGIC_InitiateHandle *ih)
|
||||
template_proof_cancel (struct TALER_KYCLOGIC_ProofHandle *ph)
|
||||
{
|
||||
GNUNET_break (0); // FIXME: add cancel logic here
|
||||
GNUNET_free (ih);
|
||||
GNUNET_break (0); // FIXME: stop activities...
|
||||
GNUNET_free (ph);
|
||||
}
|
||||
|
||||
|
||||
@ -280,6 +308,7 @@ template_proof (void *cls,
|
||||
ph->pd = pd;
|
||||
ph->cb = cb;
|
||||
ph->cb_cls = cb_cls;
|
||||
ph->connection = connection;
|
||||
|
||||
GNUNET_break (0); // FIXME: start check!
|
||||
return ph;
|
||||
@ -287,15 +316,15 @@ template_proof (void *cls,
|
||||
|
||||
|
||||
/**
|
||||
* Cancel KYC proof.
|
||||
* Cancel KYC webhook execution.
|
||||
*
|
||||
* @param[in] ph handle of operation to cancel
|
||||
* @param[in] wh handle of operation to cancel
|
||||
*/
|
||||
static void
|
||||
template_proof_cancel (struct TALER_KYCLOGIC_ProofHandle *ph)
|
||||
template_webhook_cancel (struct TALER_KYCLOGIC_WebhookHandle *wh)
|
||||
{
|
||||
GNUNET_break (0); // FIXME: stop activities...
|
||||
GNUNET_free (ph);
|
||||
GNUNET_break (0); /* FIXME: stop activity */
|
||||
GNUNET_free (wh);
|
||||
}
|
||||
|
||||
|
||||
@ -334,24 +363,12 @@ template_webhook (void *cls,
|
||||
wh->cb_cls = cb_cls;
|
||||
wh->ps = ps;
|
||||
wh->pd = pd;
|
||||
wh->connection = connection;
|
||||
GNUNET_break (0); /* FIXME: start activity */
|
||||
return wh;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Cancel KYC webhook execution.
|
||||
*
|
||||
* @param[in] wh handle of operation to cancel
|
||||
*/
|
||||
static void
|
||||
template_webhook_cancel (struct TALER_KYCLOGIC_WebhookHandle *wh)
|
||||
{
|
||||
GNUNET_break (0); /* FIXME: stop activity */
|
||||
GNUNET_free (wh);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize Template.0 KYC logic plugin
|
||||
*
|
||||
|
@ -1281,6 +1281,8 @@ initiate_cb (
|
||||
cmd_provider_user_id = GNUNET_strdup (provider_user_id);
|
||||
if (NULL != provider_legitimization_id)
|
||||
cmd_provider_legitimization_id = GNUNET_strdup (provider_legitimization_id);
|
||||
if (! run_webservice)
|
||||
GNUNET_SCHEDULER_shutdown ();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user