View Issue Details

IDProjectCategoryView StatusLast Update
0010445Talerdonaupublic2025-09-23 16:00
ReporterFlorian Dold Assigned ToChristian Grothoff  
PriorityhighSeverityblockReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Version1.1Fixed in Version1.1 
Summary0010445: donau rsa secmod generates multiple keys for the same year, without indication which one is valid
DescriptionThe /keys response contains *multiple* keys for the same year (say 2025) and the same cipher and same amount.

That would be a bug but not a blocker.

However, when using the keys for the current year, it seems like some of them aren't valid. The merchant gets a ec=1702 response from donau.
Additional Information2025-09-22T23:03:06.698343+0200 taler-merchant-httpd-216730(GG468CD63AJ455C24WPFTFYHS8) WARNING External protocol violation detected at donau_api_batch_issue_receipts.c:263.
2025-09-22T23:03:06.698353+0200 taler-merchant-httpd-216730(GG468CD63AJ455C24WPFTFYHS8) ERROR Unexpected response code 500/1702 for POST http://localhost:8084/batch-issue/1
2025-09-22T23:03:06.698358+0200 taler-merchant-httpd-216730(GG468CD63AJ455C24WPFTFYHS8) ERROR Donau replied with HTTP 500 (ec=1702)
TagsNo tags attached.

Activities

Florian Dold

2025-09-22 23:24

manager   ~0025970

Can be reproduced via

$ taler-harness run-integrationtests donau

ONLY in the following commit (in the dev/dold/donau branch!)

commit ce21beec60a94cfd4ce8175ed9ccd72a503cccfe (HEAD -> dev/dold/donau, origin/dev/dold/donau)
Author: Florian Dold <florian@dold.me>
Date: Mon Sep 22 23:23:05 2025 +0200

    donau WIP

Christian Grothoff

2025-09-23 00:55

manager   ~0025971

Eh, did you configure Donau correctly? There is an implicit assumption here that key validity periods are always the full year.

Florian Dold

2025-09-23 08:29

manager   ~0025972

Ah. Well, that's neither documented anywhere nor checked by donau. I'll try if that helps.

The test config that ships with donau (testing/coins-rsa.conf), doesn't just have 1 year validity periods, just for withdrawal:

[doco_eur_10]
value = EUR:10
duration_withdraw = 1 year
anchor_round = 1 year
duration_spend = 2 years
duration_legal = 3 years
fee_withdraw = EUR:0.01
fee_deposit = EUR:0.01
fee_refresh = EUR:0.03
fee_refund = EUR:0.01
CIPHER = RSA
rsa_keysize = 1024

Florian Dold

2025-09-23 10:11

manager   ~0025973

Unfortunately, it doesn't help to set the DURATION_WITHDRAW to one year.

I've attached the entire DONAU config used in the test.

Florian Dold

2025-09-23 10:11

manager   ~0025974

(attachment here)
donau-donau.conf (2,730 bytes)   
[PATHS]
DONAU_DATA_HOME = $DONAU_HOME/.local/share/donau/
DONAU_CONFIG_HOME = $TALER_HOME/.config/donau/
DONAU_CACHE_HOME = $TALER_HOME/.config/donau/
DONAU_RUNTIME_DIR = /tmp/donau-test-donau-6CZ6vA
TALER_HOME = /tmp/taler-integrationtests-B4Xpm3/donau/talerhome-donau-donau

[DONAU-SECMOD-CS]
OVERLAP_DURATION = 0
LOOKAHEAD_SIGN = 24 days

[DONAU-SECMOD-EDDSA]
LOOKAHEAD_SIGN = 24 days
DURATION = 14 days

[DONAU-SECMOD-RSA]
OVERLAP_DURATION = 0
LOOKAHEAD_SIGN = 24 days

[DONAU]
SERVE = tcp
PORT = 8084
BASE_URL = http://localhost:8084/
CURRENCY = TESTKUDOS
CURRENCY_ROUND_UNIT = TESTKUDOS:0.01
DOMAIN = Bern
EXPIRE_LEGAL = 5

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

[DOCO_TESTKUDOS_CT1]
VALUE = TESTKUDOS:0.01
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

[DOCO_TESTKUDOS_CT10]
VALUE = TESTKUDOS:0.10
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

[DOCO_TESTKUDOS_U1]
VALUE = TESTKUDOS:1
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

[DOCO_TESTKUDOS_U2]
VALUE = TESTKUDOS:2
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

[DOCO_TESTKUDOS_U4]
VALUE = TESTKUDOS:4
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

[DOCO_TESTKUDOS_U8]
VALUE = TESTKUDOS:8
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

[DOCO_TESTKUDOS_U10]
VALUE = TESTKUDOS:10
DURATION_WITHDRAW =  1 year
ANCHOR_ROUND =  1 year
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
CIPHER = RSA

donau-donau.conf (2,730 bytes)   

Florian Dold

2025-09-23 10:16

manager   ~0025975

Ohhh! I think I messed up some paths (taler_ vs donau_) in the config!

Christian Grothoff

2025-09-23 10:43

manager   ~0025977

Eh, I see "DURATION_WITHDRAW = 7 days" in the generated configuration file on my local disk when running the test. That's bad.

Issue History

Date Modified Username Field Change
2025-09-22 23:18 Florian Dold New Issue
2025-09-22 23:18 Florian Dold Status new => assigned
2025-09-22 23:18 Florian Dold Assigned To => Christian Grothoff
2025-09-22 23:24 Florian Dold Note Added: 0025970
2025-09-23 00:55 Christian Grothoff Note Added: 0025971
2025-09-23 08:29 Florian Dold Note Added: 0025972
2025-09-23 10:11 Florian Dold Note Added: 0025973
2025-09-23 10:11 Florian Dold Note Added: 0025974
2025-09-23 10:11 Florian Dold File Added: donau-donau.conf
2025-09-23 10:16 Florian Dold Note Added: 0025975
2025-09-23 10:18 Florian Dold Priority urgent => high
2025-09-23 10:43 Christian Grothoff Note Added: 0025977
2025-09-23 16:00 Christian Grothoff Status assigned => resolved
2025-09-23 16:00 Christian Grothoff Resolution open => fixed
2025-09-23 16:00 Christian Grothoff Fixed in Version => 1.1