View Issue Details

IDProjectCategoryView StatusLast Update
0006523Talerexchangepublic2020-08-24 22:26
ReporterFlorian Dold Assigned ToChristian Grothoff  
PriorityhighSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Versiongit (master) 
Target Version0.8Fixed in Version0.8 
Summary0006523: exchange time travel causes issues with missing signing keys
DescriptionThe taler-exchange-httpd process complains about signing keys not being present, even though taler-exchange was invoked with the same timetravel specification as taler-exchange-keyup:

$ taler-exchange-dbinit -c "/tmp/taler-integrationtest-wNQK3j/exchange-testexchange-1.conf"
$ taler-exchange-keyup --timetravel=+34560000000000 -c "/tmp/taler-integrationtest-wNQK3j/exchange-testexchange-1.conf"
$ taler-exchange-wire --timetravel=+34560000000000 -c "/tmp/taler-integrationtest-wNQK3j/exchange-testexchange-1.conf"
$ taler-exchange-httpd --timetravel=+34560000000000 -c "/tmp/taler-integrationtest-wNQK3j/exchange-testexchange-1.conf"
Oct 24 13:59:19-776205 taler-exchange-httpd-101415 ERROR Have no signing key. Bad configuration.
Oct 24 13:59:19-776704 taler-exchange-httpd-101415 ERROR Failed to setup initial key state. This exchange cannot work.

This can easily be reproduced via the TS harness:

  ./testrunner 'test-timetravel'

I've also attached the (generated) config.
TagsNo tags attached.

Activities

Florian Dold

2020-08-24 10:43

manager  

exchange-testexchange-1.conf (3,553 bytes)   
[TALER]
CURRENCY = TESTKUDOS
CURRENCY_ROUND_UNIT = TESTKUDOS:0.01

[PATHS]
TALER_HOME = /tmp/taler-integrationtest-wNQK3j/talerhome
TALER_DATA_HOME = $TALER_HOME/.local/share/taler/
TALER_CONFIG_HOME = $TALER_HOME/.config/taler/
TALER_CACHE_HOME = $TALER_HOME/.config/taler/
TALER_RUNTIME_DIR = ${TMPDIR:-${TMP:-/tmp}}/taler-system-runtime/

[EXCHANGE]
KEYDIR = ${TALER_DATA_HOME}/exchange/live-keys/
MAX_KEYS_CACHING = forever
DB = postgres
MASTER_PRIV_FILE = ${TALER_DATA_HOME}/exchange/offline-keys/master.priv
SERVE = tcp
PORT = 8081
SIGNKEY_DURATION = 4 weeks
LEGAL_DURACTION = 2 years
LOOKAHEAD_SIGN = 32 weeks 1 day
LOOKAHEAD_PROVIDE = 4 weeks 1 day
MASTER_PUBLIC_KEY = WTKF9WEEGXR4WVXHYTCP8QR3GNRK0KVPR0AK0ZEB3WGPSXWCYQEG

[EXCHAGE]
REVOCATION_DIR = ${TALER_DATA_HOME}/exchange/revocations

[FEES-X-TALER-BANK]
WIRE-FEE-2020 = TESTKUDOS:0.01
CLOSING-FEE-2020 = TESTKUDOS:0.01
WIRE-FEE-2021 = TESTKUDOS:0.01
CLOSING-FEE-2021 = TESTKUDOS:0.01
WIRE-FEE-2022 = TESTKUDOS:0.01
CLOSING-FEE-2022 = TESTKUDOS:0.01
WIRE-FEE-2023 = TESTKUDOS:0.01
CLOSING-FEE-2023 = TESTKUDOS:0.01
WIRE-FEE-2024 = TESTKUDOS:0.01
CLOSING-FEE-2024 = TESTKUDOS:0.01
WIRE-FEE-2025 = TESTKUDOS:0.01
CLOSING-FEE-2025 = TESTKUDOS:0.01
WIRE-FEE-2026 = TESTKUDOS:0.01
CLOSING-FEE-2026 = TESTKUDOS:0.01
WIRE-FEE-2027 = TESTKUDOS:0.01
CLOSING-FEE-2027 = TESTKUDOS:0.01
WIRE-FEE-2028 = TESTKUDOS:0.01
CLOSING-FEE-2028 = TESTKUDOS:0.01

