View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0010445 | Taler | donau | public | 2025-09-22 23:18 | 2025-09-23 16:00 |
Reporter | Florian Dold | Assigned To | Christian Grothoff | ||
Priority | high | Severity | block | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Target Version | 1.1 | Fixed in Version | 1.1 | ||
Summary | 0010445: donau rsa secmod generates multiple keys for the same year, without indication which one is valid | ||||
Description | The /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 Information | 2025-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) | ||||
Tags | No tags attached. | ||||
|
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 |
|
Eh, did you configure Donau correctly? There is an implicit assumption here that key validity periods are always the full year. |
|
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 |
|
Unfortunately, it doesn't help to set the DURATION_WITHDRAW to one year. I've attached the entire DONAU config used in the test. |
|
(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 |
|
Ohhh! I think I messed up some paths (taler_ vs donau_) in the config! |
|
Eh, I see "DURATION_WITHDRAW = 7 days" in the generated configuration file on my local disk when running the test. That's bad. |
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 |