View Issue Details

IDProjectCategoryView StatusLast Update
0007317Talerwallet (TS core)public2022-09-11 04:55
Reportersebasjm Assigned Tosebasjm  
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Versiongit (master) 
Target Versiongit (master) 
Summary0007317: p2p push payment with age restricted exchange fails
Description
Unexpected HTTP status 403 in response
{
  "code": 7005,
  "hint": "Unexpected HTTP status 403 in response",
  "requestUrl": "https://exchange.taler.ar/purses/DK8SCM52GE63D81E5X9Q6QAH6A7P536HC2R66V9Q8M67A7ANGFKG/deposit",
  "httpStatusCode": 403,
  "errorResponse": {
    "code": 1006,
    "hint": "The signature of the denomination key over the coin is not valid."
  }
}
TagsNo tags attached.

Activities

oec

2022-09-03 14:59

developer   ~0019082

I couldn't reproduce the problem. Please check my note.

Florian Dold

2022-09-05 12:12

manager   ~0019084

The exchange error is a bit strange. But it's possible that we don't properly include the age restriction information in the signatures for p2p payments.

I'll look into this.

Instead of trying it manually, we should of course have an integration test for it.

Florian Dold

2022-09-05 13:52

manager   ~0019085

I've now created an integration test to reproduce this (test-age-restrictions-peer.ts). After I was able to reproduce the error, I fixed the following things:

* The wallet didn't sign purse deposit permissions correctly when age restrictions were involved
* The exchange didn't parse age commitments properly (mask was missing)
* The exchange required an attestation signature even when min_age was 0.

This should be fixed now and the test is passing.

@sebasjm: Please check that this also works your setup and close this bug if it does.

sebasjm

2022-09-05 18:26

developer   ~0019094

Now the exchange crash at

ERROR Assertion failed at age_restriction.c:41. Aborting.

#1 0x00007f3c7c4bc537 in __GI_abort () at abort.c:79
#2 0x00007f3c7c69f4ac in GNUNET_abort_ () at common_logging.c:281
#3 0x00007f3c7c764c9b in TALER_age_commitment_hash (commitment=0x561345a14b78, ahash=0x561345a14a40) at age_restriction.c:41
#4 0x00005613454d9df1 in TEH_common_purse_deposit_parse_coin (connection=0x561346192a30, coin=0x561345a149e0, jcoin=0x5613481468d0)
    at taler-exchange-httpd_common_deposit.c:72
#5 0x00005613454f44d1 in parse_coin (connection=0x561346192a30, pcc=0x7ffffcc73e20, coin=0x561345a149e0, jcoin=0x5613481468d0)
    at taler-exchange-httpd_purses_create.c:379
#6 0x00005613454f4e21 in TEH_handler_purses_create (connection=0x561346192a30, purse_pub=0x7ffffcc74080, root=0x561348271940)

Issue History

Date Modified Username Field Change
2022-09-02 15:54 sebasjm New Issue
2022-09-02 15:54 sebasjm Status new => assigned
2022-09-02 15:54 sebasjm Assigned To => Florian Dold
2022-09-03 13:10 oec Assigned To Florian Dold => oec
2022-09-03 14:59 oec Status assigned => feedback
2022-09-03 14:59 oec Note Added: 0019082
2022-09-05 12:12 Florian Dold Note Added: 0019084
2022-09-05 12:12 Florian Dold Assigned To oec => Florian Dold
2022-09-05 12:14 Florian Dold Summary traying to pay an invoice with an age restricted exchange => paying an invoice with an age restricted exchange fails
2022-09-05 12:26 Florian Dold Summary paying an invoice with an age restricted exchange fails => p2p push payment with age restricted exchange fails
2022-09-05 13:49 Florian Dold Assigned To Florian Dold => sebasjm
2022-09-05 13:52 Florian Dold Note Added: 0019085
2022-09-05 18:26 sebasjm Note Added: 0019094
2022-09-11 04:55 sebasjm Status feedback => resolved
2022-09-11 04:55 sebasjm Resolution open => fixed