Provided by: libfreefare-doc_0.4.0-2build1_all bug

NAME

     mifare_application_alloc, mifare_application_find, mifare_application_free, mifare_application_read,
     mifare_application_write — Mifare Applications Manipulation Functions

LIBRARY

     Mifare card manipulation library (libfreefare, -lfreefare)

SYNOPSIS

     #include <freefare.h>

     MifareClassicSectorNumber *
     mifare_application_alloc(Mad mad, MadAid aid, size_t size);

     void
     mifare_application_free(Mad mad, MadAid aid);

     MifareClassicSectorNumber *
     mifare_application_find(Mad mad, MadAid aid);

     ssize_t
     mifare_application_read(MifareTag tag, Mad mad, MadAid aid, void *buf, size_t nbytes, MifareClassicKey key,
         MifareClassicKeyType key_type);

     ssize_t
     mifare_application_write(MifareTag tag, Mad mad, MadAid aid, const void *buf, size_t nbytes,
         MifareClassicKey key, MifareClassicKeyType key_type);

DESCRIPTION

     The mifare_application_*() functions facilitate management of applications in a Mifare Application
     Directory.

     The mifare_application_alloc() function allocates enought sectors to store size bytes for the Application
     Identifier aid and returns the list of allocated sectors.

     The list of the sectors previously allocated for aid in a mad can be requested using
     mifare_application_find().

     An application can be removed from a mad using mifare_application_free().

     The mifare_application_read() reads at most nbytes of the application identified by aid in the mad on the
     tag and copy them into buf. The function returns the amount of data it copied, or -1 on error.

     The mifare_application_write() functions writes at most nbytes of buf in the application identified by aid
     on the mad of the tag and returns the quantity of data written, or -1 on error.

IMPLEMENTATION NOTES

     The mifare_application_alloc() function will try to avoid wasting space and might not allocate sectors
     sequentially if a large amount of space is requested and the target has sectors of different size.

     The nbytes argument of mifare_application_read() and mifare_application_write() does not need to be aligned
     on blocks not sectors.

RETURN VALUES

     Unless stated otherwise, all functions return a value greater than or equal to 0 on success or -1 on
     failure.

SEE ALSO

     mad(3), mifare_classic(3)

AUTHORS

     Romain Tartiere <romain@blogreen.org>
     Romuald Conty <romuald@libnfc.org>