[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] branch master updated: more work on backup reducer
From: |
gnunet |
Subject: |
[taler-anastasis] branch master updated: more work on backup reducer |
Date: |
Wed, 24 Feb 2021 21:58:09 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository anastasis.
The following commit(s) were added to refs/heads/master by this push:
new 62bcd10 more work on backup reducer
62bcd10 is described below
commit 62bcd1085762950cd0536157b0ff2b80e735773a
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Feb 24 21:58:07 2021 +0100
more work on backup reducer
---
src/backend/anastasis-httpd_config.c | 4 +--
src/cli/Makefile.am | 2 ++
src/cli/resources/03-backup.json | 8 +++---
.../resources/{03-backup.json => 04-backup.json} | 27 ++++++++++++++----
.../test_anastasis_reducer_add_authentication.sh | 32 ++++++++++++----------
src/include/anastasis.h | 10 +++----
src/include/anastasis_service.h | 10 +++----
src/lib/anastasis_backup.c | 28 +++++++++----------
src/lib/anastasis_recovery.c | 30 ++++++++++----------
src/reducer/anastasis_api_backup_redux.c | 18 ++++++------
src/reducer/anastasis_api_recovery_redux.c | 6 ++--
src/reducer/anastasis_api_redux.c | 12 ++++----
src/restclient/anastasis_api_config.c | 4 +--
src/restclient/anastasis_api_truth_store.c | 4 +--
14 files changed, 108 insertions(+), 87 deletions(-)
diff --git a/src/backend/anastasis-httpd_config.c
b/src/backend/anastasis-httpd_config.c
index 0657a51..c23614e 100644
--- a/src/backend/anastasis-httpd_config.c
+++ b/src/backend/anastasis-httpd_config.c
@@ -64,7 +64,7 @@ add_methods (void *cls,
return;
}
method = json_pack ("{s:s, s:o}",
- "method",
+ "type",
section,
"cost",
TALER_JSON_from_amount (&cost));
@@ -86,7 +86,7 @@ AH_handler_config (struct AH_RequestHandler *rh,
json_t *method;
method = json_pack ("{s:s, s:o}",
- "method",
+ "type",
"question",
"cost",
TALER_JSON_from_amount (&AH_question_cost));
diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am
index aff7925..c3f0d32 100644
--- a/src/cli/Makefile.am
+++ b/src/cli/Makefile.am
@@ -36,6 +36,8 @@ EXTRA_DIST = \
resources/00-backup.json \
resources/01-backup.json \
resources/02-backup.json \
+ resources/03-backup.json \
+ resources/04-backup.json \
resources/00-recovery.json \
resources/01-recovery.json \
resources/02-recovery.json
diff --git a/src/cli/resources/03-backup.json b/src/cli/resources/03-backup.json
index c433dcf..3012663 100644
--- a/src/cli/resources/03-backup.json
+++ b/src/cli/resources/03-backup.json
@@ -42,7 +42,7 @@
"http://localhost:8086/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -60,7 +60,7 @@
"http://localhost:8087/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -78,7 +78,7 @@
"http://localhost:8088/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -96,7 +96,7 @@
"http://localhost:8089/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
diff --git a/src/cli/resources/03-backup.json b/src/cli/resources/04-backup.json
similarity index 88%
copy from src/cli/resources/03-backup.json
copy to src/cli/resources/04-backup.json
index c433dcf..63bc50f 100644
--- a/src/cli/resources/03-backup.json
+++ b/src/cli/resources/04-backup.json
@@ -42,7 +42,7 @@
"http://localhost:8086/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -60,7 +60,7 @@
"http://localhost:8087/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -78,7 +78,7 @@
"http://localhost:8088/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -96,7 +96,7 @@
"http://localhost:8089/": {
"methods": [
{
- "method": "question",
+ "type": "question",
"usage_fee": "TESTKUDOS:0"
}
],
@@ -153,5 +153,22 @@
"birth_year": 2000,
"birth_month": 1,
"birth_day": 1
- }
+ },
+ "authentication_methods": [
+ {
+ "method": "question",
+ "instructions": "Whats your name?",
+ "challenge": "Hans"
+ },
+ {
+ "method": "question",
+ "instructions": "Whats x your name?",
+ "challenge": "Hansx"
+ },
+ {
+ "method": "question",
+ "instructions": "Where do you live?",
+ "challenge": "Mars"
+ }
+ ]
}
\ No newline at end of file
diff --git a/src/cli/test_anastasis_reducer_add_authentication.sh
b/src/cli/test_anastasis_reducer_add_authentication.sh
index 062d23b..9fd3a95 100755
--- a/src/cli/test_anastasis_reducer_add_authentication.sh
+++ b/src/cli/test_anastasis_reducer_add_authentication.sh
@@ -50,10 +50,9 @@ echo -n "Test add authentication ..."
anastasis-reducer -a \
'{"authentication_method": {
"method": "question",
- "data": {
- "question": "Whats your name?",
- "answer": "Hans"
- }}}' \
+ "instructions": "Whats your name?",
+ "challenge": "Hans"
+ } }' \
add_authentication resources/03-backup.json $TFILE
STATE=`jq -r -e .backup_state < $TFILE`
@@ -68,36 +67,37 @@ then
exit_fail "Expected array length to be 1, got '$ARRAY_LENGTH'"
fi
+echo -n "."
# Second method
anastasis-reducer -a \
'{"authentication_method": {
"method": "question",
- "data": {
- "question": "How old are you?",
- "answer": "123"
- }}}' \
+ "instructions": "How old are you?",
+ "challenge": "123"
+ }}' \
add_authentication $TFILE $SFILE
-STATE=`jq -r -e .backup_state < $TFILE`
+STATE=`jq -r -e .backup_state < $SFILE`
if test "$STATE" != "AUTHENTICATIONS_EDITING"
then
exit_fail "Expected new state to be 'AUTHENTICATIONS_EDITING', got
'$STATE'"
fi
-ARRAY_LENGTH=`jq -r -e '.authentication_methods | length' < $TFILE`
+ARRAY_LENGTH=`jq -r -e '.authentication_methods | length' < $SFILE`
if test $ARRAY_LENGTH != 2
then
exit_fail "Expected array length to be 2, got '$ARRAY_LENGTH'"
fi
+echo -n "."
+
# Third method
anastasis-reducer -a \
'{"authentication_method": {
"method": "question",
- "data": {
- "question": "Where do you live?",
- "answer": "Mars"
- }}}' \
+ "instructions": "Where do you live?",
+ "challenge": "Mars"
+ }}' \
add_authentication $SFILE $TFILE
STATE=`jq -r -e .backup_state < $TFILE`
@@ -106,10 +106,12 @@ then
exit_fail "Expected new state to be 'AUTHENTICATIONS_EDITING', got
'$STATE'"
fi
-ARRAY_LENGTH=`jq -r -e '.authentication_methods | length' < $SFILE`
+ARRAY_LENGTH=`jq -r -e '.authentication_methods | length' < $TFILE`
if test $ARRAY_LENGTH != 3
then
exit_fail "Expected array length to be 3, got '$ARRAY_LENGTH'"
fi
+echo " OK"
+
exit 0
diff --git a/src/include/anastasis.h b/src/include/anastasis.h
index 0c53ceb..bad431c 100644
--- a/src/include/anastasis.h
+++ b/src/include/anastasis.h
@@ -60,9 +60,9 @@ struct ANASTASIS_ChallengeDetails
struct TALER_Amount cost;
/**
- * Which method is this challenge (E-Mail, Security Question, SMS...)
+ * Which type is this challenge (E-Mail, Security Question, SMS...)
*/
- const char *method;
+ const char *type;
/**
* Instructions for solving the challenge (generic, set client-side
@@ -572,8 +572,8 @@ typedef void
*
* @param ctx the CURL context used to connect to the backend
* @param user_id user identifier derived from user data and backend salt
- * @param method defines the method of the challenge (secure question, sms,
email)
- * @param instructions depending on method! usually only for security
question/answer!
+ * @param type defines the type of the challenge (secure question, sms, email)
+ * @param instructions depending on @a type! usually only for security
question/answer!
* @param mime_type format of the challenge
* @param salt the server salt
* @param truth_data contains the truth for this challenge i.e. phone number,
email address
@@ -587,7 +587,7 @@ struct ANASTASIS_TruthUpload *
ANASTASIS_truth_upload (struct GNUNET_CURL_Context *ctx,
const struct ANASTASIS_CRYPTO_UserIdentifierP *user_id,
const char *provider_url,
- const char *method,
+ const char *type,
const char *instructions,
const char *mime_type,
const struct ANASTASIS_CRYPTO_PowSalt *salt,
diff --git a/src/include/anastasis_service.h b/src/include/anastasis_service.h
index 1cfd4db..8ecd142 100644
--- a/src/include/anastasis_service.h
+++ b/src/include/anastasis_service.h
@@ -35,9 +35,9 @@
struct ANASTASIS_AuthorizationMethodConfig
{
/**
- * Name of the method, i.e. "question".
+ * Type of the method, i.e. "question".
*/
- const char *name;
+ const char *type;
/**
* Fee charged for accessing key share using this method.
@@ -626,11 +626,11 @@ typedef void
* @param backend_url backend's base URL, including final "/"
* @param uuid unique identfication of the Truth Upload
* @param prev_truth_data_hash hash of the previous truth upload, NULL for the
first upload ever
- * @param method authorization method
+ * @param type type of the authorization method
* @param encrypted_keyshare key material to return to the client upon
authorization
* @param truth_mime mime type of @e encrypted_truth (after decryption)
* @param encrypted_truth_size number of bytes in @e encrypted_truth
- * @param encrypted_truth contains the @a method-specific authorization data
+ * @param encrypted_truth contains the @a type-specific authorization data
* @param payment_requested true if we want to pay, even if not yet required
* @param paid_order_id provides order ID of a previous payment for this
truth, or NULL
* @param cb callback processing the response from /truth
@@ -642,7 +642,7 @@ ANASTASIS_truth_store (
struct GNUNET_CURL_Context *ctx,
const char *backend_url,
const struct ANASTASIS_CRYPTO_TruthUUIDP *uuid,
- const char *method,
+ const char *type,
const struct ANASTASIS_CRYPTO_EncryptedKeyShareP *encrypted_keyshare,
const char *truth_mime,
size_t encrypted_truth_size,
diff --git a/src/lib/anastasis_backup.c b/src/lib/anastasis_backup.c
index 3fc12d0..b6b792f 100644
--- a/src/lib/anastasis_backup.c
+++ b/src/lib/anastasis_backup.c
@@ -55,7 +55,7 @@ struct ANASTASIS_Truth
/**
* Method used for this truth
*/
- char *method;
+ char *type;
/**
* Instructions for the user to recover this truth.
@@ -83,14 +83,14 @@ ANASTASIS_truth_from_json (const json_t *json)
{
struct ANASTASIS_Truth *t = GNUNET_new (struct ANASTASIS_Truth);
const char *url;
- const char *method;
+ const char *type;
const char *instructions;
const char *mime_type;
struct GNUNET_JSON_Specification spec[] = {
GNUNET_JSON_spec_string ("url",
&url),
- GNUNET_JSON_spec_string ("method",
- &method),
+ GNUNET_JSON_spec_string ("type",
+ &type),
GNUNET_JSON_spec_string ("instructions",
&instructions),
GNUNET_JSON_spec_string ("mime_type",
@@ -116,7 +116,7 @@ ANASTASIS_truth_from_json (const json_t *json)
return NULL;
}
t->url = GNUNET_strdup (url);
- t->method = GNUNET_strdup (method);
+ t->type = GNUNET_strdup (type);
t->instructions = GNUNET_strdup (instructions);
t->mime_type = GNUNET_strdup (mime_type);
return t;
@@ -148,8 +148,8 @@ ANASTASIS_truth_to_json (const struct ANASTASIS_Truth *t)
GNUNET_JSON_from_data_auto (&t->salt),
"url",
json_string (t->url),
- "method",
- json_string (t->method),
+ "type",
+ json_string (t->type),
"instructions",
json_string (t->instructions),
"mime_type",
@@ -229,7 +229,7 @@ struct ANASTASIS_TruthUpload *
ANASTASIS_truth_upload (struct GNUNET_CURL_Context *ctx,
const struct ANASTASIS_CRYPTO_UserIdentifierP *user_id,
const char *provider_url,
- const char *method,
+ const char *type,
const char *instructions,
const char *mime_type,
const struct ANASTASIS_CRYPTO_PowSalt *salt,
@@ -255,7 +255,7 @@ ANASTASIS_truth_upload (struct GNUNET_CURL_Context *ctx,
tu->tc_cls = tc_cls;
t = GNUNET_new (struct ANASTASIS_Truth);
t->url = GNUNET_strdup (provider_url);
- t->method = GNUNET_strdup (method);
+ t->type = GNUNET_strdup (type);
t->instructions = (NULL != instructions)
? GNUNET_strdup (instructions)
: NULL;
@@ -282,7 +282,7 @@ ANASTASIS_truth_upload (struct GNUNET_CURL_Context *ctx,
tu->tso = ANASTASIS_truth_store (tu->ctx,
t->url,
&t->uuid,
- method,
+ type,
&encrypted_key_share,
mime_type,
encrypted_truth_size,
@@ -324,7 +324,7 @@ void
ANASTASIS_truth_free (struct ANASTASIS_Truth *t)
{
GNUNET_free (t->url);
- GNUNET_free (t->method);
+ GNUNET_free (t->type);
GNUNET_free (t->instructions);
GNUNET_free (t->mime_type);
GNUNET_free (t);
@@ -369,7 +369,7 @@ truth_dup (const struct ANASTASIS_Truth *t)
*d = *t;
d->url = GNUNET_strdup (t->url);
- d->method = GNUNET_strdup (t->method);
+ d->type = GNUNET_strdup (t->type);
d->instructions = GNUNET_strdup (t->instructions);
d->mime_type = GNUNET_strdup (t->mime_type);
return d;
@@ -768,8 +768,8 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
&pt->truth_key),
"salt", GNUNET_JSON_from_data_auto (
&pt->salt),
- "escrow_method",
- pt->method)))
+ "escrow_type",
+ pt->type)))
{
GNUNET_break (0);
json_decref (esc_methods);
diff --git a/src/lib/anastasis_recovery.c b/src/lib/anastasis_recovery.c
index 9d3ef20..111ffca 100644
--- a/src/lib/anastasis_recovery.c
+++ b/src/lib/anastasis_recovery.c
@@ -72,9 +72,9 @@ struct ANASTASIS_Challenge
char *url;
/**
- * Which method is this challenge (E-Mail, Security Question, SMS...)
+ * What is the type of this challenge (E-Mail, Security Question, SMS...)
*/
- char *method;
+ char *type;
/**
* Instructions for solving the challenge (generic, set client-side
@@ -675,7 +675,7 @@ policy_lookup_cb (void *cls,
struct ANASTASIS_Challenge *cs = &r->cs[i];
const char *instructions;
const char *url;
- const char *escrow_method;
+ const char *escrow_type;
struct GNUNET_JSON_Specification spec[] = {
GNUNET_JSON_spec_fixed_auto ("uuid",
&cs->ci.uuid),
@@ -687,8 +687,8 @@ policy_lookup_cb (void *cls,
&cs->truth_key),
GNUNET_JSON_spec_fixed_auto ("salt",
&cs->truth_salt),
- GNUNET_JSON_spec_string ("escrow_method",
- &escrow_method),
+ GNUNET_JSON_spec_string ("escrow_type",
+ &escrow_type),
GNUNET_JSON_spec_end ()
};
@@ -711,8 +711,8 @@ policy_lookup_cb (void *cls,
return;
}
cs->url = GNUNET_strdup (url);
- cs->method = GNUNET_strdup (escrow_method);
- cs->ci.method = cs->method;
+ cs->type = GNUNET_strdup (escrow_type);
+ cs->ci.type = cs->type;
cs->instructions = GNUNET_strdup (instructions);
cs->ci.instructions = cs->instructions;
}
@@ -929,8 +929,8 @@ ANASTASIS_recovery_serialize (const struct
ANASTASIS_Recovery *r)
: NULL,
"url",
c->url,
- "method",
- c->method,
+ "type",
+ c->type,
"instructions",
c->instructions,
"cost",
@@ -991,7 +991,7 @@ parse_cs_array (struct ANASTASIS_Recovery *r,
struct ANASTASIS_Challenge *c = &r->cs[n_index];
const char *instructions;
const char *url;
- const char *escrow_method;
+ const char *escrow_type;
struct GNUNET_JSON_Specification spec[] = {
GNUNET_JSON_spec_fixed_auto ("uuid",
&c->ci.uuid),
@@ -1003,8 +1003,8 @@ parse_cs_array (struct ANASTASIS_Recovery *r,
&c->truth_key),
GNUNET_JSON_spec_fixed_auto ("truth_salt",
&c->truth_salt),
- GNUNET_JSON_spec_string ("method",
- &escrow_method),
+ GNUNET_JSON_spec_string ("type",
+ &escrow_type),
TALER_JSON_spec_amount ("cost",
&c->ci.cost),
GNUNET_JSON_spec_mark_optional (
@@ -1024,8 +1024,8 @@ parse_cs_array (struct ANASTASIS_Recovery *r,
return GNUNET_SYSERR;
}
c->url = GNUNET_strdup (url);
- c->method = GNUNET_strdup (escrow_method);
- c->ci.method = c->method;
+ c->type = GNUNET_strdup (escrow_type);
+ c->ci.type = c->type;
c->instructions = GNUNET_strdup (instructions);
c->ci.instructions = c->instructions;
if (NULL != json_object_get (cs,
@@ -1268,7 +1268,7 @@ ANASTASIS_recovery_abort (struct ANASTASIS_Recovery *r)
struct ANASTASIS_Challenge *cs = r->ri.cs[i];
GNUNET_free (cs->url);
- GNUNET_free (cs->method);
+ GNUNET_free (cs->type);
GNUNET_free (cs->instructions);
}
GNUNET_free (r->ri.cs);
diff --git a/src/reducer/anastasis_api_backup_redux.c
b/src/reducer/anastasis_api_backup_redux.c
index 9d9193e..4d6067b 100644
--- a/src/reducer/anastasis_api_backup_redux.c
+++ b/src/reducer/anastasis_api_backup_redux.c
@@ -158,7 +158,7 @@ add_authentication (json_t *state,
ANASTASIS_redux_fail_ (cb,
cb_cls,
TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
- "'challenge' field missing for authorization
method");
+ "'challenge' field missing from
'authentication_method'");
return NULL;
}
/* Check we know at least one provider that supports this method */
@@ -185,7 +185,7 @@ add_authentication (json_t *state,
const char *name;
name = json_string_value (json_object_get (method,
- "name"));
+ "type"));
GNUNET_break (NULL != name);
if ( (NULL != name) &&
(0 == strcmp (name,
@@ -214,6 +214,13 @@ add_authentication (json_t *state,
auth_method_arr = json_object_get (state,
"authentication_methods");
+ if (NULL == auth_method_arr)
+ {
+ auth_method_arr = json_array ();
+ GNUNET_assert (0 == json_object_set_new (state,
+ "authentication_methods",
+ auth_method_arr));
+ }
if (! json_is_array (auth_method_arr))
{
ANASTASIS_redux_fail_ (cb,
@@ -222,13 +229,6 @@ add_authentication (json_t *state,
"'authentication_methods' must be an array");
return NULL;
}
- if (NULL == auth_method_arr)
- {
- auth_method_arr = json_array ();
- GNUNET_assert (0 == json_object_set_new (state,
- "authentication_methods",
- auth_method_arr));
- }
GNUNET_assert (0 ==
json_array_append (auth_method_arr,
method));
diff --git a/src/reducer/anastasis_api_recovery_redux.c
b/src/reducer/anastasis_api_recovery_redux.c
index 6bfa112..9b48f61 100644
--- a/src/reducer/anastasis_api_recovery_redux.c
+++ b/src/reducer/anastasis_api_recovery_redux.c
@@ -486,7 +486,7 @@ run_challenge_cb (void *cls,
&cd->uuid))
{
if (0 == strcmp ("question",
- cd->method))
+ cd->type))
{
/* security question, answer must be a string */
json_t *janswer = json_object_get (sctx->args,
@@ -1105,8 +1105,8 @@ policy_lookup_cb (void *cls,
GNUNET_JSON_from_data_auto (&cd->uuid),
"cost",
TALER_JSON_from_amount (&cd->cost),
- "method",
- cd->method,
+ "type",
+ cd->type,
"instructions",
cd->instructions,
"solved",
diff --git a/src/reducer/anastasis_api_redux.c
b/src/reducer/anastasis_api_redux.c
index 7fd20c9..a52dbc2 100644
--- a/src/reducer/anastasis_api_redux.c
+++ b/src/reducer/anastasis_api_redux.c
@@ -94,9 +94,9 @@ struct ConfigReduxWaiting
struct AuthorizationMethodConfig
{
/**
- * Name of the method, i.e. "question".
+ * Type of the method, i.e. "question".
*/
- char *name;
+ char *type;
/**
* Fee charged for accessing key share using this method.
@@ -350,7 +350,7 @@ free_config_request (struct ConfigRequest *cr)
GNUNET_free (cr->url);
GNUNET_free (cr->business_name);
for (unsigned int i = 0; i<cr->methods_length; i++)
- GNUNET_free (cr->methods[i].name);
+ GNUNET_free (cr->methods[i].type);
GNUNET_free (cr->methods);
GNUNET_free (cr);
}
@@ -495,8 +495,8 @@ notify_waiting (struct ConfigRequest *cr)
{
struct AuthorizationMethodConfig *method = &cr->methods[i];
json_t *mj = json_pack ("{s:s, s:o}",
- "method",
- method->name,
+ "type",
+ method->type,
"usage_fee",
TALER_JSON_from_amount (&method->usage_fee));
@@ -574,7 +574,7 @@ config_cb (void *cls,
struct AuthorizationMethodConfig);
for (unsigned int i = 0; i<acfg->methods_length; i++)
{
- cr->methods[i].name = GNUNET_strdup (acfg->methods[i].name);
+ cr->methods[i].type = GNUNET_strdup (acfg->methods[i].type);
cr->methods[i].usage_fee = acfg->methods[i].usage_fee;
}
cr->methods_length = acfg->methods_length;
diff --git a/src/restclient/anastasis_api_config.c
b/src/restclient/anastasis_api_config.c
index a7373b6..be7272b 100644
--- a/src/restclient/anastasis_api_config.c
+++ b/src/restclient/anastasis_api_config.c
@@ -154,8 +154,8 @@ handle_config_finished (void *cls,
{
struct ANASTASIS_AuthorizationMethodConfig *m = &mcfg[i];
struct GNUNET_JSON_Specification spec[] = {
- GNUNET_JSON_spec_string ("method",
- &m->name),
+ GNUNET_JSON_spec_string ("type",
+ &m->type),
TALER_JSON_spec_amount ("cost",
&m->usage_fee),
GNUNET_JSON_spec_end ()
diff --git a/src/restclient/anastasis_api_truth_store.c
b/src/restclient/anastasis_api_truth_store.c
index 5d5723c..977c1c9 100644
--- a/src/restclient/anastasis_api_truth_store.c
+++ b/src/restclient/anastasis_api_truth_store.c
@@ -307,12 +307,12 @@ ANASTASIS_truth_store (
json_t *truth_data;
truth_data = json_pack ("{s:o," /* encrypted KeyShare */
- " s:s," /* method */
+ " s:s," /* type */
" s:o," /* nonce */
" s:s}", /* truth_mime */
"keyshare_data",
GNUNET_JSON_from_data_auto (encrypted_keyshare),
- "method",
+ "type",
method,
"encrypted_truth",
GNUNET_JSON_from_data (encrypted_truth,
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-anastasis] branch master updated: more work on backup reducer,
gnunet <=