View Issue Details

IDProjectCategoryView StatusLast Update
0009725Talerchallengerpublic2025-04-11 20:39
Reportersebasjm Assigned ToChristian Grothoff  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Versiongit (master) 
Target Version1.0Fixed in Version1.0 
Summary0009725: is not possible to use challeger with read_only mode
DescriptionWhen a challenge has been setup with a payload it should work as read only (the user can only trigger the challenge and confirm the pin but not change the address)
For this:
 * last_address must be filled with the request payload
 * fix_address must be true
 * changes_left must be 0


Current behavior:

$ curl 'http://challenger.taler.test:1180/setup/1' -X 'POST' -H 'Accept: application/json' -H 'Authorization: Bearer secret-token:xxx' -d '{"CONTACT_NAME":"xxx","ADDRESS_LINES":"xxx","ADDRESS_COUNTRY":"xxx"}
{
  "nonce": "SZYJ57RKM08AW8GZXEJ5C6ZC5BQE1J38RZBK8YGTWGXF1R2HTQ4G"
}

$ curl 'http://challenger.taler.test:1180/authorize/SZYJ57RKM08AW8GZXEJ5C6ZC5BQE1J38RZBK8YGTWGXF1R2HTQ4G?response_type=code&client_id=1&redirect_uri=http%3A%2F%2Fexchange.taler.test%2Fkyc-proof%2Fxxx&state=DE6RQX6MN58T7MRNCD2QGD39KTS0A0WF28HJHFTTE87W1YE1FS00' -X 'POST'
{
  "fix_address": false,
  "solved": false,
  "pin_transmissions_left": 0,
  "auth_attempts_left": 0,
  "retransmission_time": {
    "t_s": 5
  },
  "changes_left": 3
}


Expected behavior:


$ curl 'http://challenger.taler.test:1180/setup/1' -X 'POST' -H 'Accept: application/json' -H 'Authorization: Bearer secret-token:xxx' -d '{"CONTACT_NAME":"xxx","ADDRESS_LINES":"xxx","ADDRESS_COUNTRY":"xxx"}'
{
  "nonce": "SZYJ57RKM08AW8GZXEJ5C6ZC5BQE1J38RZBK8YGTWGXF1R2HTQ4G"
}

$ curl 'http://challenger.taler.test:1180/authorize/SZYJ57RKM08AW8GZXEJ5C6ZC5BQE1J38RZBK8YGTWGXF1R2HTQ4G?response_type=code&client_id=1&redirect_uri=http%3A%2F%2Fexchange.taler.test%2Fkyc-proof%2Fxxx&state=DE6RQX6MN58T7MRNCD2QGD39KTS0A0WF28HJHFTTE87W1YE1FS00' -X 'POST'
{
  "fix_address": true,
  "last_address": {"CONTACT_NAME":"xxx","ADDRESS_LINES":"xxx","ADDRESS_COUNTRY":"xxx"},
  "solved": false,
  "pin_transmissions_left": 0,
  "auth_attempts_left": 0,
  "retransmission_time": {
    "t_s": 5
  },
  "changes_left": 0
}
TagsNo tags attached.

Activities

Christian Grothoff

2025-04-11 14:59

manager   ~0024512

Well, the idea (now clarified in the challenger API) was actually that you would do:

$ curl 'http://challenger.taler.test:1180/setup/1' -X 'POST' -H 'Accept: application/json' -H 'Authorization: Bearer secret-token:xxx' -d '{"CONTACT_NAME":"xxx","ADDRESS_LINES":"xxx","ADDRESS_COUNTRY":"xxx","read_only":true}
{
  "nonce": "SZYJ57RKM08AW8GZXEJ5C6ZC5BQE1J38RZBK8YGTWGXF1R2HTQ4G"
}

to make an address read-only, because not all addresses given as part of /setup are inherently read-only.

Then, you would get:

 curl 'http://challenger.taler.test:1180/authorize/SZYJ57RKM08AW8GZXEJ5C6ZC5BQE1J38RZBK8YGTWGXF1R2HTQ4G?response_type=code&client_id=1&redirect_uri=http%3A%2F%2Fexchange.taler.test%2Fkyc-proof%2Fxxx&state=DE6RQX6MN58T7MRNCD2QGD39KTS0A0WF28HJHFTTE87W1YE1FS00' -X 'POST'
{
  "fix_address": SEEBELOW,
  "last_address": {"CONTACT_NAME":"xxx","ADDRESS_LINES":"xxx","ADDRESS_COUNTRY":"xxx","read_only":true},
  "solved": false,
  "pin_transmissions_left": 0,
  "auth_attempts_left": 0,
  "retransmission_time": {
    "t_s": 5
  },

and act on the 'read_only' field in address. But you are right that "fix_address":true ALSO makes sense in this case, so the latest challenger will set that now as well.

sebasjm

2025-04-11 20:04

developer   ~0024515

Last edited: 2025-04-11 20:05

Looks like the payload is ignored.

$ NONCE=$(curl 'http://challenger.taler.test:1180/setup/2' -X 'POST' -H "Content-type: application/json" -H 'Authorization: Bearer secret-token:chal-secret' -d '{"CONTACT_NAME":"xxx","ADDRESS_LINES":"xxx","ADDRESS_COUNTRY":"yyy","read_only":true}' -s | jq -r .nonce);
$ curl "http://challenger.taler.test:1180/authorize/$NONCE?response_type=code&client_id=2&redirect_uri=http%3A%2F%2Fexchange.taler.test%3A1180%2Fkyc-proof%2Fwallet&state=ddd"

{
  "fix_address": false,
  "solved": false,
  "pin_transmissions_left": 0,
  "auth_attempts_left": 0,
  "retransmission_time": {
    "t_s": 5
  },
  "changes_left": 3
}

Christian Grothoff

2025-04-11 20:39

manager   ~0024516

Ok, that was a stupid bug. Fixed 0716368..0afed3f

Issue History

Date Modified Username Field Change
2025-04-10 22:00 sebasjm New Issue
2025-04-10 22:00 sebasjm Status new => assigned
2025-04-10 22:00 sebasjm Assigned To => Christian Grothoff
2025-04-11 14:59 Christian Grothoff Note Added: 0024512
2025-04-11 14:59 Christian Grothoff Status assigned => resolved
2025-04-11 14:59 Christian Grothoff Resolution open => fixed
2025-04-11 14:59 Christian Grothoff Fixed in Version => 1.0
2025-04-11 14:59 Christian Grothoff Product Version 1.0 => git (master)
2025-04-11 20:04 sebasjm Status resolved => feedback
2025-04-11 20:04 sebasjm Resolution fixed => reopened
2025-04-11 20:04 sebasjm Note Added: 0024515
2025-04-11 20:05 sebasjm Note Edited: 0024515
2025-04-11 20:39 Christian Grothoff Note Added: 0024516
2025-04-11 20:39 Christian Grothoff Status feedback => resolved
2025-04-11 20:39 Christian Grothoff Resolution reopened => fixed