MiFare | MiFare Classic support for UWP and Windows Desktop apps | Runtime Evironment library

 by   novotnyllc C# Version: v1.1.3 License: MIT

kandi X-RAY | MiFare Summary

kandi X-RAY | MiFare Summary

MiFare is a C# library typically used in Server, Runtime Evironment, React applications. MiFare has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

A MiFare Classic library for UWP and Desktop apps.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              MiFare has a low active ecosystem.
              It has 31 star(s) with 23 fork(s). There are 11 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 8 open issues and 2 have been closed. On average issues are closed in 111 days. There are 2 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of MiFare is v1.1.3

            kandi-Quality Quality

              MiFare has 0 bugs and 0 code smells.

            kandi-Security Security

              MiFare has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              MiFare code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              MiFare is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              MiFare releases are available to install and integrate.
              MiFare saves you 5 person hours of effort in developing the same functionality from scratch.
              It has 17 lines of code, 0 functions and 73 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of MiFare
            Get all kandi verified functions for this library.

            MiFare Key Features

            No Key Features are available at this moment for MiFare.

            MiFare Examples and Code Snippets

            No Code Snippets are available at this moment for MiFare.

            Community Discussions

            QUESTION

            Android & iOS NFC usage without opening the mobile app
            Asked 2022-Mar-17 at 13:40

            We have a flutter based mobile app, and a Raspberry (which communicate with the backend) with a nfc reader module (it mifare compatible). Now working with physical RFID cards, and the expected operation is if someone's mobile device compatible with it they can read the mobile device nfc data without opening any mobile app and the backend can analyse that, and can determine the user and selecting the user profile in backend.

            In Android you can use the built-in NFC module with api - even in idle mode - ie without opening the app.

            In iOS - a little more complicated - before iOS15, apple only allowed the built-in NFC module to be used for banking transactions. In iOS15, however, there is already an api function that can be used in idle mode to emulate an “access” NFC card.

            So my question if the mobile can send NFC data without opening the mobile app, then how can analyse the raw data in backend after got from the raspberry?

            My opinion is that it can't work without opening the mobile app, because the mobile app must running if you want to send or receive nfc data.

            ...

            ANSWER

            Answered 2022-Mar-17 at 13:40

            On Android you can do this yourself with Host Card Emulation (HSE) but with iOS you cannot.

            But for both you could do it without opening an App on both by integrating to Apple's and Google's wallet systems (Using something like https://passkit.com/ ) as then you can have something like a contactless bank/loyalty card stored inbuilt wallet system.

            I would forget using anything Mifare as this is a proprietary technology and not support by some phones, you should be targetting NFC Forum compliant Technology, more Specifically NFC Type 4 as used by contactless bank cards.

            Source https://stackoverflow.com/questions/71512883

            QUESTION

            NFC Tag prevent copying NTag21x
            Asked 2022-Feb-25 at 18:29

            I would like to store data in an NFC tag in a secure way to avoid copying, but I would like the tag to be affordable and supported by most devices (smartphones).

            The NTag21x seems better than the classic Mifare whose algorithm has been corrupted. But is it possible with this one to lock part of the data by leaving an NDef record accessible for reading?

            Is the NTag21x secure? I saw that his password was 32bits, it seems easy to break with a dictionary, am I wrong?

            On the other hand, after a lot of research I can't really find any detailed documentation on the subject. I don't understand how a reader can tell the difference between the different tags, and what they have in common at the communication protocol level, how to detect a type of tag, know if I can support it in my application. I would like to make a C# / Xamarin application.

            ...

            ANSWER

            Answered 2022-Feb-25 at 18:29

            You need to read the datasheet for the tag.

            Section 8.5.7 and allows you with the AUTH0 field to set the first page at which the password is used from.

            Thus the first part of the Tag can be readable and later pages can be read/write protected. As long as the tag is big enough to store Ndef message at the beginning of the Tag and your private data at the end of the Tag without using overlapping pages you can achieve free to read and password protected data.

            You can also set the AUTHLIM to set the maximum number of negative password verification attempts so that it is not possible to brute force the password.

            To configure these features you need to write to the appropriate memory pages using the low level NfcA transceive commands detailed in the datasheet.

            The biggest problem you have with password protection is if you freely hand out an App that uses the password as it is trivial to reverse engineer the password from the JVM byte code that uses it.

            You don't really need to know the different Tags are identified but having a good understanding of how the different levels of protocols and standards fit together is key, this is where this diagram from wikipedia is good.

            Source https://stackoverflow.com/questions/71267735

            QUESTION

            Use value from constructor as variable in code (Flutter/Dart)
            Asked 2022-Feb-15 at 10:59

            I am new with Flutter/Dart - started middle January.

            I am busy with an integration from Flutter to Google Sheets. Basically, the user will scan their NFC tag and an entry will be created on Google Sheets. The code to send data to Google Sheets comes from Johannes Milke's video.

            My code uses a constructor to create various cards in the Flutter app (code below).

            ...

            ANSWER

            Answered 2022-Feb-15 at 10:59

            You can use widget for get a value of variable of the constructor

            Like this: widget.requestText

            Source https://stackoverflow.com/questions/71121838

            QUESTION

            React Native: Reading data from two sectors at once throws "Transceive fail" error
            Asked 2022-Feb-02 at 16:36

            I am currently working on a simple app, where the user scans the NFC tag and receives the data stored on it on the screen.

            I followed this example and everything works fine when I try to authenticate one sector and read & write data from it but, but when I try to read data from two sectors at once I receive the "Transceive fail" error.

            I am testing the app on a Samsung J6 device using a Mifare 1k Card.

            Here is my code:

            ...

            ANSWER

            Answered 2022-Feb-02 at 16:36

            .forEach() doesn't wait for async callbacks (see this article), so your readBulk function is actually calling this.read() on all sectors at once, without waiting for cleanup. forEach is just running through and firing off callbacks for all of the elements in this.sectors.

            To wait for each auth/read/cleanUp cycle before continuing, you can refactor it like so:

            Source https://stackoverflow.com/questions/70825999

            QUESTION

            React native: intent changed after requestTechnology called and NFC card scanned
            Asked 2022-Jan-12 at 20:26

            I am currently working on a simple app, which scans an NFC tag and reads the data from it. To implement it, I followed this example here.

            For testing, I am using a real android device (Samsung Galaxy J6) and a Mifare NFC card.

            At the launch of the app, everything seems fine, the NfcManager has been successfully started, the tag event has been registered (using NfcManager.registerTagEvent),but the problem occurs when requestTechnology has been called and the NFC card scanned.

            The difference I noticed is regarding the intent in Android: before running requestTechnology and scanning the card against the phone, the intent and the action attached to it look like this => the action is on the main thread.

            After that, the intent and the action look like this.

            It seemed strange to me that the action has changed from the main thread.

            The Android code is exactly like given in the link above and the code in React Native looks like this:

            ...

            ANSWER

            Answered 2022-Jan-11 at 22:35

            I'm not sure why you are looking at the Intent Action as it is of no significance to NFC really.

            Some background of how Android handles NFC should help explain it.

            In Android all Tag detection is handled by a System NFC service/App.

            When you App is not running and a NFC Tag is detected the System Service works out if any App has requested to be started when that type of Tag is seen. It then crafts an Intent to get the System Launcher to launch the main Activity of you app and bundles information about the NFC data in the extras section of the Intent for the System Launcher to pass on in the Intent to your app at Launch time.

            When you are doing requestTechnology your App is already running and you are telling the System NFC Service to pass the NFC data directly to your App, the System Launcher does not need to be involved as your App is already running.

            Now Android has two methods of passing this data directly to your running App, enableForegroundDispatch or the later and much better enableReaderMode.

            You configured react-native-nfc-manager to use the older enableForegroundDispatch which tells the system NFC service to send the Tag details directly to your running Activity. So it does not need to add an Action to tell the system Launcher what to do. But to deliver that Intent with the extras contain data about the Tag directly to your App, the only way for it to do that is to basically restart your App which causes a Pause and Resume.

            But react-native-nfc-manager handles all this for you, so you should not need to worry about what is in the Intent

            Note you can configure react-native-nfc-manager to use enableReaderMode and instead of overloading an Intent to deliver this data to you, if basically creates a Thread in your running App and gives the Thread the Tag data directly and thus does not need to pause and resume your App (plus you get more control of things like NFC detection sound with this newer method)

            So overall the behaviour you are seeing is expected and normal and nothing you should be concerned about or have a problem with.

            Note iOS handles this completely differently but again react-native-nfc-manager handles this via it's iOS specific methods.

            Source https://stackoverflow.com/questions/70673277

            QUESTION

            Writing NDEF to Mifare S50 with Raspberry Pi
            Asked 2022-Jan-06 at 01:21

            I am trying to write NDEF data to an NFC Tag (Mifare S50 chip) so it can work with my iPhone, I'm using a Raspberry Pi 4 with a RC522 NFC module connected via GPIO and using SPI.

            I tried a few approaches to this, and ended up with the code above which didn't seem to write anything to the tag, and it's indeed not readable by my phone, and I think I might be messing up somewhere.

            Here's the code:

            ...

            ANSWER

            Answered 2022-Jan-06 at 01:21

            There are two problems with this code.

            1)You have created a "stream of bytes" of the ndef message but the SimpleMFRC522 package expects a Unicode String and encodes it to convert it to a "stream of bytes", so basically as it is already a "stream of bytes" it cannot be double encoded.

            2)The Mifare S50 chip is a Mifare Classic family chip and these are a proprietary format and don't conform to the NFC Forum Standards and thus don't have a Standards defined way to store Ndef data on them (You need to do more than write a raw set of bytes to the memory to chip for it to be recognised as the data being the Ndef format of data).

            For NFC standard compliant/compatible chips there are a number of defined types of how the Ndef data is stored on each type.

            While NXP has defined a proprietary way to store Ndef data on a Mifare Classic chip, but the "SimpleMFRC522" is very simple indeed and does not have the code to write the Standard Ndef messages never mind the non standard proprietary methods.

            I also note that while the iPhone hardware can read Mifare Classic cards at the low level, I'm not sure it has implemented the Ndef data format on top as well. I do know that some Android phones don't support the proprietary Mifare Classic Hardware at all.

            I suggest you read https://www.nxp.com/docs/en/application-note/AN1305.pdf as this is the proprietary format definition on how to store NDEF data on these cards

            Unfortunately the RC522 is very old and has limited capabilities and thus is not well supported by more capable Python NFC modules.

            You might be better off with https://github.com/ondryaso/pi-rc522 as that at least allows you to write raw bytes.

            Source https://stackoverflow.com/questions/70600519

            QUESTION

            Decoding a weird json file with Dart
            Asked 2021-Nov-05 at 17:37

            This needs to be decode into readable JSON with Dart the problem is. I don't what it is and I don't know how to do it.

            ...

            ANSWER

            Answered 2021-Nov-05 at 17:37

            If you want to convert this in to your text string, then you need to understand the NDEF data format as this looks like a dump of raw data from reading an NFC card with an Ndef record on it.

            Not many libraries have a decoding method only encoding methods.

            So the Key points are:-

            typeNameFormat: 1 is the code for "Well known Ndef format"

            type: [84] is the code for Ndef Text Record

            This leads you to specification for the Ndef text Record https://github.com/haldean/ndef/blob/master/docs/NFCForum-TS-RTD_Text_1.0.pdf

            Then

            payload: [2, 101, 110, 123, 39, 99, 109, 100, 39, 58, 39, 110, 101, 119, 95, 102, 114, 105, 101, 110, 100, 39, 44, 39, 117, 115, 101, 114, 39, 58, 39, 116, 101, 115, 116, 39, 125]

            the

            2 is 2 bytes for language identifier length

            101 is the decimal code for US ASCII char of e

            110 is the decimal code for US ASCII char of n

            So the text is in English

            123 is the decimal code for US ASCII char of {

            etc.

            Should have said this is not JSON but a dump of a Javascript Object in Javascript

            Source https://stackoverflow.com/questions/69854671

            QUESTION

            Mifare 4K change of keys in trailing block returns error "99" using ACR1252 and pyscard
            Asked 2021-Oct-09 at 14:24

            We receive Mifare 4k cards from a supplier who pre-encodes each sector trailer as follows:

            ...

            ANSWER

            Answered 2021-Oct-09 at 14:24

            Turns out the access bit subsequently set by the supplier ff0780 means you need to authenticate the read_key (Key A) in order to write to the trailer block. Very counterintuitive, but works for Mifare 4K card where the access bit was previously set to ff0780:

            Source https://stackoverflow.com/questions/69468239

            QUESTION

            How to get Mifare DESFire file size
            Asked 2021-Apr-29 at 16:13

            This question is with reference to the Mifare SDK TapLinx library usage.

            ...

            ANSWER

            Answered 2021-Apr-29 at 16:13

            After tinkering for a while, I am able to find the proper way to get the file size using below Kotlin snippet:

            Source https://stackoverflow.com/questions/67224907

            QUESTION

            Mifare 1K writing data in two blocks
            Asked 2021-Apr-21 at 14:08

            hello i'm working with APDU command for writting and reading a RFID card . I can read from the block num 2 and write a data of 16 bytes . but i have a problem in writting a longer data so how can i mange i have tried to write in two blocks but it doesnt work. this the way that i have implemented my code in the operation of writing

            ...

            ANSWER

            Answered 2021-Apr-21 at 14:08

            You need to send each block separately. The Mifare Classic Write command will only write one block at once.

            See Section 12.3 of the Card's Data sheet

            So RFTransmit the write command for the first 16 bytes to the first block and RFTransmit the write command for the second 16 bytes to the next block.

            Source https://stackoverflow.com/questions/67197033

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install MiFare

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/novotnyllc/MiFare.git

          • CLI

            gh repo clone novotnyllc/MiFare

          • sshUrl

            git@github.com:novotnyllc/MiFare.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link