Code Monkey home page Code Monkey logo

Comments (9)

ivard avatar ivard commented on August 24, 2024 1

Oh that sounds ugly. That would be a subtle one. We'll dive into this.

from irmamobile.

bvgastel avatar bvgastel commented on August 24, 2024

Let me know if you need more information. I kept my Yivi app in this state to help you reproduce the issue. You know how to contact me directly :)

from irmamobile.

ivard avatar ivard commented on August 24, 2024

It would be practical for us to know:

  1. Which session were you trying (only disclosing pbdf.sidn-pbdf.email.email, or something more complicated)?
  2. Did you already have an unexpired attribute, or did you obtain it using the 'Reobtain' button?
  3. After you selected the unexpired attribute, did the final overview screen actually show this unexpired attrbute? Or did it still show the expired attribute?

from irmamobile.

bvgastel avatar bvgastel commented on August 24, 2024

Sure!

  1. only disclosing email: { "@context": "https://irma.app/ld/request/disclosure/v2", "disclose": [[["pbdf.sidn-pbdf.email.email"]]] }
  2. Did not click re-obtain because it is an unused email address nowadays, so don't want to renew it. And there is no GUI interface to delete an expired attribute if you don't want it anymore.
  3. The final overview screen showed a different email address (the unexpired one). But the site I revealed to did not accept my attribute. I did not understand until I looked at the logs that clearly showed: it was another attribute (the different mail address), and this one was expired (so rejected).

I can not reproduce the issue, so it might be a race condition in loading the data inside the app, or something like that. Or it might be different in the new version as my app auto updated last night (as shown by the overview in Google Play Store).

from irmamobile.

sjoerdlmkns avatar sjoerdlmkns commented on August 24, 2024

Hey @bvgastel, thank you for reporting this issue. I am currently investigating it with Ivar. So far, I'm not really sure how it could have happened, and I'm not able to reproduce it. If I'm understanding correctly, this only happened once? Or was it reproducible before the update? Nevertheless, we will keep an eye on it.

Regarding the other issue, the problem with deleting revoked/expired credentials has been fixed in #169, and it should be included in the new release.

from irmamobile.

bvgastel avatar bvgastel commented on August 24, 2024

No problem! I was very frustrated for about 2 days (not full time ;) because a new IRMA/Yivi connector I was making did not work. Only after properly checking the actually disclosed attribute, I realized the GUI did show something else. So I replicated it 20-30 times or so over 2 days.

I never 'reboot' the app, so it might be that the Yivi app had a data race internally. What I remember is: I had 3 expired mail attributes, I renewed 2 of them. But not the first one (see original post). So it might be something with the renewal code, as that code path was activated for different attributes.

Hope this info helps. And thanks for fixing the other issue in #169.

from irmamobile.

sjoerdlmkns avatar sjoerdlmkns commented on August 24, 2024

I'm still unsure about how this issue could have happened. I attempted the following steps (on 7.3.0):

  1. Issued three credentials of the same type.
  2. Revoked all three (assuming it would work the same as expired credentials, which are difficult to test/mock).
  3. Renewed the last two credentials, resulting in five total credentials with three revoked.
  4. Started a disclosure session.
  5. The first non-revoked credential is selected.
  6. Finished the disclosure session.
  7. Logged the disclosureChoices in the RespondPermissionEvent that was dispatched on the IrmaRepo.
  8. The log matched the first non-revoked credential.

Based on my observations, I have a few guesses about the issue:

  • It may be a rare race/timing issue.
  • It may only occur with expired credentials, not revoked ones.
  • The problem could be at a deeper level, possibly in the IrmaRepo or irmago

from irmamobile.

bvgastel avatar bvgastel commented on August 24, 2024

Yeah, these are the frustrating and hard to reproduce bug reports. As I can also not reproduce anymore (might be because my app updated/restarted), I would:

  • maybe add some extra check in the app that the credential that is being transmitted is the one that that is selected (depending on the code structure, reporting, etc this can be useful if there is time between);
  • after that: close this issue, and wait.

from irmamobile.

sjoerdlmkns avatar sjoerdlmkns commented on August 24, 2024

I tried building such a check, but I'm not sure this is even possible with the way things are set up right now. I could build a check to ensure that the credential is not expired/revoked, but that would not cover all cases, so I'm hesitant to do that. I'm kind of hitting a wall with this issue, so I guess we have to close it for now. We will keep this on our radar, however.

If you happen to encounter this problem again while working on your connector, please try to collect as much data as possible (such as screenshots or logs). Feel free to contact me directly or reopen this issue. I'm sorry for the inconvenience

from irmamobile.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.