Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Had some trouble when changing key (A or B doesn't matter) while keeping same instance/session. Even with calling abort() directly before this one didn't fix. I couldn't track down the error but stumbled over one case while searching for workaround:
MiFareCard inherits IDisposable which enables the following usage:
using(MiFareCard mCard = smartcard.e.SmartCard.CreateMiFareCard()){ }
Using this approach multiple times (for example as workaround for error named above) generated multiple keyLocationMaps for same underlying card reader. Without fully disposing the smartcard object the reader won't get in sync again. Just chaning it to static should do the trick.
While adding trace methodes I added TestLogin(...). As my project strongly depends on knowing which keytype-key combination was successful the integrated key failover (method Login(...) in MiFareStandardCardReaderBase) wasn't the right. The most of the method is plain copy&paste based on Login() just without key determination logic.
Hope this will be usefull for others as well.