[EXCHANGEDB-POSTGRES]
CONFIG = postgres:///taler-integrationtest

[EXCHANGE-ACCOUNT-1]
WIRE_RESPONSE = ${TALER_DATA_HOME}/exchange/account-1.json
PAYTO_URI = payto://x-taler-bank/MyExchange
ENABLE_CREDIT = yes
ENABLE_DEBIT = yes
WIRE_GATEWAY_URL = http://localhost:8082/taler-wire-gateway/MyExchange/
WIRE_GATEWAY_AUTH_METHOD = basic
USERNAME = MyExchange
PASSWORD = x

[COIN_TESTKUDOS_CT1]
VALUE = TESTKUDOS:0.01
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.00
FEE_WITHDRAW = TESTKUDOS:0.01
FEE_REFRESH = TESTKUDOS:0.01
FEE_REFUND = TESTKUDOS:0.00
RSA_KEYSIZE = 1024

[COIN_TESTKUDOS_CT10]
VALUE = TESTKUDOS:0.10
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.01
FEE_WITHDRAW = TESTKUDOS:0.01
FEE_REFRESH = TESTKUDOS:0.01
FEE_REFUND = TESTKUDOS:0.00
RSA_KEYSIZE = 1024

[COIN_TESTKUDOS_U1]
VALUE = TESTKUDOS:1
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.02
FEE_WITHDRAW = TESTKUDOS:0.02
FEE_REFRESH = TESTKUDOS:0.02
FEE_REFUND = TESTKUDOS:0.02
RSA_KEYSIZE = 1024

[COIN_TESTKUDOS_U10]
VALUE = TESTKUDOS:10
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.2
FEE_WITHDRAW = TESTKUDOS:0.2
FEE_REFRESH = TESTKUDOS:0.2
FEE_REFUND = TESTKUDOS:0.2
RSA_KEYSIZE = 1024

[COIN_TESTKUDOS_U2]
VALUE = TESTKUDOS:2
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.02
FEE_WITHDRAW = TESTKUDOS:0.02
FEE_REFRESH = TESTKUDOS:0.02
FEE_REFUND = TESTKUDOS:0.02
RSA_KEYSIZE = 1024

[COIN_TESTKUDOS_U4]
VALUE = TESTKUDOS:4
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.02
FEE_WITHDRAW = TESTKUDOS:0.02
FEE_REFRESH = TESTKUDOS:0.02
FEE_REFUND = TESTKUDOS:0.02
RSA_KEYSIZE = 1024

[COIN_TESTKUDOS_U8]
VALUE = TESTKUDOS:8
DURATION_WITHDRAW = 7 days
DURATION_SPEND = 2 years
DURATION_LEGAL = 3 years
FEE_DEPOSIT = TESTKUDOS:0.16
FEE_WITHDRAW = TESTKUDOS:0.16
FEE_REFRESH = TESTKUDOS:0.16
FEE_REFUND = TESTKUDOS:0.16
RSA_KEYSIZE = 1024

exchange-testexchange-1.conf (3,553 bytes)   

Florian Dold

2020-08-24 10:54

manager   ~0016731

(Note that the test-timetravel test is expected to fail, but the *wallet* should fail. Currently for me, the exchange fails to start due to the signing key issues.)

Christian Grothoff

2020-08-24 22:26

manager   ~0016754

Fixed in 35f7415f..ce266ce8 -- at least the timetravel part ;-).

Issue History

Date Modified Username Field Change
2020-08-24 10:43 Florian Dold New Issue
2020-08-24 10:43 Florian Dold Status new => assigned
2020-08-24 10:43 Florian Dold Assigned To => Christian Grothoff
2020-08-24 10:43 Florian Dold File Added: exchange-testexchange-1.conf
2020-08-24 10:54 Florian Dold Note Added: 0016731
2020-08-24 22:26 Christian Grothoff Note Added: 0016754
2020-08-24 22:26 Christian Grothoff Status assigned => resolved
2020-08-24 22:26 Christian Grothoff Resolution open => fixed
2020-08-24 22:26 Christian Grothoff Fixed in Version => 0.8