View Issue Details

IDProjectCategoryView StatusLast Update
0007267Talerexchangepublic2024-03-07 20:49
Reporteroec Assigned Tooec  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.9.4Fixed in Version0.9.4 
Summary0007267: TEH_make_coin_known needs proper conflict handling and evidence gathering
DescriptionRight now, TEH_make_coin_known calls TEH_RESPONSE_reply_coin_insufficient_funds in the cases TALER_EXCHANGEDB_CKS_DENOM_CONFLICT and TALER_EXCHANGEDB_CKS_AGE_CONFLICT. This is not correct because that function does not gather the required evidence for the noticed conflicts.

We need a new conflict resolver/evidence gatherer function for those cases. It must take into account the usage of the coin in deposits, p2p or refunds (and maybe other circumstances?)
TagsNo tags attached.

Relationships

parent of 0008002 closedoec exchange_do_deposit.sql needs to provide more information on conflict 
related to 0006952 closedFlorian Dold document how public /pay handles refunded coins 

Activities

oec

2022-06-30 10:33

developer   ~0018951

And we need test cases for those situations, too!

oec

2022-06-30 10:40

developer   ~0018952

Also, other places that call TEH_RESPONSE_reply_coin_insufficient_funds might require similar treatment

Christian Grothoff

2023-11-25 04:16

manager   ~0020661

Florian: please note that addressing this bug requires changes to the TALER_SIGNATURE_WALLET_RESERVE_OPEN_DEPOSIT signature. Now, I *think* the current wallet-core does not even use that signature yet, but if it does, this would be a protocol break. Please advise as to whether we need to coordinate here.

oec

2023-12-22 00:05

developer   ~0020785

Commits fa5582930e6198e2783ae9cad59d2d2b4ce2ee1a and 9454b655454317cc129eecc61009ffc7c2a9925b provide the required minimum information for the client in the case of a conflict, either due to age restriction or denomination.

What is now missing are the corresponding tests.

oec

2023-12-22 22:20

developer   ~0020795

commit f7745020a3eb7f63194956ada075862bd1d0a6d6 adds the first test to trigger a denom-conflict and check if the exchange responds properly. It does, but only for RSA so far - for CS we get a 200 instead of a 409. TBC.

oec

2023-12-23 15:03

developer   ~0020798

Tests added in src/testing/test_exchange_api_conflicts.c to generate conflicting coins (wrt to denomination and age commitment) and verify that the exchange replies with 409 and corresponding response data.

Note: In the Clause-Schnorr case of denominations, even when the master secret material for two keys are the same, the required nonce's are still randomly chosen. Therefore, the test expects no conflict in this case for denominations, but still for different age-commitments.

oec

2023-12-23 23:39

developer   ~0020802

fixed with 13bb37b6a811451accc14b3501173637f2c28d10

Issue History

Date Modified Username Field Change
2022-06-30 10:31 oec New Issue
2022-06-30 10:31 oec Status new => assigned
2022-06-30 10:31 oec Assigned To => Christian Grothoff
2022-06-30 10:33 oec Note Added: 0018951
2022-06-30 10:40 oec Note Added: 0018952
2022-07-05 13:20 Christian Grothoff Assigned To Christian Grothoff => oec
2023-04-05 18:37 Florian Dold Target Version => 0.10
2023-04-08 09:56 Christian Grothoff Relationship added related to 0006952
2023-11-25 04:16 Christian Grothoff Note Added: 0020661
2023-12-07 17:33 oec Relationship added parent of 0008002
2023-12-22 00:05 oec Note Added: 0020785
2023-12-22 22:20 oec Note Added: 0020795
2023-12-23 15:03 oec Note Added: 0020798
2023-12-23 23:39 oec Status assigned => resolved
2023-12-23 23:39 oec Resolution open => fixed
2023-12-23 23:39 oec Fixed in Version => git (master)
2023-12-23 23:39 oec Note Added: 0020802
2023-12-24 06:16 Christian Grothoff Fixed in Version git (master) => 0.9.4
2023-12-24 06:16 Christian Grothoff Target Version 0.10 => 0.9.4
2023-12-26 23:25 oec Tag Attached: bug
2024-02-29 22:46 Christian Grothoff Tag Detached: bug
2024-03-07 20:49 Christian Grothoff Status resolved => closed