Provided by: libfreefare-doc_0.4.0-2_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>