[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] 01/02: worked on server
From: |
gnunet |
Subject: |
[taler-anastasis] 01/02: worked on server |
Date: |
Wed, 27 Nov 2019 21:05:13 +0100 |
This is an automated email from the git hooks/post-receive script.
dennis-neufeld pushed a commit to branch master
in repository anastasis.
commit c158b47043ef889150d27c4cc25767f15ee824b6
Author: Dennis Neufeld <address@hidden>
AuthorDate: Wed Nov 27 20:00:53 2019 +0000
worked on server
---
src/backend/Makefile.am | 1 +
src/backend/anastasis-httpd | 60 +-
src/backend/anastasis-httpd.c | 24 +-
src/backend/anastasis-httpd.h | 24 +-
src/backend/anastasis-httpd_policy.c | 669 +++------------------
src/backend/anastasis-httpd_policy.c.uncrustify | 0
src/backend/anastasis-httpd_policy.h | 15 +
...pd_policy.c => anastasis-httpd_policy_upload.c} | 644 +++++++++++---------
src/backend/anastasis.conf | 3 +
src/include/Makefile.in | 14 +-
src/include/anastasis_database_plugin.h | 175 ++++--
src/lib/auditor.in | Bin 0 -> 33792 bytes
.../.local/share/taler/auditors/auditor.out | Bin 42328 -> 42328 bytes
.../share/taler/exchange/live-keys/.gitignore | 1 +
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574613870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574776296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575218370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575380796000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575822870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575985296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576427370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576589796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577031870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577194296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577636370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577798796000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578240870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578403296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578845370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579007796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579449870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579612296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580054370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580216796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580658870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580821296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581263370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581425796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581867870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582030296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582472370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582634796000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583076870000000 | Bin 1087 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583239296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583681370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583843796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584285870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584448296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584890370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585052796000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585494870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585657296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586099370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586261796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586703870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586866296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587308370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587470796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587912870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588075296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588517370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588679796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589121870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589284296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589726370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589888796000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590330870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590493296000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590935370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591097796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591539870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591702296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592144370000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592306796000000 | Bin 0 -> 1088 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592748870000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592911296000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593353370000000 | Bin 1089 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593515796000000 | Bin 0 -> 1089 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593957870000000 | Bin 1088 -> 0 bytes
.../EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1594120296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1574613870000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1574776296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1575218370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1575380796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1575822870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1575985296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1576427370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1576589796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1577031870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1577194296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1577636370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1577798796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1578240870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1578403296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1578845370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1579007796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1579449870000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1579612296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1580054370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1580216796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1580658870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1580821296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1581263370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1581425796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1581867870000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1582030296000000 | Bin 0 -> 1087 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1582472370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1582634796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1583076870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1583239296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1583681370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1583843796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1584285870000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1584448296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1584890370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1585052796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1585494870000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1585657296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1586099370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1586261796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1586703870000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1586866296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1587308370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1587470796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1587912870000000 | Bin 1087 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1588075296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1588517370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1588679796000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1589121870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1589284296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1589726370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1589888796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1590330870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1590493296000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1590935370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1591097796000000 | Bin 0 -> 1088 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1591539870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1591702296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1592144370000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1592306796000000 | Bin 0 -> 1087 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1592748870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1592911296000000 | Bin 0 -> 1089 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1593353370000000 | Bin 1088 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1593515796000000 | Bin 0 -> 1087 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1593957870000000 | Bin 1089 -> 0 bytes
.../EUR_0_1-V0HADRAEFKQ3N2YN2720/1594120296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1574613870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1574776296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1575218370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1575380796000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1575822870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1575985296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1576427370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1576589796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1577031870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1577194296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1577636370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1577798796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1578240870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1578403296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1578845370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1579007796000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1579449870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1579612296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1580054370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1580216796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1580658870000000 | Bin 1087 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1580821296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1581263370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1581425796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1581867870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1582030296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1582472370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1582634796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1583076870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1583239296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1583681370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1583843796000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1584285870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1584448296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1584890370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1585052796000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1585494870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1585657296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1586099370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1586261796000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1586703870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1586866296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1587308370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1587470796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1587912870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1588075296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1588517370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1588679796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1589121870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1589284296000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1589726370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1589888796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1590330870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1590493296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1590935370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1591097796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1591539870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1591702296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1592144370000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1592306796000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1592748870000000 | Bin 1088 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1592911296000000 | Bin 0 -> 1088 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1593353370000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1593515796000000 | Bin 0 -> 1089 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1593957870000000 | Bin 1089 -> 0 bytes
.../EUR_1-9EJZYC2VQ92ZY19Z3F71/1594120296000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1574613870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1574776296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1575218370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1575380796000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1575822870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1575985296000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1576427370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1576589796000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1577031870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1577194296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1577636370000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1577798796000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1578240870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1578403296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1578845370000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1579007796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1579449870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1579612296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1580054370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1580216796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1580658870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1580821296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1581263370000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1581425796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1581867870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1582030296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1582472370000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1582634796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1583076870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1583239296000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1583681370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1583843796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1584285870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1584448296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1584890370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1585052796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1585494870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1585657296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1586099370000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1586261796000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1586703870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1586866296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1587308370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1587470796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1587912870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1588075296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1588517370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1588679796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1589121870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1589284296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1589726370000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1589888796000000 | Bin 0 -> 1087 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1590330870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1590493296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1590935370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1591097796000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1591539870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1591702296000000 | Bin 0 -> 1088 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1592144370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1592306796000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1592748870000000 | Bin 1089 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1592911296000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1593353370000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1593515796000000 | Bin 0 -> 1089 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1593957870000000 | Bin 1088 -> 0 bytes
.../EUR_5-5JB5S1XBPG62JD2PTYWT/1594120296000000 | Bin 0 -> 1089 bytes
.../exchange/live-keys/signkeys/1574613870000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1574776296000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1577033070000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1577195496000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1579452270000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1579614696000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1581871470000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1582033896000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1584290670000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1584453096000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1586709870000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1586872296000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1589129070000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1589291496000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1591548270000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1591710696000000 | Bin 0 -> 192 bytes
.../exchange/live-keys/signkeys/1593967470000000 | Bin 192 -> 0 bytes
.../exchange/live-keys/signkeys/1594129896000000 | Bin 0 -> 192 bytes
src/stasis/plugin_anastasis_postgres.c | 450 +++++++++-----
src/stasis/test_anastasis_db.c | 22 +
298 files changed, 1009 insertions(+), 1093 deletions(-)
diff --git a/src/backend/Makefile.am b/src/backend/Makefile.am
index f0bdbb8..4e41dfa 100644
--- a/src/backend/Makefile.am
+++ b/src/backend/Makefile.am
@@ -15,6 +15,7 @@ anastasis_httpd_SOURCES = \
anastasis-httpd.c anastasis-httpd.h \
anastasis-httpd_mhd.c anastasis-httpd_mhd.h \
anastasis-httpd_policy.c anastasis-httpd_policy.h \
+ anastasis-httpd_policy_upload.c \
anastasis-httpd_truth.c anastasis-httpd_truth.h
anastasis_httpd_LDADD = \
diff --git a/src/backend/anastasis-httpd b/src/backend/anastasis-httpd
index 18fa0c9..39f32b3 100755
--- a/src/backend/anastasis-httpd
+++ b/src/backend/anastasis-httpd
@@ -1,7 +1,7 @@
-#! /bin/bash
+#! /bin/sh
# anastasis-httpd - temporary wrapper script for .libs/anastasis-httpd
-# Generated by libtool (GNU libtool) 2.4.6 Debian-2.4.6-2
+# Generated by libtool (GNU libtool) 2.4.6.42-b88ce
#
# The anastasis-httpd program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
@@ -31,12 +31,12 @@ DUALCASE=1; export DUALCASE # for MKS sh
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-relink_command=""
+relink_command="(cd
/home/dennis/Nextcloud/Studium-BFH/Aktuell_HS2019/Project2/anastasis/src/backend;
{ test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=;
export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset
COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z
\"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=;
export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset
LD_RUN_PATH || { LD [...]
# This environment variable determines our operation mode.
if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
# install mode needs the following variables:
- generated_by_libtool_version='2.4.6'
+ generated_by_libtool_version='2.4.6.42-b88ce'
notinst_deplibs=' ../../src/util/libanastasisutil.la
../../src/stasis/libanastasisdb.la'
else
# When we are sourced in execute mode, $file and $ECHO are already set.
@@ -75,9 +75,9 @@ func_parse_lt_options ()
case "$lt_opt" in
--lt-debug) lt_option_debug=1 ;;
--lt-dump-script)
- lt_dump_D=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e
's%/[^/]*$%%'`
+ lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e
's%/[^/]*$%%'`
test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
- lt_dump_F=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e
's%^.*/%%'`
+ lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e
's%^.*/%%'`
cat "$lt_dump_D/$lt_dump_F"
exit 0
;;
@@ -90,7 +90,7 @@ func_parse_lt_options ()
# Print the debug banner immediately:
if test -n "$lt_option_debug"; then
- echo "anastasis-httpd:anastasis-httpd:$LINENO: libtool wrapper (GNU
libtool) 2.4.6 Debian-2.4.6-2" 1>&2
+ echo "anastasis-httpd:anastasis-httpd:$LINENO: libtool wrapper (GNU
libtool) 2.4.6.42-b88ce" 1>&2
fi
}
@@ -143,13 +143,13 @@ func_exec_program ()
func_parse_lt_options "$0" ${1+"$@"}
# Find the directory that this script lives in.
- thisdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'`
+ thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
test "x$thisdir" = "x$file" && thisdir=.
# Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+ file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
while test -n "$file"; do
- destdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'`
+ destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
# If there was a directory component, then change thisdir.
if test "x$destdir" != "x$file"; then
@@ -159,8 +159,8 @@ func_exec_program ()
esac
fi
- file=`$ECHO "$file" | /bin/sed 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+ file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+ file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
done
# Usually 'no', except on cygwin/mingw when embedded into
@@ -173,7 +173,7 @@ func_exec_program ()
fi
# remove .libs from thisdir
case "$thisdir" in
- *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /bin/sed 's%[\\/][^\\/]*$%%'` ;;
+ *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed
's%[\\/][^\\/]*$%%'` ;;
.libs ) thisdir=. ;;
esac
fi
@@ -182,20 +182,38 @@ func_exec_program ()
absdir=`cd "$thisdir" && pwd`
test -n "$absdir" && thisdir="$absdir"
- program='anastasis-httpd'
+ program=lt-'anastasis-httpd'
progdir="$thisdir/.libs"
+ if test ! -f "$progdir/$program" ||
+ { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null |
/usr/bin/sed 1q`; \
+ test "X$file" != "X$progdir/$program"; }; then
- if test -f "$progdir/$program"; then
- # Add our own library path to LD_LIBRARY_PATH
-
LD_LIBRARY_PATH="/home/grothoff/taler/anastasis/src/util/.libs:/home/grothoff/taler/anastasis/src/stasis/.libs:/home/grothoff/lib:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
+ file="$$-$program"
- # Some systems cannot cope with colon-terminated LD_LIBRARY_PATH
- # The second colon is a workaround for a bug in BeOS R4 sed
- LD_LIBRARY_PATH=`$ECHO "$LD_LIBRARY_PATH" | /bin/sed 's/::*$//'`
+ if test ! -d "$progdir"; then
+ mkdir "$progdir"
+ else
+ rm -f "$progdir/$file"
+ fi
- export LD_LIBRARY_PATH
+ # relink executable if necessary
+ if test -n "$relink_command"; then
+ if relink_command_output=`eval $relink_command 2>&1`; then :
+ else
+ $ECHO "$relink_command_output" >&2
+ rm -f "$progdir/$file"
+ exit 1
+ fi
+ fi
+ mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+ { rm -f "$progdir/$program";
+ mv -f "$progdir/$file" "$progdir/$program"; }
+ rm -f "$progdir/$file"
+ fi
+
+ if test -f "$progdir/$program"; then
if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
# Run the actual program with our arguments.
func_exec_program ${1+"$@"}
diff --git a/src/backend/anastasis-httpd.c b/src/backend/anastasis-httpd.c
index 3c900ad..c872478 100644
--- a/src/backend/anastasis-httpd.c
+++ b/src/backend/anastasis-httpd.c
@@ -36,7 +36,27 @@
/**
* Upload limit to the service, in megabytes.
*/
-unsigned long long int SH_upload_limit_mb;
+unsigned long long int AH_upload_limit_mb;
+
+/**
+ * Annual fee for the backup account.
+ */
+struct TALER_Amount AH_annual_fee;
+
+/**
+ * Our Taler backend to process payments.
+ */
+char *AH_backend_url;
+
+/**
+ * Our fulfillment URL.
+ */
+char *AH_fulfillment_url;
+
+/**
+ * Our context for making HTTP requests.
+ */
+struct GNUNET_CURL_Context *AH_ctx;
/**
* Should a "Connection: close" header be added to each HTTP response?
@@ -465,7 +485,7 @@ run (void *cls,
GNUNET_CONFIGURATION_get_value_number (config,
"anastasis",
"UPLOAD_LIMIT_MB",
- &SH_upload_limit_mb))
+ &AH_upload_limit_mb))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"anastasis",
diff --git a/src/backend/anastasis-httpd.h b/src/backend/anastasis-httpd.h
index 06083ba..a7aa696 100644
--- a/src/backend/anastasis-httpd.h
+++ b/src/backend/anastasis-httpd.h
@@ -135,7 +135,29 @@ extern struct ANASTASIS_DatabasePlugin *db;
/**
* Upload limit to the service, in megabytes.
*/
-extern unsigned long long SH_upload_limit_mb;
+extern unsigned long long AH_upload_limit_mb;
+
+/**
+ * Annual fee for the backup account.
+ *
+ * FIXME: the amount to pay is fixed to this value. Better variable value?
+ */
+extern struct TALER_Amount AH_annual_fee;
+
+/**
+ * Our Taler backend to process payments.
+ */
+extern char *AH_backend_url;
+
+/**
+ * Our fulfillment URL
+ */
+extern char *AH_fulfillment_url;
+
+/**
+ * Our context for making HTTP requests.
+ */
+extern struct GNUNET_CURL_Context *AH_ctx;
/**
* Kick MHD to run now, to be called after MHD_resume_connection().
diff --git a/src/backend/anastasis-httpd_policy.c
b/src/backend/anastasis-httpd_policy.c
index d21b34f..09e4546 100644
--- a/src/backend/anastasis-httpd_policy.c
+++ b/src/backend/anastasis-httpd_policy.c
@@ -39,593 +39,116 @@
/**
- * Context for an upload operation.
- */
-struct PolicyUploadContext
-{
-
- /**
- * Context for cleanup logic.
- */
- struct TM_HandlerContext hc;
-
- /**
- * Signature of the account holder.
- */
- struct ANASTASIS_AccountSignatureP account_sig;
-
- /**
- * Public key of the account holder.
- */
- struct ANASTASIS_AccountPubP account;
-
- /**
- * Hash of the previous upload, or zeros if first upload.
- */
- struct GNUNET_HashCode old_policy_upload_hash;
-
- /**
- * Hash of the upload we are receiving right now (as promised
- * by the client, to be verified!).
- */
- struct GNUNET_HashCode new_policy_upload_hash;
-
- /**
- * Hash context for the upload.
- */
- struct GNUNET_HashContext *hash_ctx;
-
- /**
- * Kept in DLL for shutdown handling while suspended.
- */
- struct PolicyUploadContext *next;
-
- /**
- * Kept in DLL for shutdown handling while suspended.
- */
- struct PolicyUploadContext *prev;
-
- /**
- * Used while suspended for resumption.
- */
- struct MHD_Connection *con;
-
- /**
- * Upload, with as many bytes as we have received so far.
- */
- char *upload;
-
- /**
- * Used while we are awaiting proposal creation.
- */
- struct TALER_MERCHANT_ProposalOperation *po;
-
- /**
- * Used while we are waiting payment.
- */
- struct TALER_MERCHANT_CheckPaymentOperation *cpo;
-
- /**
- * HTTP response code to use on resume, if non-NULL.
- */
- struct MHD_Response *resp;
-
- /**
- * Order under which the client promised payment, or NULL.
- */
- const char *order_id;
-
- /**
- * Order ID for the client that we found in our database.
- */
- char *existing_order_id;
-
- /**
- * Timestamp of the order in @e existing_order_id. Used to
- * select the most recent unpaid offer.
- */
- struct GNUNET_TIME_Absolute existing_order_timestamp;
-
- /**
- * Expected total upload size.
- */
- size_t upload_size;
-
- /**
- * Current offset for the upload.
- */
- size_t upload_off;
-
- /**
- * HTTP response code to use on resume, if resp is set.
- */
- unsigned int response_code;
-
-};
-
-
-/**
- * Kept in DLL for shutdown handling while suspended.
- */
-static struct PolicyUploadContext *puc_head;
-
-/**
- * Kept in DLL for shutdown handling while suspended.
- */
-static struct PolicyUploadContext *puc_tail;
-
-
-/**
- * Function called to clean up a backup context.
+ * Return the current recoverydocument of @a account on @a connection
+ * using @a default_http_status on success.
*
- * @param hc a `struct PolicyUploadContext`
+ * @param connection MHD connection to use
+ * @param account account to query
+ * @param default_http_status HTTP status to queue response
+ * with on success (#MHD_HTTP_OK or #MHD_HTTP_CONFLICT)
+ * @return MHD result code
*/
-static void
-cleanup_ctx (struct TM_HandlerContext *hc)
+int
+AH_return_backup (struct MHD_Connection *connection,
+ const struct ANASTASIS_AccountPubP *account,
+ unsigned int default_http_status)
{
- struct PolicyUploadContext *puc = (struct PolicyUploadContext *) hc;
-
- if (NULL != puc->po)
- TALER_MERCHANT_proposal_cancel (puc->po);
- if (NULL != puc->hash_ctx)
- GNUNET_CRYPTO_hash_context_abort (puc->hash_ctx);
- if (NULL != puc->resp)
- MHD_destroy_response (puc->resp);
- GNUNET_free_non_null (puc->existing_order_id);
- GNUNET_free_non_null (puc->upload);
- GNUNET_free (puc);
-}
-
+ enum ANASTASIS_DB_QueryStatus qs;
+ struct MHD_Response *resp;
+ int ret;
+ struct ANASTASIS_AccountSignatureP account_sig;
+ struct GNUNET_HashCode recovery_data_hash;
+ struct GNUNET_HashCode prev_hash;
+ uint32_t version;
+ size_t recovery_data_size;
+ void *recovery_data;
-/**
- * We got some query status from the DB. Handle the error cases.
- * May perform asynchronous operations by suspending the connection
- * if required.
- *
- * @param puc connection to handle status for
- * @param qs query status to handle
- * @return #MHD_YES or #MHD_NO
- */
-static int
-handle_database_error (struct PolicyUploadContext *puc,
- enum ANASTASIS_DB_QueryStatus qs)
-{
+ qs = db->get_latest_recovery_document (db->cls,
+ account,
+ &account_sig,
+ &prev_hash,
+ &recovery_data_hash,
+ &recovery_data_size,
+ &recovery_data,
+ &version);
switch (qs)
{
case ANASTASIS_DB_STATUS_OLD_RECOVERY_UPLOAD_MISSMATCH:
- /* FIXME handle missmatch
-
- return SH_return_backup (puc->con,
- &puc->account,
- MHD_HTTP_CONFLICT);
- */
- return MHD_YES; //FIXME
+ GNUNET_break (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_INTERNAL_INVARIANT_FAILURE,
+ "unexpected return status (backup
missmatch)");
case ANASTASIS_DB_STATUS_PAYMENT_REQUIRED:
- /* FIXME: payment handling
-
- {
- const char *order_id;
-
- order_id = MHD_lookup_connection_value (puc->con,
- MHD_GET_ARGUMENT_KIND,
- "paying");
- if (NULL == order_id)
- {
- return begin_payment (puc,
- GNUNET_NO);
- }
- await_payment (puc,
- CHECK_PAYMENT_TIMEOUT,
- order_id);
- }
- */
- return MHD_YES;
+ GNUNET_break (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_INTERNAL_INVARIANT_FAILURE,
+ "unexpected return status (payment
required)");
case ANASTASIS_DB_STATUS_HARD_ERROR:
+ GNUNET_break (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_SYNC_DB_FETCH_ERROR,
+ "hard database failure");
case ANASTASIS_DB_STATUS_SOFT_ERROR:
GNUNET_break (0);
- return TALER_MHD_reply_with_error (puc->con,
+ return TALER_MHD_reply_with_error (connection,
MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_SYNC_DATABASE_FETCH_ERROR,
- "failed to fetch existing record from
database");
+ TALER_EC_SYNC_DB_FETCH_ERROR,
+ "soft database failure");
case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
- GNUNET_assert (0);
- return MHD_NO;
- /* intentional fall-through! */
+ GNUNET_break (0);
+ /* Note: can theoretically happen due to non-transactional nature if
+ the backup expired / was gc'ed JUST between the two SQL calls.
+ But too rare to handle properly, as doing a transaction would be
+ expensive. Just admit to failure ;-) */
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_SYNC_DB_FETCH_ERROR,
+ "unexpected empty result set (try
again?)");
case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
- GNUNET_assert (0);
- return MHD_NO;
- }
- GNUNET_break (0);
- return MHD_NO;
-}
-
-
-/**
- * @param connection the MHD connection to handle
- * @param con_cls the connection's closure
- * @param url handles a URL of the format "/policy/$ACCOUNT_PUB"
- * @param recovery_data upload data
- * @param recovery_data_size number of bytes (left) in @a recovery_data
- * @return MHD result code
- */
-int
-AH_handler_policy_POST (struct MHD_Connection *connection,
- void **con_cls,
- const char *url,
- const char *recovery_data,
- size_t *recovery_data_size)
-{
- struct PolicyUploadContext *puc;
- struct ANASTASIS_AccountPubP accountPubP;
-
- puc = *con_cls;
- if (NULL == puc)
- {
- /* first call, setup internals */
- puc = GNUNET_new (struct PolicyUploadContext);
- puc->hc.cc = &cleanup_ctx;
- puc->con = connection;
-
- /* extract publickey from url */
- GNUNET_assert (0 == strncmp (url,
- "/policy/",
- strlen ("/policy/")));
- {
- const char *account;
-
- account = &url[strlen ("/policy/")];
- if (GNUNET_OK !=
- GNUNET_CRYPTO_eddsa_public_key_from_string (account,
- strlen (account),
- &accountPubP.pub))
- {
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- 42 /*FIXME */,
- "account public key malformed");
- }
- }
- puc->account = accountPubP;
- *con_cls = puc;
-
- /* no setup 'puc' */
- {
- const char *lens;
- unsigned long len;
-
- lens = MHD_lookup_connection_value (connection,
- MHD_HEADER_KIND,
- MHD_HTTP_HEADER_CONTENT_LENGTH);
- if ( (NULL == lens) ||
- (1 !=
- sscanf (lens,
- "%lu",
- &len)) )
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- //FIXME: ANASTASIS error c
- TALER_EC_SYNC_BAD_CONTENT_LENGTH,
- (NULL == lens)
- ? "Content-length value missing"
- : "Content-length value malformed");
- }
- if (len / 1024 / 1024 >= SH_upload_limit_mb)
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_PAYLOAD_TOO_LARGE,
- TALER_EC_SYNC_BAD_CONTENT_LENGTH,
- "Content-length value not
acceptable");
- }
- puc->upload = GNUNET_malloc_large (len);
- if (NULL == puc->upload)
- {
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
- "malloc");
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_PAYLOAD_TOO_LARGE,
-
TALER_EC_SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH,
- "Server out of memory, try again
later");
- }
- puc->upload_size = (size_t) len;
- }
- {
- // Check if header contains if-match
- const char *im;
-
- im = MHD_lookup_connection_value (connection,
- MHD_HEADER_KIND,
- MHD_HTTP_HEADER_IF_MATCH);
- if ( (NULL != im) &&
- (GNUNET_OK !=
- GNUNET_STRINGS_string_to_data (im,
- strlen (im),
- &puc->old_policy_upload_hash,
- sizeof
(&puc->old_policy_upload_hash))) )
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_SYNC_BAD_IF_MATCH,
- "If-Match does not include a
base32-encoded SHA-512 hash");
- }
- }
- {
- // Check if header contains Anastasis-Policy-Signature
- const char *sig_s;
-
- sig_s = MHD_lookup_connection_value (connection,
- MHD_HEADER_KIND,
- "Anastasis-Policy-Signature");
- if ( (NULL == sig_s) ||
- (GNUNET_OK !=
- GNUNET_STRINGS_string_to_data (sig_s,
- strlen (sig_s),
- &puc->account_sig,
- sizeof (&puc->account_sig))) )
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_SYNC_BAD_SYNC_SIGNATURE,
- "Anastasis-Policy-Signature does
not include a base32-encoded EdDSA signature");
- }
- }
- {
- // Check if header contains an ETAG
- const char *etag;
-
- etag = MHD_lookup_connection_value (connection,
- MHD_HEADER_KIND,
- MHD_HTTP_HEADER_ETAG);
- if ( (NULL == etag) ||
- (GNUNET_OK !=
- GNUNET_STRINGS_string_to_data (etag,
- strlen (etag),
- &puc->new_policy_upload_hash,
- sizeof
(&puc->new_policy_upload_hash))) )
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_SYNC_BAD_ETAG,
- "Etag does not include a
base32-encoded SHA-512 hash");
- }
- }
- /* validate signature */
- {
- struct ANASTASIS_UploadSignaturePS usp;
-
- usp.purpose.size = htonl (sizeof (struct ANASTASIS_UploadSignaturePS));
- usp.purpose.purpose = htonl (TALER_SIGNATURE_ANASTASIS_POLICY_UPLOAD);
- usp.old_recovery_data_hash = puc->old_policy_upload_hash;
- usp.new_recovery_data_hash = puc->new_policy_upload_hash;
- if (GNUNET_OK !=
- GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_ANASTASIS_POLICY_UPLOAD,
- &usp.purpose,
- &puc->account_sig.eddsa_sig,
- &accountPubP.pub))
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_FORBIDDEN,
- TALER_EC_SYNC_INVALID_SIGNATURE,
- "Account signature does not match
upload");
- }
- }
- /* get ready to hash (done here as we may go aANASTASIS for payments next)
*/
- puc->hash_ctx = GNUNET_CRYPTO_hash_context_start ();
-
- /* Check database to see if the transaction is permissable */
- {
- struct GNUNET_HashCode hc;
- enum ANASTASIS_DB_QueryStatus qs;
-
- qs = db->lookup_account (db->cls,
- &accountPubP);
- if (qs < 0)
- return handle_database_error (puc,
- qs);
- if (ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS == qs)
- memset (&hc, 0, sizeof (hc));
- if (0 == GNUNET_memcmp (&hc,
- &puc->new_policy_upload_hash))
- {
- /* Refuse upload: we already have that backup! */
- struct MHD_Response *resp;
- int ret;
-
- resp = MHD_create_response_from_buffer (0,
- NULL,
- MHD_RESPMEM_PERSISTENT);
- GNUNET_break (MHD_YES ==
- MHD_add_response_header (resp,
-
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
- "*"));
- ret = MHD_queue_response (connection,
- MHD_HTTP_NOT_MODIFIED,
- resp);
- MHD_destroy_response (resp);
- return ret;
- }
- if (0 != GNUNET_memcmp (&hc,
- &puc->old_policy_upload_hash))
- {
- /* Refuse upload: if-none-match failed! */
- return SH_return_backup (connection,
- accountPubP,
- MHD_HTTP_CONFLICT);
- }
- }
- /* check if the client insists on paying */
- { /* FIXME handle paying
- const char *order_req;
-
- order_req = MHD_lookup_connection_value (connection,
- MHD_GET_ARGUMENT_KIND,
- "pay");
- if (NULL != order_req)
- return begin_payment (puc,
- GNUNET_YES);
- } */
- /* ready to begin! */
- return MHD_YES;
- }
- /* handle upload */
- // FIXME adapt upload handling
- if (0 != recovery_data_size)
- {
- /* check MHD invariant */
- GNUNET_assert (puc->upload_off + *recovery_data_size <= puc->upload_size);
- memcpy (&puc->upload[puc->upload_off],
- recovery_data,
- *recovery_data_size);
- puc->upload_off += *recovery_data_size;
- GNUNET_CRYPTO_hash_context_read (puc->hash_ctx,
- recovery_data,
- *recovery_data_size);
- *recovery_data_size = 0;
- return MHD_YES;
- }
- if (NULL != bc->resp)
- {
- /* We generated a response asynchronously, queue that */
- return MHD_queue_response (connection,
- bc->response_code,
- bc->resp);
- }
-
- /* finished with upload, check hash */
- {
- struct GNUNET_HashCode our_hash;
-
- GNUNET_CRYPTO_hash_context_finish (bc->hash_ctx,
- &our_hash);
- bc->hash_ctx = NULL;
- if (0 != GNUNET_memcmp (&our_hash,
- &bc->new_backup_hash))
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_SYNC_INVALID_UPLOAD,
- "Data uploaded does not match Etag
promise");
- }
- }
-
- /* store backup to database */
- {
- enum SYNC_DB_QueryStatus qs;
-
- if (GNUNET_is_zero (&bc->old_backup_hash))
- qs = db->store_backup_TR (db->cls,
- account,
- &bc->account_sig,
- &bc->new_backup_hash,
- bc->upload_size,
- bc->upload);
- else
- qs = db->update_backup_TR (db->cls,
- account,
- &bc->old_backup_hash,
- &bc->account_sig,
- &bc->new_backup_hash,
- bc->upload_size,
- bc->upload);
- if (qs < 0)
- return handle_database_error (bc,
- qs);
- if (0 == qs)
- {
- /* database says nothing actually changed, 304 (could
- theoretically happen if another equivalent upload succeeded
- since we last checked!) */
- struct MHD_Response *resp;
- int ret;
-
- resp = MHD_create_response_from_buffer (0,
- NULL,
- MHD_RESPMEM_PERSISTENT);
- GNUNET_break (MHD_YES ==
- MHD_add_response_header (resp,
-
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
- "*"));
- ret = MHD_queue_response (connection,
- MHD_HTTP_NOT_MODIFIED,
- resp);
- MHD_destroy_response (resp);
- return ret;
- }
+ /* interesting case below */
+ break;
}
-
- /* generate main (204) standard success reply */
+ resp = MHD_create_response_from_buffer (recovery_data_size,
+ recovery_data,
+ MHD_RESPMEM_MUST_FREE);
+ GNUNET_break (MHD_YES ==
+ MHD_add_response_header (resp,
+
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
+ "*"));
{
- struct MHD_Response *resp;
- int ret;
-
- resp = MHD_create_response_from_buffer (0,
- NULL,
- MHD_RESPMEM_PERSISTENT);
+ char *sig_s;
+ char *prev_s;
+ char *etag;
+
+ sig_s = GNUNET_STRINGS_data_to_string_alloc (&account_sig,
+ sizeof (account_sig));
+ prev_s = GNUNET_STRINGS_data_to_string_alloc (&prev_hash,
+ sizeof (prev_hash));
+ etag = GNUNET_STRINGS_data_to_string_alloc (&recovery_data_hash,
+ sizeof (recovery_data_hash));
GNUNET_break (MHD_YES ==
MHD_add_response_header (resp,
-
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
- "*"));
- ret = MHD_queue_response (connection,
- MHD_HTTP_NO_CONTENT,
- resp);
- MHD_destroy_response (resp);
- return ret;
- }
-
- void *recovery_data;
- const char *paymentIdentifier_str;
- const struct ANASTASIS_PaymentSecretP *paymentIdentifier;
- unsigned int version;
- int ret;
-
- GNUNET_STRINGS_string_to_data (recovery_data,
- strlen (recovery_data),
- &recovery_data,
- sizeof (recovery_data));
-
-
-
- paymentIdentifier_str = MHD_lookup_connection_value (connection,
- MHD_HEADER_KIND,
- "Payment-Identifier");
-
- memcpy (&paymentIdentifier,
- paymentIdentifier_str,
- strlen (paymentIdentifier_str) + 1);
-
- db->store_recovery_document (db->cls,
- &accountPubP,
- recovery_data,
- sizeof (recovery_data),
- paymentIdentifier,
- &version);
-
- }
-
- // BUILD reply
- {
- struct MHD_Response *response;
-
- // FIXME: find correct create response
- response = GNUNET_REST_create_response ("Irgendwas");
-
- TALER_MHD_add_global_headers (response);
+ "Sync-Signature",
+ sig_s));
GNUNET_break (MHD_YES ==
- MHD_add_response_header (response,
- "Anastasis-Version",
- version + ""));
- ret = MHD_queue_response (connection,
- MHD_HTTP_OK,
- response);
- MHD_destroy_response (response);
+ MHD_add_response_header (resp,
+ "Sync-Previous",
+ prev_s));
+ GNUNET_break (MHD_YES ==
+ MHD_add_response_header (resp,
+ MHD_HTTP_HEADER_ETAG,
+ etag));
+ GNUNET_free (etag);
+ GNUNET_free (prev_s);
+ GNUNET_free (sig_s);
}
+ ret = MHD_queue_response (connection,
+ default_http_status,
+ resp);
+ MHD_destroy_response (resp);
return ret;
}
@@ -644,8 +167,11 @@ AH_handler_policy_GET (struct MHD_Connection *connection,
struct ANASTASIS_AccountPubP accountPubP;
void *res_recovery_data;
size_t res_recovery_data_size;
- uint32_t version;
+ struct ANASTASIS_AccountSignatureP account_sig;
+ struct GNUNET_HashCode prev_hash;
+ struct GNUNET_HashCode recovery_data_hash;
const char *version_s;
+ uint32_t version;
int ret;
enum ANASTASIS_DB_QueryStatus qs;
@@ -686,6 +212,9 @@ AH_handler_policy_GET (struct MHD_Connection *connection,
}
qs = db->get_recovery_document (db->cls,
&accountPubP,
+ &account_sig,
+ &prev_hash,
+ &recovery_data_hash,
version,
&res_recovery_data_size,
&res_recovery_data);
@@ -694,6 +223,9 @@ AH_handler_policy_GET (struct MHD_Connection *connection,
{
qs = db->get_latest_recovery_document (db->cls,
&accountPubP,
+ &account_sig,
+ &prev_hash,
+ &recovery_data_hash,
&res_recovery_data_size,
&res_recovery_data,
&version);
@@ -749,4 +281,3 @@ AH_handler_policy_GET (struct MHD_Connection *connection,
}
return ret;
}
-
diff --git a/src/backend/anastasis-httpd_policy.c.uncrustify
b/src/backend/anastasis-httpd_policy.c.uncrustify
new file mode 100644
index 0000000..e69de29
diff --git a/src/backend/anastasis-httpd_policy.h
b/src/backend/anastasis-httpd_policy.h
index 13a955e..0b88fb4 100644
--- a/src/backend/anastasis-httpd_policy.h
+++ b/src/backend/anastasis-httpd_policy.h
@@ -50,5 +50,20 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
const char *upload_data,
size_t *upload_data_size);
+/**
+ * Return the current recoverydocument of @a account on @a connection
+ * using @a default_http_status on success.
+ *
+ * @param connection MHD connection to use
+ * @param account account to query
+ * @param default_http_status HTTP status to queue response
+ * with on success (#MHD_HTTP_OK or #MHD_HTTP_CONFLICT)
+ * @return MHD result code
+ */
+int
+AH_return_backup (struct MHD_Connection *connection,
+ const struct ANASTASIS_AccountPubP *account,
+ unsigned int default_http_status);
+
#endif
\ No newline at end of file
diff --git a/src/backend/anastasis-httpd_policy.c
b/src/backend/anastasis-httpd_policy_upload.c
similarity index 54%
copy from src/backend/anastasis-httpd_policy.c
copy to src/backend/anastasis-httpd_policy_upload.c
index d21b34f..69b333e 100644
--- a/src/backend/anastasis-httpd_policy.c
+++ b/src/backend/anastasis-httpd_policy_upload.c
@@ -111,17 +111,17 @@ struct PolicyUploadContext
struct MHD_Response *resp;
/**
- * Order under which the client promised payment, or NULL.
+ * payment identifier under which the client promised payment, or NULL.
*/
- const char *order_id;
+ const char *payment_identifier;
/**
- * Order ID for the client that we found in our database.
+ * Payment identifier for the client that we found in our database.
*/
- char *existing_order_id;
+ char *existing_payment_identifier;
/**
- * Timestamp of the order in @e existing_order_id. Used to
+ * Timestamp of the order in @e existing_payment_identifier. Used to
* select the most recent unpaid offer.
*/
struct GNUNET_TIME_Absolute existing_order_timestamp;
@@ -171,12 +171,263 @@ cleanup_ctx (struct TM_HandlerContext *hc)
GNUNET_CRYPTO_hash_context_abort (puc->hash_ctx);
if (NULL != puc->resp)
MHD_destroy_response (puc->resp);
- GNUNET_free_non_null (puc->existing_order_id);
+ GNUNET_free_non_null (puc->existing_payment_identifier);
GNUNET_free_non_null (puc->upload);
GNUNET_free (puc);
}
+/**
+ * Transmit a payment request for @a payment_identifier on @a connection
+ *
+ * @param connection MHD connection
+ * @param payment_identifier our backend's order ID
+ * @return MHD repsonse to use
+ */
+static struct MHD_Response *
+make_payment_request (const char *payment_identifier)
+{
+ struct MHD_Response *resp;
+
+ /* request payment via Taler */
+ resp = MHD_create_response_from_buffer (0,
+ NULL,
+ MHD_RESPMEM_PERSISTENT);
+ GNUNET_break (MHD_YES ==
+ MHD_add_response_header (resp,
+
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
+ "*"));
+ {
+ char *hdr;
+
+ /* TODO: support instances? */
+ GNUNET_asprintf (&hdr,
+ "taler://pay/%s/-/-/%s",
+ AH_backend_url,
+ payment_identifier);
+ GNUNET_break (MHD_YES ==
+ MHD_add_response_header (resp,
+ "Taler",
+ hdr));
+ GNUNET_free (hdr);
+ }
+ return resp;
+}
+
+/**
+ * FIXME: Is this reasonable?
+ */
+unsigned int
+amount_to_post_counter (const struct TALER_Amount *amount) {
+ /* FIXME: reasonable conversion from Taler Amount to post counter */
+ if (0 == strcmp (amount->currency, "CHF") || 0 == strcmp (amount->currency,
"EUR"))
+ {
+ //FIXME: check if long long value is in int range
+ return (int)amount->value * 10;
+ }
+ return 0;
+}
+
+/**
+ * Callbacks of this type are used to serve the result of submitting a
+ * /contract request to a merchant.
+ *
+ * @param cls our `struct PolicyUploadContext`
+ * @param http_status HTTP response code, 200 indicates success;
+ * 0 if the backend's reply is bogus (fails to follow the
protocol)
+ * @param ec taler-specific error code
+ * @param obj raw JSON reply, or error details if the request failed
+ * @param payment_identifier_str payment_identifier base64 encoded of the
newly created order
+ */
+static void
+proposal_cb (void *cls,
+ unsigned int http_status,
+ enum TALER_ErrorCode ec,
+ const json_t *obj,
+ const char *payment_identifier_str)
+{
+ struct PolicyUploadContext *puc = cls;
+ enum ANASTASIS_DB_QueryStatus qs;
+ unsigned int post_counter;
+ void *payment_identifier;
+ GNUNET_STRINGS_base64_decode (payment_identifier_str,
+ strlen (payment_identifier_str),
+ &payment_identifier);
+ puc->po = NULL;
+ GNUNET_CONTAINER_DLL_remove (puc_head,
+ puc_tail,
+ puc);
+ MHD_resume_connection (puc->con);
+ post_counter = amount_to_post_counter ( &AH_annual_fee);
+ qs = db->record_payment (db->cls,
+ &puc->account,
+ post_counter,
+ payment_identifier);
+ if (0 >= qs)
+ {
+ GNUNET_break (0);
+ puc->resp = TALER_MHD_make_error (TALER_EC_SYNC_PAYMENT_CREATE_DB_ERROR,
+ "Failed to persist payment request in
sync database");
+ puc->response_code = MHD_HTTP_INTERNAL_SERVER_ERROR;
+ return;
+ }
+
+ puc->resp = make_payment_request (payment_identifier);
+ puc->response_code = MHD_HTTP_PAYMENT_REQUIRED;
+}
+
+
+/**
+ * Callback to process a GET /check-payment request
+ *
+ * @param cls our `struct PolicyUploadContext`
+ * @param http_status HTTP status code for this request
+ * @param obj raw response body
+ * @param paid #GNUNET_YES if the payment is settled, #GNUNET_NO if not
+ * settled, $GNUNET_SYSERR on error
+ * (note that refunded payments are returned as paid!)
+ * @param refunded #GNUNET_YES if there is at least on refund on this payment,
+ * #GNUNET_NO if refunded, #GNUNET_SYSERR or error
+ * @param refunded_amount amount that was refunded, NULL if there
+ * was no refund
+ * @param taler_pay_uri the URI that instructs the wallets to process
+ * the payment
+ */
+static void
+check_payment_cb (void *cls,
+ unsigned int http_status,
+ const json_t *obj,
+ int paid,
+ int refunded,
+ struct TALER_Amount *refund_amount,
+ const char *taler_pay_uri)
+{
+ struct PolicyUploadContext *puc = cls;
+
+ /* refunds are not supported, verify */
+ puc->cpo = NULL;
+ MHD_resume_connection (puc->con);
+ GNUNET_break ( (GNUNET_NO == refunded) &&
+ (NULL == refund_amount) );
+ if (paid)
+ {
+ enum ANASTASIS_DB_QueryStatus qs;
+ void *payment_identifier;
+ GNUNET_STRINGS_base64_decode (puc->payment_identifier,
+ strlen (puc->payment_identifier),
+ &payment_identifier);
+
+ qs = db->increment_lifetime (db->cls,
+ &puc->account,
+ payment_identifier,
+ GNUNET_TIME_UNIT_YEARS); /* always annual ?*/
+ if (0 <= qs)
+ return; /* continue as planned */
+ GNUNET_break (0);
+ puc->resp = TALER_MHD_make_error (TALER_EC_SYNC_PAYMENT_CONFIRM_DB_ERROR,
+ "Failed to persist payment confirmation
in sync database");
+ puc->response_code = MHD_HTTP_INTERNAL_SERVER_ERROR;
+ return; /* continue as planned */
+ }
+ if (NULL != puc->existing_payment_identifier)
+ {
+ /* repeat payment request */
+ puc->resp = make_payment_request (puc->existing_payment_identifier);
+ puc->response_code = MHD_HTTP_PAYMENT_REQUIRED;
+ return;
+ }
+ puc->resp = TALER_MHD_make_error (TALER_EC_SYNC_PAYMENT_TIMEOUT,
+ "Timeout awaiting promised payment");
+ puc->response_code = MHD_HTTP_REQUEST_TIMEOUT;
+}
+
+
+/**
+ * Helper function used to ask our backend to await
+ * a payment for the user's account.
+ *
+ * @param puc context to begin payment for.
+ * @param timeout when to give up trying
+ * @param payment_identifier which order to check for the payment
+ */
+static void
+await_payment (struct PolicyUploadContext *puc,
+ struct GNUNET_TIME_Relative timeout,
+ const char *payment_identifier)
+{
+ GNUNET_CONTAINER_DLL_insert (puc_head,
+ puc_tail,
+ puc);
+ MHD_suspend_connection (puc->con);
+ puc->payment_identifier = payment_identifier;
+ puc->cpo = TALER_MERCHANT_check_payment (AH_ctx,
+ AH_backend_url,
+ puc->payment_identifier,
+ NULL /* our payments are NOT
session-bound */,
+ timeout,
+ &check_payment_cb,
+ puc);
+}
+
+
+/**
+ * Helper function used to ask our backend to begin
+ * processing a payment for the user's account.
+ * May perform asynchronous operations by suspending the connection
+ * if required.
+ *
+ * @param puc context to begin payment for.
+ * @param pay_req #GNUNET_YES if payment was explicitly requested,
+ * #GNUNET_NO if payment is needed
+ * @return MHD status code
+ */
+static int
+begin_payment (struct PolicyUploadContext *puc,
+ int pay_req)
+{
+ json_t *order;
+ enum ANASTASIS_DB_QueryStatus qs;
+
+ qs = db->lookup_pending_payment_by_account (db->cls,
+ &puc->account);
+ if (qs < 0)
+ {
+ struct MHD_Response *resp;
+ int ret;
+
+ resp = TALER_MHD_make_error (TALER_EC_SYNC_PAYMENT_CHECK_ORDER_DB_ERROR,
+ "Failed to check for existing order in
anastasis database");
+ ret = MHD_queue_response (puc->con,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ resp);
+ MHD_destroy_response (resp);
+ return ret;
+ }
+ if (NULL != puc->existing_payment_identifier)
+ {
+ await_payment (puc,
+ GNUNET_TIME_UNIT_ZERO /* no long polling */,
+ puc->existing_payment_identifier);
+ return MHD_YES;
+ }
+ GNUNET_CONTAINER_DLL_insert (puc_head,
+ puc_tail,
+ puc);
+ MHD_suspend_connection (puc->con);
+ order = json_pack ("{s:o, s:s, s:s}",
+ "amount", TALER_JSON_from_amount (&AH_annual_fee),
+ "summary", "annual fee for async service",
+ "fulfillment_url", AH_fulfillment_url);
+ puc->po = TALER_MERCHANT_order_put (AH_ctx,
+ AH_backend_url,
+ order,
+ &proposal_cb,
+ puc);
+ json_decref (order);
+ return MHD_YES;
+}
+
+
/**
* We got some query status from the DB. Handle the error cases.
* May perform asynchronous operations by suspending the connection
@@ -195,28 +446,28 @@ handle_database_error (struct PolicyUploadContext *puc,
case ANASTASIS_DB_STATUS_OLD_RECOVERY_UPLOAD_MISSMATCH:
/* FIXME handle missmatch
- return SH_return_backup (puc->con,
+ return AH_return_backup (puc->con,
&puc->account,
MHD_HTTP_CONFLICT);
*/
- return MHD_YES; //FIXME
+ return MHD_YES; // FIXME
case ANASTASIS_DB_STATUS_PAYMENT_REQUIRED:
/* FIXME: payment handling
{
- const char *order_id;
+ const char *payment_identifier;
- order_id = MHD_lookup_connection_value (puc->con,
+ payment_identifier = MHD_lookup_connection_value (puc->con,
MHD_GET_ARGUMENT_KIND,
"paying");
- if (NULL == order_id)
+ if (NULL == payment_identifier)
{
return begin_payment (puc,
GNUNET_NO);
}
await_payment (puc,
CHECK_PAYMENT_TIMEOUT,
- order_id);
+ payment_identifier);
}
*/
return MHD_YES;
@@ -268,8 +519,8 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
/* extract publickey from url */
GNUNET_assert (0 == strncmp (url,
- "/policy/",
- strlen ("/policy/")));
+ "/policy/",
+ strlen ("/policy/")));
{
const char *account;
@@ -280,9 +531,9 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
&accountPubP.pub))
{
return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- 42 /*FIXME */,
- "account public key malformed");
+ MHD_HTTP_BAD_REQUEST,
+ 42 /*FIXME */,
+ "account public key malformed");
}
}
puc->account = accountPubP;
@@ -305,13 +556,13 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
GNUNET_break_op (0);
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_BAD_REQUEST,
- //FIXME: ANASTASIS error c
+ // FIXME: ANASTASIS error c
TALER_EC_SYNC_BAD_CONTENT_LENGTH,
(NULL == lens)
? "Content-length value missing"
: "Content-length value malformed");
}
- if (len / 1024 / 1024 >= SH_upload_limit_mb)
+ if (len / 1024 / 1024 >= AH_upload_limit_mb)
{
GNUNET_break_op (0);
return TALER_MHD_reply_with_error (connection,
@@ -454,13 +705,13 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
&puc->old_policy_upload_hash))
{
/* Refuse upload: if-none-match failed! */
- return SH_return_backup (connection,
- accountPubP,
+ return AH_return_backup (connection,
+ &accountPubP,
MHD_HTTP_CONFLICT);
}
}
/* check if the client insists on paying */
- { /* FIXME handle paying
+ {
const char *order_req;
order_req = MHD_lookup_connection_value (connection,
@@ -469,79 +720,99 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
if (NULL != order_req)
return begin_payment (puc,
GNUNET_YES);
- } */
- /* ready to begin! */
- return MHD_YES;
- }
- /* handle upload */
- // FIXME adapt upload handling
- if (0 != recovery_data_size)
- {
- /* check MHD invariant */
- GNUNET_assert (puc->upload_off + *recovery_data_size <= puc->upload_size);
- memcpy (&puc->upload[puc->upload_off],
- recovery_data,
- *recovery_data_size);
- puc->upload_off += *recovery_data_size;
- GNUNET_CRYPTO_hash_context_read (puc->hash_ctx,
- recovery_data,
- *recovery_data_size);
- *recovery_data_size = 0;
- return MHD_YES;
- }
- if (NULL != bc->resp)
- {
- /* We generated a response asynchronously, queue that */
- return MHD_queue_response (connection,
- bc->response_code,
- bc->resp);
- }
+ }
+ /* ready to begin! */
+ return MHD_YES;
+ }
+ /* handle upload */
+ if (0 != recovery_data_size)
+ {
+ /* check MHD invariant */
+ GNUNET_assert (puc->upload_off + *recovery_data_size <=
puc->upload_size);
+ memcpy (&puc->upload[puc->upload_off],
+ recovery_data,
+ *recovery_data_size);
+ puc->upload_off += *recovery_data_size;
+ GNUNET_CRYPTO_hash_context_read (puc->hash_ctx,
+ recovery_data,
+ *recovery_data_size);
+ *recovery_data_size = 0;
+ return MHD_YES;
+ }
+ if (NULL != puc->resp)
+ {
+ /* We generated a response asynchronously, queue that */
+ return MHD_queue_response (connection,
+ puc->response_code,
+ puc->resp);
+ }
- /* finished with upload, check hash */
- {
- struct GNUNET_HashCode our_hash;
+ /* finished with upload, check hash */
+ {
+ struct GNUNET_HashCode our_hash;
+
+ GNUNET_CRYPTO_hash_context_finish (puc->hash_ctx,
+ &our_hash);
+ puc->hash_ctx = NULL;
+ if (0 != GNUNET_memcmp (&our_hash,
+ &puc->new_policy_upload_hash))
+ {
+ GNUNET_break_op (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_SYNC_INVALID_UPLOAD,
+ "Data uploaded does not match Etag
promise");
+ }
+ }
- GNUNET_CRYPTO_hash_context_finish (bc->hash_ctx,
- &our_hash);
- bc->hash_ctx = NULL;
- if (0 != GNUNET_memcmp (&our_hash,
- &bc->new_backup_hash))
+ /* store backup to database */
{
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_SYNC_INVALID_UPLOAD,
- "Data uploaded does not match Etag
promise");
+ enum ANASTASIS_DB_QueryStatus qs;
+ void *paymentIdentifier;
+ GNUNET_STRINGS_base64_decode (puc->payment_identifier,
+ strlen (puc->payment_identifier),
+ &paymentIdentifier);
+ // FIXME: version has to be delivered by header
+ uint32_t version;
+
+ qs = db->store_recovery_document (db->cls,
+ &accountPubP,
+ &puc->account_sig,
+ &puc->old_policy_upload_hash,
+ &puc->new_policy_upload_hash,
+ recovery_data,
+ sizeof (recovery_data),
+ paymentIdentifier,
+ &version);
+
+ if (qs < 0)
+ return handle_database_error (puc,
+ qs);
+ if (0 == qs)
+ {
+ /* database says nothing actually changed, 304 (could
+ theoretically happen if another equivalent upload succeeded
+ since we last checked!) */
+ struct MHD_Response *resp;
+ int ret;
+
+ resp = MHD_create_response_from_buffer (0,
+ NULL,
+ MHD_RESPMEM_PERSISTENT);
+ GNUNET_break (MHD_YES ==
+ MHD_add_response_header (resp,
+
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
+ "*"));
+ ret = MHD_queue_response (connection,
+ MHD_HTTP_NOT_MODIFIED,
+ resp);
+ MHD_destroy_response (resp);
+ return ret;
+ }
}
- }
- /* store backup to database */
- {
- enum SYNC_DB_QueryStatus qs;
-
- if (GNUNET_is_zero (&bc->old_backup_hash))
- qs = db->store_backup_TR (db->cls,
- account,
- &bc->account_sig,
- &bc->new_backup_hash,
- bc->upload_size,
- bc->upload);
- else
- qs = db->update_backup_TR (db->cls,
- account,
- &bc->old_backup_hash,
- &bc->account_sig,
- &bc->new_backup_hash,
- bc->upload_size,
- bc->upload);
- if (qs < 0)
- return handle_database_error (bc,
- qs);
- if (0 == qs)
+ /* generate main (204) standard success reply */
{
- /* database says nothing actually changed, 304 (could
- theoretically happen if another equivalent upload succeeded
- since we last checked!) */
struct MHD_Response *resp;
int ret;
@@ -553,200 +824,9 @@ AH_handler_policy_POST (struct MHD_Connection *connection,
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
"*"));
ret = MHD_queue_response (connection,
- MHD_HTTP_NOT_MODIFIED,
+ MHD_HTTP_NO_CONTENT,
resp);
MHD_destroy_response (resp);
return ret;
}
- }
-
- /* generate main (204) standard success reply */
- {
- struct MHD_Response *resp;
- int ret;
-
- resp = MHD_create_response_from_buffer (0,
- NULL,
- MHD_RESPMEM_PERSISTENT);
- GNUNET_break (MHD_YES ==
- MHD_add_response_header (resp,
-
MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
- "*"));
- ret = MHD_queue_response (connection,
- MHD_HTTP_NO_CONTENT,
- resp);
- MHD_destroy_response (resp);
- return ret;
- }
-
- void *recovery_data;
- const char *paymentIdentifier_str;
- const struct ANASTASIS_PaymentSecretP *paymentIdentifier;
- unsigned int version;
- int ret;
-
- GNUNET_STRINGS_string_to_data (recovery_data,
- strlen (recovery_data),
- &recovery_data,
- sizeof (recovery_data));
-
-
-
- paymentIdentifier_str = MHD_lookup_connection_value (connection,
- MHD_HEADER_KIND,
- "Payment-Identifier");
-
- memcpy (&paymentIdentifier,
- paymentIdentifier_str,
- strlen (paymentIdentifier_str) + 1);
-
- db->store_recovery_document (db->cls,
- &accountPubP,
- recovery_data,
- sizeof (recovery_data),
- paymentIdentifier,
- &version);
-
- }
-
- // BUILD reply
- {
- struct MHD_Response *response;
-
- // FIXME: find correct create response
- response = GNUNET_REST_create_response ("Irgendwas");
-
- TALER_MHD_add_global_headers (response);
- GNUNET_break (MHD_YES ==
- MHD_add_response_header (response,
- "Anastasis-Version",
- version + ""));
- ret = MHD_queue_response (connection,
- MHD_HTTP_OK,
- response);
- MHD_destroy_response (response);
- }
- return ret;
-}
-
-
-/**
- * @param connection the MHD connection to handle
- * @param url handles a URL of the format
"/policy/$ACCOUNT_PUB[&version=$NUMBER]"
- * @param con_cls
- * @return MHD result code
- */
-int
-AH_handler_policy_GET (struct MHD_Connection *connection,
- const char *url,
- void **con_cls)
-{
- struct ANASTASIS_AccountPubP accountPubP;
- void *res_recovery_data;
- size_t res_recovery_data_size;
- uint32_t version;
- const char *version_s;
- int ret;
- enum ANASTASIS_DB_QueryStatus qs;
-
- GNUNET_assert (0 == strncmp (url,
- "/policy/",
- strlen ("/policy/")));
- {
- const char *account;
-
- account = &url[strlen ("/policy/")];
- if (GNUNET_OK !=
- GNUNET_CRYPTO_eddsa_public_key_from_string (account,
- strlen (account),
- &accountPubP.pub))
- {
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- 42 /*FIXME */,
- "account public key malformed");
- }
- }
- version_s = MHD_lookup_connection_value (connection,
- MHD_GET_ARGUMENT_KIND,
- "version");
-
-
- if (NULL != version_s)
- {
-
- if (1 != sscanf (version_s,
- "%u",
- &version))
- {
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- 43 /*FIXME */,
- "version");
- }
- qs = db->get_recovery_document (db->cls,
- &accountPubP,
- version,
- &res_recovery_data_size,
- &res_recovery_data);
- }
- else
- {
- qs = db->get_latest_recovery_document (db->cls,
- &accountPubP,
- &res_recovery_data_size,
- &res_recovery_data,
- &version);
-
- }
- switch (qs)
- {
- // FIXME: handle DB error cases!
- case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- 42 /*FIXME*/,
- "recovery data not available");
- case ANASTASIS_DB_STATUS_HARD_ERROR:
- // FIXME: correct reply?
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_INTERNAL_SERVER_ERROR,
- 1003,
- "failed hard");
- case ANASTASIS_DB_STATUS_SOFT_ERROR:
- // FIXME: correct reply?
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_ACCEPTABLE,
- 42 /*FIXME*/,
- "failed hard");
- case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
- GNUNET_assert (NULL != res_recovery_data);
- break;
- }
-
- // BUILD reply
- // binary reply
- {
- struct MHD_Response *response;
-
- /*FIXME: header must contain:
- * - version of returned encrypted recovery document
- * - Etag if Status 200 OK
- */
- // FIXME: Find correct create_response
- response = MHD_create_response_from_buffer (sizeof (res_recovery_data),
- res_recovery_data,
- MHD_RESPMEM_MUST_FREE);
- TALER_MHD_add_global_headers (response);
- GNUNET_break (MHD_YES ==
- MHD_add_response_header (response,
- MHD_HTTP_HEADER_CONTENT_TYPE,
- "anastasis/encrypted-policy"));
- ret = MHD_queue_response (connection,
- MHD_HTTP_OK,
- response);
- MHD_destroy_response (response);
- }
- return ret;
-}
-
+}
\ No newline at end of file
diff --git a/src/backend/anastasis.conf b/src/backend/anastasis.conf
index 11f9d4f..c0df71e 100644
--- a/src/backend/anastasis.conf
+++ b/src/backend/anastasis.conf
@@ -26,6 +26,9 @@ UNIXPATH_MODE = 660
# Which database backend do we use?
DB = postgres
+# Upload limit per backup, in megabytes
+UPLOAD_LIMIT_MB = 16
+
# Configuration for postgres database.
[anastasisdb-postgres]
CONFIG = postgres:///anastasis
diff --git a/src/include/Makefile.in b/src/include/Makefile.in
index 7d4494b..faa2345 100644
--- a/src/include/Makefile.in
+++ b/src/include/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -329,7 +329,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -370,8 +369,8 @@ Makefile: $(srcdir)/Makefile.in
$(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
$(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
$(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
$(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
$(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure
$(CONFIG_STATUS_DEPENDENCIES)
@@ -462,7 +461,10 @@ cscopelist-am: $(am__tagged_files)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
diff --git a/src/include/anastasis_database_plugin.h
b/src/include/anastasis_database_plugin.h
index 3529ae2..967c03d 100644
--- a/src/include/anastasis_database_plugin.h
+++ b/src/include/anastasis_database_plugin.h
@@ -126,52 +126,46 @@ struct ANASTASIS_DatabasePlugin
enum ANASTASIS_DB_QueryStatus
(*commit)(void *cls);
- /**
- * Record user payment.
- *
- * @param cls closure
- * @param payment_id identifier of the payment
- * @param amount how much was paid
- * @param anastasis_pub public key of the user's account
- * @param initial_post_counter how many uploads does @a amount pay for
- * @param lifetime_inc for how long does @a amount pay for account
maintenance
- * @param payment_secret identifier for the payment, used to later charge on
uploads
- * @return transaction status
- */
- enum ANASTASIS_DB_QueryStatus
- (*record_payment)(void *cls,
- const struct TALER_Amount *amount,
- const struct ANASTASIS_AccountPubP *anastasis_pub,
- unsigned int initial_post_counter,
- struct GNUNET_TIME_Relative lifetime_inc,
- const struct ANASTASIS_PaymentSecretP *payment_secret);
/**
- * Upload encrypted recovery document.
- *
- * @param cls closure
- * @param anastasis_pub public key of the user's account
- * @param data contains encrypted_recovery_document
- * @param data_size size of data blob
- * @param payment_secret identifier for the payment, used to later charge on
uploads
- * @param version[OUT] set to the version assigned to the document by the
database
- * @return transaction status, 0 if upload could not be finished because @a
payment_secret
- * did not have enough upload left; HARD error if @a payment_secret
is unknown, ...
- */
- enum ANASTASIS_DB_QueryStatus
- (*store_recovery_document)(void *cls,
- const struct ANASTASIS_AccountPubP *anastasis_pub,
- const void *data,
- size_t data_size,
- const struct
- ANASTASIS_PaymentSecretP *payment_secret,
- uint32_t *version);
+ * Upload encrypted recovery document.
+ *
+ * @param cls closure
+ * @param anastasis_pub public key of the user's account
+ * @param account_sig signature affirming storage request
+ * @param old_data_hash hash of the previous uploaded recovery data (must
match)
+ * @param data_hash hash of @a data
+ * @param data contains encrypted_recovery_document
+ * @param data_size size of data blob
+ * @param payment_secret identifier for the payment, used to later charge on
uploads
+ * @param version[OUT] set to the version assigned to the document by the
database
+ * @return transaction status, 0 if upload could not be finished because @a
payment_secret
+ * did not have enough upload left; HARD error if @a payment_secret
is unknown, ...
+ */
+enum ANASTASIS_DB_QueryStatus
+(*store_recovery_document)(void *cls,
+ const struct
+ ANASTASIS_AccountPubP *anastasis_pub,
+ const struct
+ ANASTASIS_AccountSignatureP *account_sig,
+ const struct
+ GNUNET_HashCode *old_data_hash,
+ const struct
+ GNUNET_HashCode *data_hash,
+ const void *data,
+ size_t data_size,
+ const struct
+ ANASTASIS_PaymentSecretP *payment_secret,
+ uint32_t *version);
/**
* Fetch recovery document for user.
*
* @param cls closure
* @param anastasis_pub public key of the user's account
+ * @param account_sig signature
+ * @param prev_hash hash of the previous uploaded recovery data
+ * @param recovery_data_hash hash of the current recovery data
* @param version[OUT] set to the version number of the policy the user
requested
* @param data_size size of data blob
* @param data blob which contains the recovery document
@@ -180,27 +174,42 @@ struct ANASTASIS_DatabasePlugin
enum ANASTASIS_DB_QueryStatus
(*get_recovery_document)(void *cls,
const struct ANASTASIS_AccountPubP *anastasis_pub,
+ struct
+ ANASTASIS_AccountSignatureP *account_sig,
+ struct
+ GNUNET_HashCode *prev_hash,
+ struct
+ GNUNET_HashCode *recovery_data_hash,
uint32_t version,
size_t *data_size,
void **data);
/**
- * Fetch latest recovery document for user.
- *
- * @param cls closure
- * @param anastasis_pub public key of the user's account
- * @param version[OUT] set to the version number of the policy being returned
- * @param data_size size of data blob
- * @param data blob which contains the recovery document
- * @return transaction status
- */
- enum ANASTASIS_DB_QueryStatus
- (*get_latest_recovery_document)(void *cls,
- const struct
- ANASTASIS_AccountPubP *anastasis_pub,
- size_t *data_size,
- void **data,
- uint32_t *version);
+ * Fetch latest recovery document for user.
+ *
+ * @param cls closure
+ * @param anastasis_pub public key of the user's account
+ * @param account_sig signature
+ * @param prev_hash hash of the previous uploaded recovery data
+ * @param recovery_data_hash hash of the current recovery data
+ * @param data_size size of data blob
+ * @param data blob which contains the recovery document
+ * @param version[OUT] set to the version number of the policy being returned
+ * @return transaction status
+ */
+enum ANASTASIS_DB_QueryStatus
+(*get_latest_recovery_document)(void *cls,
+ const struct
+ ANASTASIS_AccountPubP *anastasis_pub,
+ struct
+ ANASTASIS_AccountSignatureP *account_sig,
+ struct
+ GNUNET_HashCode *prev_hash,
+ struct
+ GNUNET_HashCode *recovery_data_hash,
+ size_t *data_size,
+ void **data,
+ uint32_t *version);
/**
* Upload Truth, which contains the Truth and the KeyShare.
@@ -252,13 +261,57 @@ struct ANASTASIS_DatabasePlugin
size_t *key_share_size);
/**
-* @param cls closure
-* @param anastasis_pub account identifier
-* @return transaction status
-*/
+ * @param cls closure
+ * @param anastasis_pub account identifier
+ * @return transaction status
+ */
+ enum ANASTASIS_DB_QueryStatus
+ (*lookup_account)(void *cls,
+ const struct
+ ANASTASIS_AccountPubP *anastasis_pub);
+
+ /**
+ * Lookup pending payments by account.
+ *
+ * @param cls closure
+ * @param account_pub account to look for pending payment under
+ */
+ enum ANASTASIS_DB_QueryStatus
+ (*lookup_pending_payment_by_account)(void *cls,
+ const struct
+ ANASTASIS_AccountPubP *account_pub);
+
+/**
+ * Increment account lifetime.
+ *
+ * @param cls closure
+ * @param account_pub which account received a payment
+ * @param payment_identifier proof of payment, must be unique and match
pending payment
+ * @param lifetime for how long is the account now paid (increment)
+ * @return transaction status
+ */
+enum ANASTASIS_DB_QueryStatus
+(*increment_lifetime)(void *cls,
+ const struct ANASTASIS_AccountPubP *anastasis_pub,
+ const struct ANASTASIS_PaymentSecretP
*payment_identifier,
+ struct GNUNET_TIME_Relative lifetime);
+
+
+/**
+ * Store payment. Used to begin a payment, not indicative
+ * that the payment actually was made. (That is done
+ * when we increment the account's lifetime.)
+ *
+ * @param cls closure
+ * @param anastasis_pub anastasis's public key
+ * @param post_counter how many uploads does @a amount pay for
+ * @param payment_secret payment secret which the user must provide with every
upload
+ * @return transaction status
+ */
enum ANASTASIS_DB_QueryStatus
-(*lookup_account)(void *cls,
- const struct
- ANASTASIS_AccountPubP *anastasis_pub);
+(*record_payment)(void *cls,
+ const struct ANASTASIS_AccountPubP *anastasis_pub,
+ unsigned int post_counter,
+ const struct ANASTASIS_PaymentSecretP *payment_secret);
};
#endif
diff --git a/src/lib/auditor.in b/src/lib/auditor.in
new file mode 100644
index 0000000..04b98dc
Binary files /dev/null and b/src/lib/auditor.in differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/auditors/auditor.out
b/src/lib/test_anastasis_api_home/.local/share/taler/auditors/auditor.out
index 9e4b3d1..909cf46 100644
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/auditors/auditor.out and
b/src/lib/test_anastasis_api_home/.local/share/taler/auditors/auditor.out differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/.gitignore
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/.gitignore
new file mode 100644
index 0000000..72e8ffc
--- /dev/null
+++
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/.gitignore
@@ -0,0 +1 @@
+*
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574613870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574613870000000
deleted file mode 100755
index c12b746..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574613870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574776296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574776296000000
new file mode 100755
index 0000000..4303fbe
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1574776296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575218370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575218370000000
deleted file mode 100755
index f806d8d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575218370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575380796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575380796000000
new file mode 100755
index 0000000..ff79f4d
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575380796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575822870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575822870000000
deleted file mode 100755
index 431a2ae..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575822870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575985296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575985296000000
new file mode 100755
index 0000000..3e20661
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1575985296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576427370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576427370000000
deleted file mode 100755
index a758bc5..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576427370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576589796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576589796000000
new file mode 100755
index 0000000..b300da7
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1576589796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577031870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577031870000000
deleted file mode 100755
index 00576f5..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577031870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577194296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577194296000000
new file mode 100755
index 0000000..0f1bced
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577194296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577636370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577636370000000
deleted file mode 100755
index 858a593..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577636370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577798796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577798796000000
new file mode 100755
index 0000000..481ef60
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1577798796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578240870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578240870000000
deleted file mode 100755
index d329ab0..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578240870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578403296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578403296000000
new file mode 100755
index 0000000..58721de
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578403296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578845370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578845370000000
deleted file mode 100755
index 97a1bbb..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1578845370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579007796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579007796000000
new file mode 100755
index 0000000..8eafaed
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579007796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579449870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579449870000000
deleted file mode 100755
index 2a4e415..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579449870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579612296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579612296000000
new file mode 100755
index 0000000..3897059
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1579612296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580054370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580054370000000
deleted file mode 100755
index a9d78a8..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580054370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580216796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580216796000000
new file mode 100755
index 0000000..b103aad
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580216796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580658870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580658870000000
deleted file mode 100755
index d7ff577..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580658870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580821296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580821296000000
new file mode 100755
index 0000000..f7d942b
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1580821296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581263370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581263370000000
deleted file mode 100755
index 98d44c9..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581263370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581425796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581425796000000
new file mode 100755
index 0000000..a2da506
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581425796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581867870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581867870000000
deleted file mode 100755
index 4ca1c90..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1581867870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582030296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582030296000000
new file mode 100755
index 0000000..65bfeac
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582030296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582472370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582472370000000
deleted file mode 100755
index d77e44d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582472370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582634796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582634796000000
new file mode 100755
index 0000000..6267af0
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1582634796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583076870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583076870000000
deleted file mode 100755
index cea5ca7..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583076870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583239296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583239296000000
new file mode 100755
index 0000000..4638a6c
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583239296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583681370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583681370000000
deleted file mode 100755
index 7b9cc9e..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583681370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583843796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583843796000000
new file mode 100755
index 0000000..b1e02f1
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1583843796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584285870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584285870000000
deleted file mode 100755
index 93ee950..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584285870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584448296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584448296000000
new file mode 100755
index 0000000..a78c0f9
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584448296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584890370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584890370000000
deleted file mode 100755
index 6d75427..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1584890370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585052796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585052796000000
new file mode 100755
index 0000000..41edb3e
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585052796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585494870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585494870000000
deleted file mode 100755
index 15c8b2d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585494870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585657296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585657296000000
new file mode 100755
index 0000000..0d31aaf
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1585657296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586099370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586099370000000
deleted file mode 100755
index 92175dd..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586099370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586261796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586261796000000
new file mode 100755
index 0000000..4d373fc
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586261796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586703870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586703870000000
deleted file mode 100755
index 6cd75e0..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586703870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586866296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586866296000000
new file mode 100755
index 0000000..3243669
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1586866296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587308370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587308370000000
deleted file mode 100755
index 4d1fb96..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587308370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587470796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587470796000000
new file mode 100755
index 0000000..eb4df48
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587470796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587912870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587912870000000
deleted file mode 100755
index f01975e..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1587912870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588075296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588075296000000
new file mode 100755
index 0000000..bd22322
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588075296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588517370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588517370000000
deleted file mode 100755
index d271702..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588517370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588679796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588679796000000
new file mode 100755
index 0000000..2cc8fbd
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1588679796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589121870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589121870000000
deleted file mode 100755
index a32d745..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589121870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589284296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589284296000000
new file mode 100755
index 0000000..207898f
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589284296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589726370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589726370000000
deleted file mode 100755
index e129d5a..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589726370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589888796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589888796000000
new file mode 100755
index 0000000..b8b7ed4
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1589888796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590330870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590330870000000
deleted file mode 100755
index 3cc33a5..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590330870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590493296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590493296000000
new file mode 100755
index 0000000..174ad3a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590493296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590935370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590935370000000
deleted file mode 100755
index 7a17c07..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1590935370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591097796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591097796000000
new file mode 100755
index 0000000..4349633
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591097796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591539870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591539870000000
deleted file mode 100755
index 656b4ae..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591539870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591702296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591702296000000
new file mode 100755
index 0000000..1dcecc9
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1591702296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592144370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592144370000000
deleted file mode 100755
index 663369f..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592144370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592306796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592306796000000
new file mode 100755
index 0000000..1b161cf
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592306796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592748870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592748870000000
deleted file mode 100755
index b251352..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592748870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592911296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592911296000000
new file mode 100755
index 0000000..d580736
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1592911296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593353370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593353370000000
deleted file mode 100755
index 0cbf5e1..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593353370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593515796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593515796000000
new file mode 100755
index 0000000..9deee45
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593515796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593957870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593957870000000
deleted file mode 100755
index 62571ee..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1593957870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1594120296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1594120296000000
new file mode 100755
index 0000000..def3bcf
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_01-G06NP4M2EJCVJAZ1P5BM/1594120296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1574613870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1574613870000000
deleted file mode 100755
index ff0c780..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1574613870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1574776296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1574776296000000
new file mode 100755
index 0000000..4911fa4
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1574776296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575218370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575218370000000
deleted file mode 100755
index 758bcdf..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575218370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575380796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575380796000000
new file mode 100755
index 0000000..97776b6
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575380796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575822870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575822870000000
deleted file mode 100755
index 4fd0b98..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575822870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575985296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575985296000000
new file mode 100755
index 0000000..447b673
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1575985296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1576427370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1576427370000000
deleted file mode 100755
index 6986e90..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1576427370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1576589796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1576589796000000
new file mode 100755
index 0000000..9b95381
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1576589796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577031870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577031870000000
deleted file mode 100755
index 8ce3ff7..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577031870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577194296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577194296000000
new file mode 100755
index 0000000..1d6920f
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577194296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577636370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577636370000000
deleted file mode 100755
index a561295..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577636370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577798796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577798796000000
new file mode 100755
index 0000000..447d1c2
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1577798796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578240870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578240870000000
deleted file mode 100755
index f016820..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578240870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578403296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578403296000000
new file mode 100755
index 0000000..1683e77
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578403296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578845370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578845370000000
deleted file mode 100755
index f5bd75a..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1578845370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579007796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579007796000000
new file mode 100755
index 0000000..933df4a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579007796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579449870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579449870000000
deleted file mode 100755
index f1dd25d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579449870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579612296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579612296000000
new file mode 100755
index 0000000..3f261c6
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1579612296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580054370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580054370000000
deleted file mode 100755
index b4c48e0..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580054370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580216796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580216796000000
new file mode 100755
index 0000000..d1e8144
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580216796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580658870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580658870000000
deleted file mode 100755
index a49d3c0..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580658870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580821296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580821296000000
new file mode 100755
index 0000000..52c4b1a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1580821296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581263370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581263370000000
deleted file mode 100755
index f58f301..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581263370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581425796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581425796000000
new file mode 100755
index 0000000..87ba1c9
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581425796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581867870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581867870000000
deleted file mode 100755
index 1a92ed5..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1581867870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582030296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582030296000000
new file mode 100755
index 0000000..f7e29dd
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582030296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582472370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582472370000000
deleted file mode 100755
index 533b5bf..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582472370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582634796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582634796000000
new file mode 100755
index 0000000..a90b3c1
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1582634796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583076870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583076870000000
deleted file mode 100755
index 5925cb7..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583076870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583239296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583239296000000
new file mode 100755
index 0000000..93408f7
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583239296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583681370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583681370000000
deleted file mode 100755
index 3b21d2d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583681370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583843796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583843796000000
new file mode 100755
index 0000000..b318006
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1583843796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584285870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584285870000000
deleted file mode 100755
index 34723ca..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584285870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584448296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584448296000000
new file mode 100755
index 0000000..42449c5
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584448296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584890370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584890370000000
deleted file mode 100755
index bbe9778..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1584890370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585052796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585052796000000
new file mode 100755
index 0000000..cc90123
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585052796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585494870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585494870000000
deleted file mode 100755
index c660193..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585494870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585657296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585657296000000
new file mode 100755
index 0000000..71366da
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1585657296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586099370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586099370000000
deleted file mode 100755
index 07cb825..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586099370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586261796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586261796000000
new file mode 100755
index 0000000..bc0e13e
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586261796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586703870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586703870000000
deleted file mode 100755
index ac94bb2..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586703870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586866296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586866296000000
new file mode 100755
index 0000000..3d24443
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1586866296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587308370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587308370000000
deleted file mode 100755
index cce4127..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587308370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587470796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587470796000000
new file mode 100755
index 0000000..d59a59d
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587470796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587912870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587912870000000
deleted file mode 100755
index f692d6b..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1587912870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588075296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588075296000000
new file mode 100755
index 0000000..1f8b9a0
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588075296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588517370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588517370000000
deleted file mode 100755
index 86e6370..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588517370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588679796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588679796000000
new file mode 100755
index 0000000..7db6144
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1588679796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589121870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589121870000000
deleted file mode 100755
index 01b3c0b..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589121870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589284296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589284296000000
new file mode 100755
index 0000000..e7e10af
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589284296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589726370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589726370000000
deleted file mode 100755
index 2263907..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589726370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589888796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589888796000000
new file mode 100755
index 0000000..03aa08a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1589888796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590330870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590330870000000
deleted file mode 100755
index bd4c9ff..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590330870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590493296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590493296000000
new file mode 100755
index 0000000..68ac644
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590493296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590935370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590935370000000
deleted file mode 100755
index 8582dfd..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1590935370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591097796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591097796000000
new file mode 100755
index 0000000..4829ffe
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591097796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591539870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591539870000000
deleted file mode 100755
index 393338d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591539870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591702296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591702296000000
new file mode 100755
index 0000000..4b21aa7
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1591702296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592144370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592144370000000
deleted file mode 100755
index 7904770..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592144370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592306796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592306796000000
new file mode 100755
index 0000000..e7d9c03
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592306796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592748870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592748870000000
deleted file mode 100755
index 0bb8d26..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592748870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592911296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592911296000000
new file mode 100755
index 0000000..bc28832
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1592911296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593353370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593353370000000
deleted file mode 100755
index 7bb3145..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593353370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593515796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593515796000000
new file mode 100755
index 0000000..60dd115
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593515796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593957870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593957870000000
deleted file mode 100755
index a223023..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1593957870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1594120296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1594120296000000
new file mode 100755
index 0000000..4045c37
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_0_1-V0HADRAEFKQ3N2YN2720/1594120296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1574613870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1574613870000000
deleted file mode 100755
index ae6fbaa..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1574613870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1574776296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1574776296000000
new file mode 100755
index 0000000..2d9b960
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1574776296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575218370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575218370000000
deleted file mode 100755
index e9e1cdc..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575218370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575380796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575380796000000
new file mode 100755
index 0000000..72d50f0
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575380796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575822870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575822870000000
deleted file mode 100755
index c77d59c..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575822870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575985296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575985296000000
new file mode 100755
index 0000000..5d48b89
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1575985296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1576427370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1576427370000000
deleted file mode 100755
index 9792501..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1576427370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1576589796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1576589796000000
new file mode 100755
index 0000000..3ddc2c3
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1576589796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577031870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577031870000000
deleted file mode 100755
index 8eb1d51..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577031870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577194296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577194296000000
new file mode 100755
index 0000000..fff5c2f
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577194296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577636370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577636370000000
deleted file mode 100755
index 41a564b..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577636370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577798796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577798796000000
new file mode 100755
index 0000000..f7d7962
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1577798796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578240870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578240870000000
deleted file mode 100755
index dc74dd6..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578240870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578403296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578403296000000
new file mode 100755
index 0000000..467009b
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578403296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578845370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578845370000000
deleted file mode 100755
index ef168f8..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1578845370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579007796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579007796000000
new file mode 100755
index 0000000..3725672
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579007796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579449870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579449870000000
deleted file mode 100755
index cb47b78..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579449870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579612296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579612296000000
new file mode 100755
index 0000000..7e2fdb4
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1579612296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580054370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580054370000000
deleted file mode 100755
index 4cb06d1..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580054370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580216796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580216796000000
new file mode 100755
index 0000000..b01648e
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580216796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580658870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580658870000000
deleted file mode 100755
index 87a377f..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580658870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580821296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580821296000000
new file mode 100755
index 0000000..7441821
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1580821296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581263370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581263370000000
deleted file mode 100755
index d4f3dac..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581263370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581425796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581425796000000
new file mode 100755
index 0000000..492d6c0
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581425796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581867870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581867870000000
deleted file mode 100755
index 910cd57..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1581867870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582030296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582030296000000
new file mode 100755
index 0000000..5d74742
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582030296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582472370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582472370000000
deleted file mode 100755
index e1efa79..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582472370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582634796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582634796000000
new file mode 100755
index 0000000..65d7834
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1582634796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583076870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583076870000000
deleted file mode 100755
index 2777387..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583076870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583239296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583239296000000
new file mode 100755
index 0000000..469b43a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583239296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583681370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583681370000000
deleted file mode 100755
index 80e3477..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583681370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583843796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583843796000000
new file mode 100755
index 0000000..93bdae0
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1583843796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584285870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584285870000000
deleted file mode 100755
index deb510b..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584285870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584448296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584448296000000
new file mode 100755
index 0000000..d2cff90
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584448296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584890370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584890370000000
deleted file mode 100755
index 246acb1..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1584890370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585052796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585052796000000
new file mode 100755
index 0000000..788a6b4
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585052796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585494870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585494870000000
deleted file mode 100755
index eb9143a..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585494870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585657296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585657296000000
new file mode 100755
index 0000000..bb63ff1
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1585657296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586099370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586099370000000
deleted file mode 100755
index c5ae559..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586099370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586261796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586261796000000
new file mode 100755
index 0000000..9f234e7
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586261796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586703870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586703870000000
deleted file mode 100755
index 7caf99e..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586703870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586866296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586866296000000
new file mode 100755
index 0000000..1f849a1
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1586866296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587308370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587308370000000
deleted file mode 100755
index 511c657..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587308370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587470796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587470796000000
new file mode 100755
index 0000000..509f4eb
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587470796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587912870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587912870000000
deleted file mode 100755
index cfb22ff..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1587912870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588075296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588075296000000
new file mode 100755
index 0000000..a6aa44c
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588075296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588517370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588517370000000
deleted file mode 100755
index 20cefa4..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588517370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588679796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588679796000000
new file mode 100755
index 0000000..ece15c5
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1588679796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589121870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589121870000000
deleted file mode 100755
index 51a36e7..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589121870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589284296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589284296000000
new file mode 100755
index 0000000..2d17d6c
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589284296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589726370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589726370000000
deleted file mode 100755
index bfcc711..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589726370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589888796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589888796000000
new file mode 100755
index 0000000..8d34bf3
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1589888796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590330870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590330870000000
deleted file mode 100755
index 00a6d4a..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590330870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590493296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590493296000000
new file mode 100755
index 0000000..24feb51
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590493296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590935370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590935370000000
deleted file mode 100755
index 50ba95b..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1590935370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591097796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591097796000000
new file mode 100755
index 0000000..69757a1
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591097796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591539870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591539870000000
deleted file mode 100755
index 17d37ba..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591539870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591702296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591702296000000
new file mode 100755
index 0000000..919d932
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1591702296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592144370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592144370000000
deleted file mode 100755
index 0b9c7b2..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592144370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592306796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592306796000000
new file mode 100755
index 0000000..d9e523a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592306796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592748870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592748870000000
deleted file mode 100755
index 79249b4..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592748870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592911296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592911296000000
new file mode 100755
index 0000000..9366762
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1592911296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593353370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593353370000000
deleted file mode 100755
index b588cd9..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593353370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593515796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593515796000000
new file mode 100755
index 0000000..5956391
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593515796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593957870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593957870000000
deleted file mode 100755
index 7ce70bc..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1593957870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1594120296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1594120296000000
new file mode 100755
index 0000000..675414a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_1-9EJZYC2VQ92ZY19Z3F71/1594120296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1574613870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1574613870000000
deleted file mode 100755
index dc228e5..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1574613870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1574776296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1574776296000000
new file mode 100755
index 0000000..ff5cc95
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1574776296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575218370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575218370000000
deleted file mode 100755
index 4811961..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575218370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575380796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575380796000000
new file mode 100755
index 0000000..e885930
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575380796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575822870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575822870000000
deleted file mode 100755
index a1e97fd..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575822870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575985296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575985296000000
new file mode 100755
index 0000000..1e0eccf
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1575985296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1576427370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1576427370000000
deleted file mode 100755
index 090b7c4..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1576427370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1576589796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1576589796000000
new file mode 100755
index 0000000..9dd540a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1576589796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577031870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577031870000000
deleted file mode 100755
index 2779fb6..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577031870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577194296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577194296000000
new file mode 100755
index 0000000..46b2f3b
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577194296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577636370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577636370000000
deleted file mode 100755
index 16e0c5c..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577636370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577798796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577798796000000
new file mode 100755
index 0000000..ec141e6
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1577798796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578240870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578240870000000
deleted file mode 100755
index 0308a03..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578240870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578403296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578403296000000
new file mode 100755
index 0000000..22f2785
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578403296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578845370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578845370000000
deleted file mode 100755
index e921023..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1578845370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579007796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579007796000000
new file mode 100755
index 0000000..34ade96
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579007796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579449870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579449870000000
deleted file mode 100755
index 04dff93..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579449870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579612296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579612296000000
new file mode 100755
index 0000000..fe528c4
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1579612296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580054370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580054370000000
deleted file mode 100755
index fcca005..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580054370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580216796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580216796000000
new file mode 100755
index 0000000..5e0a9c1
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580216796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580658870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580658870000000
deleted file mode 100755
index 0c9c0d0..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580658870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580821296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580821296000000
new file mode 100755
index 0000000..3570cbd
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1580821296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581263370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581263370000000
deleted file mode 100755
index 42acbc2..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581263370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581425796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581425796000000
new file mode 100755
index 0000000..6d2f267
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581425796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581867870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581867870000000
deleted file mode 100755
index f1bc268..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1581867870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582030296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582030296000000
new file mode 100755
index 0000000..45951fe
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582030296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582472370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582472370000000
deleted file mode 100755
index 37a5c88..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582472370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582634796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582634796000000
new file mode 100755
index 0000000..9826f54
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1582634796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583076870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583076870000000
deleted file mode 100755
index 13629ac..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583076870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583239296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583239296000000
new file mode 100755
index 0000000..50d70c3
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583239296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583681370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583681370000000
deleted file mode 100755
index d169a32..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583681370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583843796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583843796000000
new file mode 100755
index 0000000..dd9f44b
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1583843796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584285870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584285870000000
deleted file mode 100755
index 416c39b..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584285870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584448296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584448296000000
new file mode 100755
index 0000000..6d1b4ca
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584448296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584890370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584890370000000
deleted file mode 100755
index a9795e2..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1584890370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585052796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585052796000000
new file mode 100755
index 0000000..2d6bf3a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585052796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585494870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585494870000000
deleted file mode 100755
index bfe580d..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585494870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585657296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585657296000000
new file mode 100755
index 0000000..499abbf
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1585657296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586099370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586099370000000
deleted file mode 100755
index 4f8ddef..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586099370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586261796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586261796000000
new file mode 100755
index 0000000..4cbee00
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586261796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586703870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586703870000000
deleted file mode 100755
index b0a1132..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586703870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586866296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586866296000000
new file mode 100755
index 0000000..16f04d7
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1586866296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587308370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587308370000000
deleted file mode 100755
index 3843d13..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587308370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587470796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587470796000000
new file mode 100755
index 0000000..8825759
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587470796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587912870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587912870000000
deleted file mode 100755
index 90398df..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1587912870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588075296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588075296000000
new file mode 100755
index 0000000..a1a73ea
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588075296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588517370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588517370000000
deleted file mode 100755
index 2da9e23..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588517370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588679796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588679796000000
new file mode 100755
index 0000000..ef27b87
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1588679796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589121870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589121870000000
deleted file mode 100755
index 7cc6818..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589121870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589284296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589284296000000
new file mode 100755
index 0000000..e61035e
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589284296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589726370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589726370000000
deleted file mode 100755
index bcfd1c2..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589726370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589888796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589888796000000
new file mode 100755
index 0000000..7f5b16a
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1589888796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590330870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590330870000000
deleted file mode 100755
index 9d4bd9f..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590330870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590493296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590493296000000
new file mode 100755
index 0000000..f5643fb
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590493296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590935370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590935370000000
deleted file mode 100755
index af11bcc..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1590935370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591097796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591097796000000
new file mode 100755
index 0000000..1c41560
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591097796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591539870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591539870000000
deleted file mode 100755
index d506aea..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591539870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591702296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591702296000000
new file mode 100755
index 0000000..ce0d90f
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1591702296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592144370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592144370000000
deleted file mode 100755
index db01b6a..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592144370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592306796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592306796000000
new file mode 100755
index 0000000..709314c
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592306796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592748870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592748870000000
deleted file mode 100755
index f30e00f..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592748870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592911296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592911296000000
new file mode 100755
index 0000000..0476141
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1592911296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593353370000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593353370000000
deleted file mode 100755
index 5f8d7f0..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593353370000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593515796000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593515796000000
new file mode 100755
index 0000000..35ce102
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593515796000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593957870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593957870000000
deleted file mode 100755
index 8eb04ee..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1593957870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1594120296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1594120296000000
new file mode 100755
index 0000000..def21b7
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/denomkeys/EUR_5-5JB5S1XBPG62JD2PTYWT/1594120296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1574613870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1574613870000000
deleted file mode 100644
index b131d23..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1574613870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1574776296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1574776296000000
new file mode 100644
index 0000000..0d65fea
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1574776296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1577033070000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1577033070000000
deleted file mode 100644
index c8e63bd..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1577033070000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1577195496000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1577195496000000
new file mode 100644
index 0000000..5ab9b7d
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1577195496000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1579452270000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1579452270000000
deleted file mode 100644
index 499199e..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1579452270000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1579614696000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1579614696000000
new file mode 100644
index 0000000..e0c1f94
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1579614696000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1581871470000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1581871470000000
deleted file mode 100644
index b64f5ce..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1581871470000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1582033896000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1582033896000000
new file mode 100644
index 0000000..e3c9bbb
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1582033896000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1584290670000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1584290670000000
deleted file mode 100644
index 088dde1..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1584290670000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1584453096000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1584453096000000
new file mode 100644
index 0000000..f2d39bb
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1584453096000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1586709870000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1586709870000000
deleted file mode 100644
index aa7958c..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1586709870000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1586872296000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1586872296000000
new file mode 100644
index 0000000..f7ec001
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1586872296000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1589129070000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1589129070000000
deleted file mode 100644
index 24d0dad..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1589129070000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1589291496000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1589291496000000
new file mode 100644
index 0000000..18c8557
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1589291496000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1591548270000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1591548270000000
deleted file mode 100644
index 2e0d79c..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1591548270000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1591710696000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1591710696000000
new file mode 100644
index 0000000..e3adcd3
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1591710696000000
differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1593967470000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1593967470000000
deleted file mode 100644
index 00a4e83..0000000
Binary files
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1593967470000000
and /dev/null differ
diff --git
a/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1594129896000000
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1594129896000000
new file mode 100644
index 0000000..cd9d3e4
Binary files /dev/null and
b/src/lib/test_anastasis_api_home/.local/share/taler/exchange/live-keys/signkeys/1594129896000000
differ
diff --git a/src/stasis/plugin_anastasis_postgres.c
b/src/stasis/plugin_anastasis_postgres.c
index 66d79b4..383fe81 100644
--- a/src/stasis/plugin_anastasis_postgres.c
+++ b/src/stasis/plugin_anastasis_postgres.c
@@ -211,11 +211,79 @@ commit_transaction (void *cls)
return qs;
}
+
+/**
+ * Lookup pending payments by account.
+ *
+ * @param cls closure
+ * @param account_pub account to look for pending payment under
+ */
+static enum ANASTASIS_DB_QueryStatus
+postgres_lookup_pending_payment_by_account (void *cls,
+ const struct
+ ANASTASIS_AccountPubP
*anastasis_pub)
+{
+ struct GNUNET_TIME_Absolute paid_until;
+ struct GNUNET_TIME_Relative time_remaining;
+ struct PostgresClosure *pg = cls;
+ enum ANASTASIS_DB_QueryStatus qs;
+
+ /* Check if user has paid */
+ {
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
+ GNUNET_PQ_query_param_end
+ };
+ struct GNUNET_PQ_ResultSpec rs[] = {
+ TALER_PQ_result_spec_absolute_time ("paid_until",
+ &paid_until),
+ GNUNET_PQ_result_spec_end
+ };
+
+ qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
+ "user_select",
+ params,
+ rs);
+ }
+
+ switch (qs)
+ {
+ case ANASTASIS_DB_STATUS_HARD_ERROR:
+ rollback (pg);
+ return qs;
+ case ANASTASIS_DB_STATUS_SOFT_ERROR:
+ // FIXME: or: retry internally?
+ rollback (pg);
+ return qs;
+ case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
+ return ANASTASIS_EC_DB_STATUS_UNKNOWN_USER;
+ case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
+ time_remaining = GNUNET_TIME_absolute_get_remaining (paid_until);
+ break;
+ default:
+ // FIXME: Some Action
+ rollback (pg);
+ return qs;
+ }
+
+ // rollback if user hasn't paid
+ if (time_remaining.rel_value_us == 0)
+ {
+ rollback (pg);
+ return ANASTASIS_EC_DB_STATUS_PAYMENT_EXPIRED;
+ }
+ return qs;
+}
+
+
/**
* Upload encrypted recovery document.
*
* @param cls closure
* @param anastasis_pub public key of the user's account
+ * @param account_sig signature affirming storage request
+ * @param old_data_hash hash of the previous uploaded recovery data (must
match)
+ * @param data_hash hash of @a data
* @param data contains encrypted_recovery_document
* @param data_size size of data blob
* @param payment_secret identifier for the payment, used to later charge on
uploads
@@ -223,11 +291,16 @@ commit_transaction (void *cls)
* @return transaction status, 0 if upload could not be finished because @a
payment_secret
* did not have enough upload left; HARD error if @a payment_secret
is unknown, ...
*/
-
static enum ANASTASIS_DB_QueryStatus
postgres_store_recovery_document (void *cls,
const struct
ANASTASIS_AccountPubP *anastasis_pub,
+ const struct
+ ANASTASIS_AccountSignatureP *account_sig,
+ const struct
+ GNUNET_HashCode *old_data_hash,
+ const struct
+ GNUNET_HashCode *data_hash,
const void *data,
size_t data_size,
const struct
@@ -237,7 +310,7 @@ postgres_store_recovery_document (void *cls,
struct PostgresClosure *pg = cls;
enum ANASTASIS_DB_QueryStatus qs;
uint32_t postcounter;
- struct GNUNET_TIME_Absolute paid_until;
+ struct GNUNET_HashCode dh;
check_connection (pg);
if (GNUNET_OK != begin_transaction (pg,
@@ -248,51 +321,57 @@ postgres_store_recovery_document (void *cls,
}
/* Check if user has paid */
+ qs = postgres_lookup_pending_payment_by_account (pg,
+ anastasis_pub);
+
+ // check if existing recoverydocument conflicts
{
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
GNUNET_PQ_query_param_end
};
struct GNUNET_PQ_ResultSpec rs[] = {
- TALER_PQ_result_spec_absolute_time ("paid_until",
- &paid_until),
+ GNUNET_PQ_result_spec_auto_from_type ("recovery_data_hash",
+ &dh),
GNUNET_PQ_result_spec_end
};
qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
- "user_select",
+
"recoverydocument_select_hash",
params,
rs);
}
-
- struct GNUNET_TIME_Relative time_remaining;
-
switch (qs)
{
- case ANASTASIS_DB_STATUS_HARD_ERROR:
- rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SOFT_ERROR:
- // FIXME: or: retry internally?
- rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
- return ANASTASIS_EC_DB_STATUS_UNKNOWN_USER;
- case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
- time_remaining = GNUNET_TIME_absolute_get_remaining (paid_until);
+ case GNUNET_DB_STATUS_HARD_ERROR:
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ case GNUNET_DB_STATUS_SOFT_ERROR:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_SOFT_ERROR;
+ case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
+ /* Well, trying to update where there is no original
+ is a hard erorr, even though an odd one */
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
+ /* handle interesting case below */
break;
default:
- // FIXME: Some Action
- rollback (pg);
- return qs;
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
}
- // rollback if user hasn't paid
- if (time_remaining.rel_value_us == 0)
- {
- rollback (pg);
- return ANASTASIS_EC_DB_STATUS_PAYMENT_EXPIRED;
- }
+ /* had an existing recoverydocument, is it identical? */
+ if (0 == GNUNET_memcmp (&dh,
+ data_hash))
+ /* recoverydocument identical to what was provided, no change */
+ return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
+ if (0 == GNUNET_memcmp (&dh,
+ old_data_hash))
+ /* all constraints seem satisified, original error must
+ have been a hard error */
+ return GNUNET_DB_STATUS_HARD_ERROR;
+ /* previous backup does not match old_backup_hash */
+ return ANASTASIS_DB_STATUS_OLD_RECOVERY_UPLOAD_MISSMATCH;
// lookup if the user has enough uploads left and decrement
{
@@ -409,7 +488,7 @@ postgres_store_recovery_document (void *cls,
rollback (pg);
return qs;
}
-
+
{
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
@@ -451,34 +530,31 @@ postgres_store_recovery_document (void *cls,
}
/**
+ * Increment account lifetime.
*
* @param cls closure
- * @param amount amount of taler to be paid
- * @param anastasis_pub anastasis's public key
- * @param initial_post_counter how many uploads does @a amount pay for
- * @param lifetime_inc time the payment is valid till
- * @param payment_secret payment secret which the user must provide with every
upload
+ * @param account_pub which account received a payment
+ * @param payment_identifier proof of payment, must be unique and match
pending payment
+ * @param lifetime for how long is the account now paid (increment)
* @return transaction status
*/
static enum ANASTASIS_DB_QueryStatus
-postgres_record_payment (void *cls,
- const struct TALER_Amount *amount,
- const struct ANASTASIS_AccountPubP *anastasis_pub,
- unsigned int initial_post_counter,
- struct GNUNET_TIME_Relative lifetime_inc,
- const struct ANASTASIS_PaymentSecretP *payment_secret)
+postgres_increment_lifetime (void *cls,
+ const struct ANASTASIS_AccountPubP *anastasis_pub,
+ const struct ANASTASIS_PaymentSecretP
*payment_identifier,
+ struct GNUNET_TIME_Relative lifetime)
{
struct PostgresClosure *pg = cls;
+ struct GNUNET_TIME_Absolute expiration;
enum ANASTASIS_DB_QueryStatus qs;
- struct GNUNET_TIME_Absolute paid_until;
check_connection (pg);
if (GNUNET_OK !=
begin_transaction (pg,
- "record_payment"))
+ "increment lifetime"))
{
GNUNET_break (0);
- return ANASTASIS_DB_STATUS_HARD_ERROR;
+ return GNUNET_DB_STATUS_HARD_ERROR;
}
{
@@ -488,7 +564,7 @@ postgres_record_payment (void *cls,
};
struct GNUNET_PQ_ResultSpec rs[] = {
TALER_PQ_result_spec_absolute_time ("paid_until",
- &paid_until),
+ &expiration),
GNUNET_PQ_result_spec_end
};
@@ -496,115 +572,138 @@ postgres_record_payment (void *cls,
"user_select",
params,
rs);
- switch (qs)
- {
- case ANASTASIS_DB_STATUS_HARD_ERROR:
- rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SOFT_ERROR:
- // FIXME: or: retry internally?
- rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
- paid_until = GNUNET_TIME_absolute_get ();
- break;
- case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
- paid_until = GNUNET_TIME_absolute_max (GNUNET_TIME_absolute_get (),
- paid_until);
- break;
- default:
- // FIXME: Some Action
- rollback (pg);
- return qs;
- }
}
- paid_until = GNUNET_TIME_absolute_add (paid_until,
- lifetime_inc);
- GNUNET_TIME_round_abs (&paid_until);
- if (ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS == qs)
- {
- /* user did not yet exist, create */
- struct GNUNET_PQ_QueryParam params[] = {
- GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
- TALER_PQ_query_param_absolute_time (&paid_until),
- GNUNET_PQ_query_param_end
- };
- qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
- "user_insert",
- params);
- }
- else
+ switch (qs)
{
- /* user exists, update */
- struct GNUNET_PQ_QueryParam params[] = {
- TALER_PQ_query_param_absolute_time (&paid_until),
- GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
- GNUNET_PQ_query_param_end
- };
-
- qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
- "user_update",
- params);
+ case GNUNET_DB_STATUS_HARD_ERROR:
+ rollback (pg);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ case GNUNET_DB_STATUS_SOFT_ERROR:
+ rollback (pg);
+ return ANASTASIS_DB_STATUS_SOFT_ERROR;
+ case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
+ {
+ //user does not exist, create new one
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
+ GNUNET_PQ_query_param_absolute_time (&expiration),
+ GNUNET_PQ_query_param_end
+ };
+
+ expiration = GNUNET_TIME_relative_to_absolute (lifetime);
+ qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
+ "user_insert",
+ params);
+ }
+ break;
+ case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
+ {
+ //user exists, update paid_until
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_absolute_time (&expiration),
+ GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
+ GNUNET_PQ_query_param_end
+ };
+
+ expiration = GNUNET_TIME_absolute_add (expiration,
+ lifetime);
+ qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
+ "user_update",
+ params);
+ }
+ break;
+ default:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
}
switch (qs)
{
- case ANASTASIS_DB_STATUS_HARD_ERROR:
+ case GNUNET_DB_STATUS_HARD_ERROR:
rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SOFT_ERROR:
- // FIXME: or: retry internally?
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ case GNUNET_DB_STATUS_SOFT_ERROR:
rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_SOFT_ERROR;
+ case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
GNUNET_break (0);
rollback (pg);
- return ANASTASIS_DB_STATUS_HARD_ERROR;
- case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
+ return ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS;
+ case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
break;
default:
- // FIXME: Some Action
- rollback (pg);
- return qs;
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
}
-
+ qs = commit_transaction (pg);
+ switch (qs)
{
- struct GNUNET_PQ_QueryParam params[] = {
- GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
- GNUNET_PQ_query_param_uint32 (&initial_post_counter),
- GNUNET_PQ_query_param_auto_from_type (payment_secret),
- GNUNET_PQ_query_param_end
- };
+ case GNUNET_DB_STATUS_HARD_ERROR:
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ case GNUNET_DB_STATUS_SOFT_ERROR:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_SOFT_ERROR;
+ case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
+ return ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT;
+ case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
+ return ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT;
+ default:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ }
+}
- qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
- "payment_insert",
- params);
+/**
+ * Store payment. Used to begin a payment, not indicative
+ * that the payment actually was made. (That is done
+ * when we increment the account's lifetime.)
+ *
+ * @param cls closure
+ * @param anastasis_pub anastasis's public key
+ * @param post_counter how many uploads does @a amount pay for
+ * @param payment_secret payment secret which the user must provide with every
upload
+ * @return transaction status
+ */
+static enum ANASTASIS_DB_QueryStatus
+postgres_record_payment (void *cls,
+ const struct ANASTASIS_AccountPubP *anastasis_pub,
+ unsigned int post_counter,
+ const struct ANASTASIS_PaymentSecretP *payment_secret)
+{
+ struct PostgresClosure *pg = cls;
+ enum ANASTASIS_DB_QueryStatus qs;
+ struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get ();
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
+ GNUNET_PQ_query_param_uint32 (&post_counter),
+ GNUNET_PQ_query_param_auto_from_type (payment_secret),
+ GNUNET_PQ_query_param_absolute_time (&now),
+ GNUNET_PQ_query_param_end
+ };
- switch (qs)
- {
- case ANASTASIS_DB_STATUS_HARD_ERROR:
- rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SOFT_ERROR:
- rollback (pg);
- return qs;
- case ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS:
- GNUNET_break (0);
- rollback (pg);
- return ANASTASIS_DB_STATUS_HARD_ERROR;
- case ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT:
- break;
- default:
- // FIXME: Some Action
- rollback (pg);
- return qs;
- }
+ check_connection (pg);
+ postgres_preflight (pg);
+ qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
+ "payment_insert",
+ params);
+ switch (qs)
+ {
+ case GNUNET_DB_STATUS_SOFT_ERROR:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_SOFT_ERROR;
+ case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_SUCCESS_NO_RESULTS;
+ case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
+ return ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT;
+ case GNUNET_DB_STATUS_HARD_ERROR:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
+ default:
+ GNUNET_break (0);
+ return ANASTASIS_DB_STATUS_HARD_ERROR;
}
-
- qs = commit_transaction (pg);
- if (qs < 0)
- return qs;
- return ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT;
}
/**
@@ -765,14 +864,14 @@ postgres_get_key_share (void *cls,
*/
enum ANASTASIS_DB_QueryStatus
postgres_lookup_account (void *cls,
- const struct
+ const struct
ANASTASIS_AccountPubP *anastasis_pub)
{
struct PostgresClosure *pg = cls;
struct GNUNET_TIME_Absolute paid_until;
struct GNUNET_PQ_QueryParam params[] = {
- GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
- GNUNET_PQ_query_param_end
+ GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
+ GNUNET_PQ_query_param_end
};
struct GNUNET_PQ_ResultSpec rs[] = {
TALER_PQ_result_spec_absolute_time ("paid_until",
@@ -793,15 +892,24 @@ postgres_lookup_account (void *cls,
*
* @param cls closure
* @param anastasis_pub public key of the user's account
- * @param version[OUT] set to the version number of the policy being returned
+ * @param account_sig signature
+ * @param prev_hash hash of the previous uploaded recovery data
+ * @param recovery_data_hash hash of the current recovery data
* @param data_size size of data blob
* @param data blob which contains the recovery document
+ * @param version[OUT] set to the version number of the policy being returned
* @return transaction status
*/
enum ANASTASIS_DB_QueryStatus
postgres_get_latest_recovery_document (void *cls,
const struct
ANASTASIS_AccountPubP *anastasis_pub,
+ struct
+ ANASTASIS_AccountSignatureP
*account_sig,
+ struct
+ GNUNET_HashCode *prev_hash,
+ struct
+ GNUNET_HashCode *recovery_data_hash,
size_t *data_size,
void **data,
uint32_t *version)
@@ -815,6 +923,14 @@ postgres_get_latest_recovery_document (void *cls,
GNUNET_PQ_result_spec_variable_size ("recovery_data",
data,
data_size),
+ GNUNET_PQ_result_spec_auto_from_type ("account_sig",
+ account_sig),
+ GNUNET_PQ_result_spec_auto_from_type ("prev_hash",
+ prev_hash),
+ GNUNET_PQ_result_spec_auto_from_type ("recovery_data_hash",
+ recovery_data_hash),
+ GNUNET_PQ_result_spec_uint32 ("version",
+ version),
GNUNET_PQ_result_spec_end
};
@@ -831,6 +947,9 @@ postgres_get_latest_recovery_document (void *cls,
*
* @param cls closure
* @param anastasis_pub public key of the user's account
+ * @param account_sig signature
+ * @param prev_hash hash of the previous uploaded recovery data
+ * @param recovery_data_hash hash of the current recovery data
* @param version[OUT] set to the version number of the policy the user
requested
* @param data_size size of data blob
* @param data blob which contains the recovery document
@@ -840,6 +959,12 @@ enum ANASTASIS_DB_QueryStatus
postgres_get_recovery_document (void *cls,
const struct
ANASTASIS_AccountPubP *anastasis_pub,
+ struct
+ ANASTASIS_AccountSignatureP *account_sig,
+ struct
+ GNUNET_HashCode *prev_hash,
+ struct
+ GNUNET_HashCode *recovery_data_hash,
uint32_t version,
size_t *data_size,
void **data)
@@ -855,6 +980,12 @@ postgres_get_recovery_document (void *cls,
GNUNET_PQ_result_spec_variable_size ("recovery_data",
data,
data_size),
+ GNUNET_PQ_result_spec_auto_from_type ("account_sig",
+ account_sig),
+ GNUNET_PQ_result_spec_auto_from_type ("prev_hash",
+ prev_hash),
+ GNUNET_PQ_result_spec_auto_from_type ("recovery_data_hash",
+ recovery_data_hash),
GNUNET_PQ_result_spec_end
};
@@ -899,13 +1030,15 @@ libanastasis_plugin_db_postgres_init (void *cls)
" payment_identifier BYTEA NOT NULL
CHECK(LENGTH(payment_identifier)=32),"
" transaction_time TIMESTAMP NOT NULL DEFAULT
NOW()"
");"),
- GNUNET_PQ_make_execute (
- "CREATE TABLE IF NOT EXISTS anastasis_recoverydocument"
- "( user_id BYTEA NOT NULL REFERENCES anastasis_user(user_id),"
- " version INTEGER NOT NULL,"
- " recovery_data BYTEA NOT NULL,"
- " PRIMARY KEY (user_id, version)"
- ");"),
+ GNUNET_PQ_make_execute ("CREATE TABLE IF NOT EXISTS
anastasis_recoverydocument"
+ "( user_id BYTEA NOT NULL REFERENCES
anastasis_user(user_id),"
+ " version INTEGER NOT NULL,"
+ " account_sig BYTEA NOT NULL CHECK
(length(account_sig)=64),"
+ " prev_hash BYTEA NOT NULL CHECK
(length(prev_hash)=64),"
+ " recovery_data_hash BYTEA NOT NULL CHECK
(length(backup_hash)=64),"
+ " recovery_data BYTEA NOT NULL,"
+ " PRIMARY KEY (user_id, version)"
+ ");"),
GNUNET_PQ_EXECUTE_STATEMENT_END
};
struct GNUNET_PQ_PreparedStatement ps[] = {
@@ -938,8 +1071,8 @@ libanastasis_plugin_db_postgres_init (void *cls)
",post_counter"
",payment_identifier"
") VALUES "
- "($1, $2, $3);",
- 3),
+ "($1, $2, $3, $4);",
+ 4),
GNUNET_PQ_make_prepare ("truth_insert",
"INSERT INTO anastasis_truth "
"(truth_id"
@@ -954,10 +1087,13 @@ libanastasis_plugin_db_postgres_init (void *cls)
"INSERT INTO anastasis_recoverydocument "
"(user_id"
",version"
+ ",account_sig"
+ ",prev_hash"
+ ",recovery_data_hash"
",recovery_data"
") VALUES "
- "($1, $2, $3);",
- 3),
+ "($1, $2, $3, $4, $5, $6);",
+ 6),
GNUNET_PQ_make_prepare ("truth_select",
"SELECT "
"truth,"
@@ -1010,6 +1146,16 @@ libanastasis_plugin_db_postgres_init (void *cls)
"anastasis_truth "
"WHERE truth_id =$1;",
1),
+ GNUNET_PQ_make_prepare ("recoverydocument_select_hash",
+ "SELECT "
+ " recovery_data_hash "
+ "FROM"
+ " anastasis_recoverydocument "
+ "WHERE"
+ " user_id=$1"
+ " ORDER BY version DESC "
+ "LIMIT 1;",
+ 1),
GNUNET_PQ_PREPARED_STATEMENT_END
};
@@ -1038,6 +1184,8 @@ libanastasis_plugin_db_postgres_init (void *cls)
plugin->get_latest_recovery_document =
&postgres_get_latest_recovery_document;
plugin->get_recovery_document = &postgres_get_recovery_document;
plugin->lookup_account = &postgres_lookup_account;
+ plugin->lookup_pending_payment_by_account =
&postgres_lookup_pending_payment_by_account;
+ plugin->increment_lifetime = &postgres_increment_lifetime;
plugin->start = &begin_transaction;
plugin->check_connection = &check_connection;
diff --git a/src/stasis/test_anastasis_db.c b/src/stasis/test_anastasis_db.c
index da458fb..aaf9dea 100644
--- a/src/stasis/test_anastasis_db.c
+++ b/src/stasis/test_anastasis_db.c
@@ -60,6 +60,22 @@ static struct ANASTASIS_PaymentSecretP paymentSecretP;
*/
static struct ANASTASIS_AccountPubP accountPubP;
+/**
+ * Signature over hash of body affirming desire to upload an recovery document
+ */
+static struct ANASTASIS_AccountSignatureP account_sig;
+
+/**
+ * Hash of the previous uploaded recovery doucument
+ * (normally the latest version stored in db before upload)
+ */
+static struct GNUNET_HashCode prev_hash;
+
+/**
+ * Hash of the recovery document to be uploaded
+ */
+static struct GNUNET_HashCode recovery_data_hash;
+
/**
* Amount which is deposited, set to random value
*/
@@ -159,6 +175,9 @@ run (void *cls)
int rec_val = 100;
recovery_data = &rec_val;
RND_BLK (recovery_data);
+ GNUNET_CRYPTO_hash (recovery_data,
+ sizeof (recovery_data),
+ &recovery_data_hash);
RND_BLK (&paymentSecretP);
@@ -203,6 +222,9 @@ run (void *cls)
FAILIF (ANASTASIS_DB_STATUS_SUCCESS_ONE_RESULT !=
plugin->store_recovery_document (plugin->cls,
&accountPubP,
+ &account_sig,
+ &prev_hash,
+ &recovery_data_hash,
&recovery_data,
sizeof (&recovery_data),
&paymentSecretP,
--
To stop receiving notification emails like this one, please contact
address@hidden.