anastasis

Credential backup and recovery protocol and service
Log | Files | Refs | Submodules | README | LICENSE

commit fcfd43286a8157c15386e734353a5337616f89ea
parent d7498cd182862d7aee84b3fd09238ef26d0c36a9
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu, 30 Jul 2026 10:40:06 +0200

implement #11645

Diffstat:
Mdoc/sphinx/rest.rst | 8+++++++-
Msrc/backend/anastasis-httpd_config.c | 4+++-
Msrc/restclient/anastasis_api_config.c | 8++++----
3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/doc/sphinx/rest.rst b/doc/sphinx/rest.rst @@ -397,7 +397,7 @@ Receiving Configuration .. http:get:: /config Obtain the configuration details of the escrow provider. - This specification corresponds to ``current`` protocol being version **0**. + This specification corresponds to ``current`` protocol being version **2**. **Response:** @@ -417,6 +417,12 @@ Receiving Configuration // The format is "current:revision:age". version: string; + // Release version of the source code. + // The format is MAJOR.MINOR.MICOR[-GITDATA] + // and generally follows the "-v" option of the codebase. + // Since **v2**. + build_version: string; + // URN of the implementation (needed to interpret 'revision' in version). // @since v0, may become mandatory in the future. implementation?: string; diff --git a/src/backend/anastasis-httpd_config.c b/src/backend/anastasis-httpd_config.c @@ -108,7 +108,9 @@ AH_handler_config (struct AH_RequestHandler *rh, use the full context string, so every key derived by an older client differs and backups made with one cannot be recovered by the other. */ GNUNET_JSON_pack_string ("version", - "1:0:0"), + "2:0:1"), + GNUNET_JSON_pack_string ("build_version", + PACKAGE_VERSION), GNUNET_JSON_pack_string ("implementation", "urn:net:taler:specs:anastasis:c-reference"), GNUNET_JSON_pack_string ("business_name", diff --git a/src/restclient/anastasis_api_config.c b/src/restclient/anastasis_api_config.c @@ -35,15 +35,15 @@ * * Raised to 1 when the key derivation was fixed to use the full context * string: every key derived by a 0:x:x client differs, so backups written by - * one side cannot be recovered by the other. The age stays 0 because there - * is no compatibility to keep. + * one side cannot be recovered by the other. Hence 0 must stay outside of + * the compatibility range. */ -#define ANASTASIS_PROTOCOL_CURRENT 1 +#define ANASTASIS_PROTOCOL_CURRENT 2 /** * How many versions are we backwards compatible with? */ -#define ANASTASIS_PROTOCOL_AGE 0 +#define ANASTASIS_PROTOCOL_AGE 1 struct ANASTASIS_ConfigOperation