View Issue Details

IDProjectCategoryView StatusLast Update
0007267Talerexchangepublic2024-03-07 19:49
Reporteroec Assigned Tooec Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
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.

Required notifications

Address or linkRemarkAdded byNotifiedActions

The plan

IDSummaryStatusAssigned ToEstimated effort (hours)
0008002exchange_do_deposit.sql needs to provide more information on conflict closedoec
This issue (hours)
Its children (hours)0
Together (hours)0
Nothing is missing: the plan can be finished.

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 08:33

developer   ~0018951

And we need test cases for those situations, too!

oec

2022-06-30 08:40

developer   ~0018952

Also, other places that call TEH_RESPONSE_reply_coin_insufficient_funds might require similar treatment

Christian Grothoff

2023-11-25 03: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-21 23: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 21: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 14: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 22:39

developer   ~0020802

fixed with 13bb37b6a811451accc14b3501173637f2c28d10

Issue History

Date ModifiedUsernameFieldChange
2022-06-30 08:31oecNew Issue
2022-06-30 08:31oecStatusnew => assigned
2022-06-30 08:31oecAssigned To => Christian Grothoff
2022-06-30 08:33oecNote Added: 0018951
2022-06-30 08:40oecNote Added: 0018952
2022-07-05 11:20Christian GrothoffAssigned ToChristian Grothoff => oec
2023-04-05 16:37Florian DoldTarget Version => 0.10
2023-04-08 07:56Christian GrothoffRelationship addedrelated to 0006952
2023-11-25 03:16Christian GrothoffNote Added: 0020661
2023-12-07 16:33oecRelationship addedparent of 0008002
2023-12-21 23:05oecNote Added: 0020785
2023-12-22 21:20oecNote Added: 0020795
2023-12-23 14:03oecNote Added: 0020798
2023-12-23 22:39oecStatusassigned => informing
2023-12-23 22:39oecResolutionopen => fixed
2023-12-23 22:39oecFixed in Version => git (master)
2023-12-23 22:39oecNote Added: 0020802
2023-12-24 05:16Christian GrothoffFixed in Versiongit (master) => 0.9.4
2023-12-24 05:16Christian GrothoffTarget Version0.10 => 0.9.4
2023-12-26 22:25oecTag Attached: bug
2024-02-29 21:46Christian GrothoffTag Detached: bug
2024-03-07 19:49Christian GrothoffStatusinforming => closed