Add man pages.
This commit is contained in:
parent
3b737a11e8
commit
26aef03a48
6 changed files with 822 additions and 1 deletions
|
@ -12,4 +12,56 @@ libfreefare_la_SOURCES = freefare.c \
|
|||
libfreefare_la_HEADERS = freefare.h
|
||||
libfreefare_ladir = $(includedir)
|
||||
|
||||
EXTRA_DIST = freefare_internal.h
|
||||
man_MANS = freefare.3 \
|
||||
mifare_ultralight.3 \
|
||||
mifare_classic.3 \
|
||||
mad.3 \
|
||||
mifare_application.3
|
||||
|
||||
linkedman = \
|
||||
freefare.3 freefare_get_tags.3 \
|
||||
freefare.3 freefare_get_tag_type.3 \
|
||||
freefare.3 freefare_get_tag_friendly_name.3 \
|
||||
freefare.3 freefare_free_tags.3 \
|
||||
mifare_ultralight.3 mifare_ultralight_connect.3 \
|
||||
mifare_ultralight.3 mifare_ultralight_disconnect.3 \
|
||||
mifare_ultralight.3 mifare_ultralight_read.3 \
|
||||
mifare_ultralight.3 mifare_ultralight_write.3 \
|
||||
mifare_ultralight.3 mifare_ultralight_get_uid.3 \
|
||||
mifare_classic.3 mifare_classic_connect.3 \
|
||||
mifare_classic.3 mifare_classic_disconnect.3 \
|
||||
mifare_classic.3 mifare_classic_authenticate.3 \
|
||||
mifare_classic.3 mifare_classic_read.3 \
|
||||
mifare_classic.3 mifare_classic_init_value.3 \
|
||||
mifare_classic.3 mifare_classic_read_value.3 \
|
||||
mifare_classic.3 mifare_classic_write.3 \
|
||||
mifare_classic.3 mifare_classic_increment.3 \
|
||||
mifare_classic.3 mifare_classic_decrement.3 \
|
||||
mifare_classic.3 mifare_classic_restore.3 \
|
||||
mifare_classic.3 mifare_classic_transfer.3 \
|
||||
mifare_classic.3 mifare_classic_get_trailer_block_permission.3 \
|
||||
mifare_classic.3 mifare_classic_get_data_block_permission.3 \
|
||||
mifare_classic.3 mifare_classic_format_sector.3 \
|
||||
mifare_classic.3 mifare_classic_get_uid.3 \
|
||||
mifare_classic.3 mifare_classic_trailer_block.3 \
|
||||
mad.3 mad_new.3 \
|
||||
mad.3 mad_read.3 \
|
||||
mad.3 mad_write.3 \
|
||||
mad.3 mad_get_version.3 \
|
||||
mad.3 mad_set_version.3 \
|
||||
mad.3 mad_get_card_publisher_sector.3 \
|
||||
mad.3 mad_set_card_publisher_sector.3 \
|
||||
mad.3 mad_get_aid.3 \
|
||||
mad.3 mad_set_aid.3 \
|
||||
mad.3 mad_free.3 \
|
||||
mifare_application.3 mifare_application_alloc.3 \
|
||||
mifare_application.3 mifare_application_free.3 \
|
||||
mifare_application.3 mifare_application_find.3
|
||||
|
||||
install-data-hook:
|
||||
(cd $(DESTDIR)$(man3dir); for i in `echo $(linkedman) | xargs -n2 echo | awk '{print $$2}'`; do rm -f $$i; done; echo $(linkedman) | xargs -n2 $(LN_S))
|
||||
|
||||
uninstall-hook:
|
||||
(cd $(DESTDIR)$(man3dir); for i in `echo $(linkedman) | xargs -n2 echo | awk '{print $$2}'`; do rm -f $$i; done;)
|
||||
|
||||
EXTRA_DIST = freefare_internal.h $(man_MANS)
|
||||
|
|
114
libfreefare/freefare.3
Normal file
114
libfreefare/freefare.3
Normal file
|
@ -0,0 +1,114 @@
|
|||
.\" Copyright (C) 2010 Romain Tartiere
|
||||
.\"
|
||||
.\" This program is free software: you can redistribute it and/or modify it
|
||||
.\" under the terms of the GNU Lesser General Public License as published by the
|
||||
.\" Free Software Foundation, either version 3 of the License, or (at your
|
||||
.\" option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
.\" more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public License
|
||||
.\" along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd March 30, 2010
|
||||
.Dt FREEFARE 3
|
||||
.Os
|
||||
.\" _ _
|
||||
.\" | \ | | __ _ _ __ ___ ___
|
||||
.\" | \| |/ _` | '_ ` _ \ / _ \
|
||||
.\" | |\ | (_| | | | | | | __/
|
||||
.\" |_| \_|\__,_|_| |_| |_|\___|
|
||||
.\"
|
||||
.Sh NAME
|
||||
.Nm freefare_get_tags ,
|
||||
.Nm freefare_get_tag_type ,
|
||||
.Nm freefare_get_tag_friendly_name ,
|
||||
.Nm freefare_free_tags
|
||||
.Nd Generic target manipulation functions
|
||||
.\" _ _ _
|
||||
.\" | | (_) |__ _ __ __ _ _ __ _ _
|
||||
.\" | | | | '_ \| '__/ _` | '__| | | |
|
||||
.\" | |___| | |_) | | | (_| | | | |_| |
|
||||
.\" |_____|_|_.__/|_| \__,_|_| \__, |
|
||||
.\" |___/
|
||||
.Sh LIBRARY
|
||||
Mifare card manipulation library (libfreefare, \-lfreefare)
|
||||
.\" ____ _
|
||||
.\" / ___| _ _ _ __ ___ _ __ ___(_)___
|
||||
.\" \___ \| | | | '_ \ / _ \| '_ \/ __| / __|
|
||||
.\" ___) | |_| | | | | (_) | |_) \__ \ \__ \
|
||||
.\" |____/ \__, |_| |_|\___/| .__/|___/_|___/
|
||||
.\" |___/ |_|
|
||||
.Sh SYNOPSIS
|
||||
.In freefare.h
|
||||
.Ft "MifareTag *"
|
||||
.Fn freefare_get_tags "nfc_device_t *device"
|
||||
.Ft enum mifare_tag_type
|
||||
.Fn freefare_get_tag_type "MifareTag tag"
|
||||
.Ft "const char *"
|
||||
.Fn freefare_get_tag_friendly_name "MifareTag tag"
|
||||
.Ft void
|
||||
.Fn freefare_free_tags "MifareTag *tags"
|
||||
.\" ____ _ _ _
|
||||
.\" | _ \ ___ ___ ___ _ __(_)_ __ | |_(_) ___ _ __
|
||||
.\" | | | |/ _ \/ __|/ __| '__| | '_ \| __| |/ _ \| '_ \
|
||||
.\" | |_| | __/\__ \ (__| | | | |_) | |_| | (_) | | | |
|
||||
.\" |____/ \___||___/\___|_| |_| .__/ \__|_|\___/|_| |_|
|
||||
.\" |_|
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn freefare_*
|
||||
family of functions allow agnostic access to the
|
||||
.Vt MifareTag
|
||||
present on a given NFC device.
|
||||
.Pp
|
||||
.Fn freefare_get_tags
|
||||
returns a NULL-terminated list of
|
||||
.Vt MifareTag
|
||||
present on
|
||||
.Vt device .
|
||||
This list has to be freed after usage using
|
||||
.Fn freefare_free_tags .
|
||||
.Pp
|
||||
Information about a given
|
||||
.Vt MifareTag
|
||||
can be gathered using the
|
||||
.Fn freefare_get_tag_type
|
||||
and
|
||||
.Fn freefare_get_tag_friendly_name
|
||||
functions.
|
||||
.\" ____ _ _
|
||||
.\" | _ \ ___| |_ _ _ _ __ _ __ __ ____ _| |_ _ ___ ___
|
||||
.\" | |_) / _ \ __| | | | '__| '_ \ \ \ / / _` | | | | |/ _ \/ __|
|
||||
.\" | _ < __/ |_| |_| | | | | | | \ V / (_| | | |_| | __/\__ \
|
||||
.\" |_| \_\___|\__|\__,_|_| |_| |_| \_/ \__,_|_|\__,_|\___||___/
|
||||
.\"
|
||||
.Sh RETURN VALUES
|
||||
Unless stated otherwise, all functions return a value greater than or equal to
|
||||
.Va 0
|
||||
on success or
|
||||
.Va -1
|
||||
on failure.
|
||||
.\" ____ _
|
||||
.\" / ___| ___ ___ __ _| |___ ___
|
||||
.\" \___ \ / _ \/ _ \ / _` | / __|/ _ \
|
||||
.\" ___) | __/ __/ | (_| | \__ \ (_) |
|
||||
.\" |____/ \___|\___| \__,_|_|___/\___/
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr mifare_classic 3 ,
|
||||
.Xr mifare_ultralight 3
|
||||
.\" _ _ _
|
||||
.\" / \ _ _| |_| |__ ___ _ __ ___
|
||||
.\" / _ \| | | | __| '_ \ / _ \| '__/ __|
|
||||
.\" / ___ \ |_| | |_| | | | (_) | | \__ \
|
||||
.\" /_/ \_\__,_|\__|_| |_|\___/|_| |___/
|
||||
.\"
|
||||
.Sh AUTHORS
|
||||
.An Romain Tartiere Aq romain@blogreen.org
|
||||
.An Romuald Conty Aq rconty@il4p.fr
|
174
libfreefare/mad.3
Normal file
174
libfreefare/mad.3
Normal file
|
@ -0,0 +1,174 @@
|
|||
.\" Copyright (C) 2010 Romain Tartiere
|
||||
.\"
|
||||
.\" This program is free software: you can redistribute it and/or modify it
|
||||
.\" under the terms of the GNU Lesser General Public License as published by the
|
||||
.\" Free Software Foundation, either version 3 of the License, or (at your
|
||||
.\" option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
.\" more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public License
|
||||
.\" along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd March 30, 2010
|
||||
.Dt MAD 3
|
||||
.Os
|
||||
.\" _ _
|
||||
.\" | \ | | __ _ _ __ ___ ___
|
||||
.\" | \| |/ _` | '_ ` _ \ / _ \
|
||||
.\" | |\ | (_| | | | | | | __/
|
||||
.\" |_| \_|\__,_|_| |_| |_|\___|
|
||||
.\"
|
||||
.Sh NAME
|
||||
.Nm mad_new ,
|
||||
.Nm mad_read ,
|
||||
.Nm mad_write ,
|
||||
.Nm mad_get_version ,
|
||||
.Nm mad_set_version ,
|
||||
.Nm mad_get_card_publisher_sector ,
|
||||
.Nm mad_set_card_publisher_sector ,
|
||||
.Nm mad_get_aid ,
|
||||
.Nm mad_set_aid ,
|
||||
.Nm mad_free
|
||||
.Nd "Mifare Application Directory (MAD) Manipulation Functions"
|
||||
.\" _ _ _
|
||||
.\" | | (_) |__ _ __ __ _ _ __ _ _
|
||||
.\" | | | | '_ \| '__/ _` | '__| | | |
|
||||
.\" | |___| | |_) | | | (_| | | | |_| |
|
||||
.\" |_____|_|_.__/|_| \__,_|_| \__, |
|
||||
.\" |___/
|
||||
.Sh LIBRARY
|
||||
Mifare card manipulation library (libfreefare, \-lfreefare)
|
||||
.\" ____ _
|
||||
.\" / ___| _ _ _ __ ___ _ __ ___(_)___
|
||||
.\" \___ \| | | | '_ \ / _ \| '_ \/ __| / __|
|
||||
.\" ___) | |_| | | | | (_) | |_) \__ \ \__ \
|
||||
.\" |____/ \__, |_| |_|\___/| .__/|___/_|___/
|
||||
.\" |___/ |_|
|
||||
.Sh SYNOPSIS
|
||||
.In freefare.h
|
||||
.Ft Mad
|
||||
.Fn mad_new "uint8_t version"
|
||||
.Ft Mad
|
||||
.Fn mad_read "MifareTag tag"
|
||||
.Ft int
|
||||
.Fn mad_write "MifareTag tag" "Mad mad" "MifareClassicKey key_b_sector_00" "MifareClassicKey key_b_sector_10"
|
||||
.Ft int
|
||||
.Fn mad_get_version "Mad mad"
|
||||
.Ft void
|
||||
.Fn mad_set_version "Mad mad" "uint8_t version"
|
||||
.Ft MifareSectorNumber
|
||||
.Fn mad_get_card_publisher_sector "Mad mad"
|
||||
.Ft int
|
||||
.Fn mad_set_card_publisher_sector "Mad mad" "MifareSectorNumber cps"
|
||||
.Ft int
|
||||
.Fn mad_get_aid "Mad mad" "MifareSectorNumber sector" "MadAid *aid"
|
||||
.Ft int
|
||||
.Fn mad_set_aid "Mad mad" "MifareSectorNumber sector" "MadAid aid"
|
||||
.Ft void
|
||||
.Fn mad_free "Mad mad"
|
||||
.\" ____ _ _ _
|
||||
.\" | _ \ ___ ___ ___ _ __(_)_ __ | |_(_) ___ _ __
|
||||
.\" | | | |/ _ \/ __|/ __| '__| | '_ \| __| |/ _ \| '_ \
|
||||
.\" | |_| | __/\__ \ (__| | | | |_) | |_| | (_) | | | |
|
||||
.\" |____/ \___||___/\___|_| |_| .__/ \__|_|\___/|_| |_|
|
||||
.\" |_|
|
||||
.Sh DESCRIPTION
|
||||
Mifare Application Directories (MAD) can be easily manipulated using the
|
||||
.Fn mad_*
|
||||
set of functions.
|
||||
.Pp
|
||||
A
|
||||
.Vt mad
|
||||
can be loaded form a Mifare Classic
|
||||
.Vt tag
|
||||
using
|
||||
.Fn mad_read
|
||||
or generated from scratch using
|
||||
.Fn mad_new
|
||||
and providing the
|
||||
.Vt version
|
||||
of the
|
||||
.Vt mad
|
||||
to generate. After using a
|
||||
.Vt mad ,
|
||||
the memory can be reclaimed using
|
||||
.Fn mad_free .
|
||||
.Pp
|
||||
A
|
||||
.Vt mad
|
||||
can be written to a Mifare Classic
|
||||
.Vt tag
|
||||
using
|
||||
.Fn mad_write
|
||||
and providing the B keys required for writing to sectors 0,
|
||||
.Vt key_b_sector_00,
|
||||
and the one required for writing to sectors 10,
|
||||
.Vt key_b_sector_10 .
|
||||
When writing a MAD version 1
|
||||
.Vt mad ,
|
||||
the
|
||||
.Vt key_b_sector_10 .
|
||||
.Pp
|
||||
The
|
||||
.Vt version
|
||||
of a MAD
|
||||
.Vt mad
|
||||
can be read using
|
||||
.Fn mad_get_version
|
||||
and changed using
|
||||
.Fn mad_set_version .
|
||||
.Pp
|
||||
The card publisher sector number
|
||||
.Vt cps
|
||||
can be read read using
|
||||
.Fn mad_get_card_publisher_sector
|
||||
and writen using
|
||||
.Fn mad_set_card_publisher_sector .
|
||||
.Pp
|
||||
Sectors allocation in the
|
||||
.Vt mad
|
||||
is handled by the
|
||||
.Fn mad_get_aid
|
||||
and
|
||||
.Fn mad_set_aid
|
||||
functions. These functions fill-in or read the Application Identifier,
|
||||
.Vt aid
|
||||
for the given
|
||||
.Vt sector .
|
||||
.\" ____ _ _
|
||||
.\" | _ \ ___| |_ _ _ _ __ _ __ __ ____ _| |_ _ ___ ___
|
||||
.\" | |_) / _ \ __| | | | '__| '_ \ \ \ / / _` | | | | |/ _ \/ __|
|
||||
.\" | _ < __/ |_| |_| | | | | | | \ V / (_| | | |_| | __/\__ \
|
||||
.\" |_| \_\___|\__|\__,_|_| |_| |_| \_/ \__,_|_|\__,_|\___||___/
|
||||
.\"
|
||||
.Sh RETURN VALUES
|
||||
Unless stated otherwise, all functions return a value greater than or equal to
|
||||
.Va 0
|
||||
on success or
|
||||
.Va -1
|
||||
on failure.
|
||||
.\" ____ _
|
||||
.\" / ___| ___ ___ __ _| |___ ___
|
||||
.\" \___ \ / _ \/ _ \ / _` | / __|/ _ \
|
||||
.\" ___) | __/ __/ | (_| | \__ \ (_) |
|
||||
.\" |____/ \___|\___| \__,_|_|___/\___/
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr freefare 3 ,
|
||||
.Xr mifare_application 3 ,
|
||||
.Xr mifare_classic 3
|
||||
.\" _ _ _
|
||||
.\" / \ _ _| |_| |__ ___ _ __ ___
|
||||
.\" / _ \| | | | __| '_ \ / _ \| '__/ __|
|
||||
.\" / ___ \ |_| | |_| | | | (_) | | \__ \
|
||||
.\" /_/ \_\__,_|\__|_| |_|\___/|_| |___/
|
||||
.\"
|
||||
.Sh AUTHORS
|
||||
.An Romain Tartiere Aq romain@blogreen.org
|
||||
.An Romuald Conty Aq rconty@il4p.fr
|
113
libfreefare/mifare_application.3
Normal file
113
libfreefare/mifare_application.3
Normal file
|
@ -0,0 +1,113 @@
|
|||
.\" Copyright (C) 2010 Romain Tartiere
|
||||
.\"
|
||||
.\" This program is free software: you can redistribute it and/or modify it
|
||||
.\" under the terms of the GNU Lesser General Public License as published by the
|
||||
.\" Free Software Foundation, either version 3 of the License, or (at your
|
||||
.\" option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
.\" more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public License
|
||||
.\" along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd March 30, 2010
|
||||
.Dt MIFARE_APPLICATION 3
|
||||
.Os
|
||||
.\" _ _
|
||||
.\" | \ | | __ _ _ __ ___ ___
|
||||
.\" | \| |/ _` | '_ ` _ \ / _ \
|
||||
.\" | |\ | (_| | | | | | | __/
|
||||
.\" |_| \_|\__,_|_| |_| |_|\___|
|
||||
.\"
|
||||
.Sh NAME
|
||||
.Nm mifare_application_alloc ,
|
||||
.Nm mifare_application_free ,
|
||||
.Nm mifare_application_find
|
||||
.Nd Mifare Applications Manipulation Functions
|
||||
.\" _ _ _
|
||||
.\" | | (_) |__ _ __ __ _ _ __ _ _
|
||||
.\" | | | | '_ \| '__/ _` | '__| | | |
|
||||
.\" | |___| | |_) | | | (_| | | | |_| |
|
||||
.\" |_____|_|_.__/|_| \__,_|_| \__, |
|
||||
.\" |___/
|
||||
.Sh LIBRARY
|
||||
Mifare card manipulation library (libfreefare, \-lfreefare)
|
||||
.\" ____ _
|
||||
.\" / ___| _ _ _ __ ___ _ __ ___(_)___
|
||||
.\" \___ \| | | | '_ \ / _ \| '_ \/ __| / __|
|
||||
.\" ___) | |_| | | | | (_) | |_) \__ \ \__ \
|
||||
.\" |____/ \__, |_| |_|\___/| .__/|___/_|___/
|
||||
.\" |___/ |_|
|
||||
.Sh SYNOPSIS
|
||||
.In freefare.h
|
||||
.Ft "MifareSectorNumber *"
|
||||
.Fn mifare_application_alloc "Mad mad" "MadAid aid" "size_t size"
|
||||
.Ft void
|
||||
.Fn mifare_application_free "Mad mad" "MadAid aid"
|
||||
.Ft "MifareSectorNumber *"
|
||||
.Fn mifare_application_find "Mad mad" "MadAid aid"
|
||||
.\" ____ _ _ _
|
||||
.\" | _ \ ___ ___ ___ _ __(_)_ __ | |_(_) ___ _ __
|
||||
.\" | | | |/ _ \/ __|/ __| '__| | '_ \| __| |/ _ \| '_ \
|
||||
.\" | |_| | __/\__ \ (__| | | | |_) | |_| | (_) | | | |
|
||||
.\" |____/ \___||___/\___|_| |_| .__/ \__|_|\___/|_| |_|
|
||||
.\" |_|
|
||||
The
|
||||
.Fn mifare_application_*
|
||||
functions facilitate management of applications in a Mifare Application
|
||||
Directory.
|
||||
.Pp
|
||||
The
|
||||
.Fn mifare_application_alloc
|
||||
function allocates enought sectors to store
|
||||
.Vt size
|
||||
blocks for the Application Identifier
|
||||
.Vt aid
|
||||
and returns the list of allocated sectors.
|
||||
.Pp
|
||||
The list of the sectors previously allocated for
|
||||
.Vt aid
|
||||
in a
|
||||
.Vt mad
|
||||
can be requested using
|
||||
.Fn mifare_application_find .
|
||||
.Pp
|
||||
An application can be removed from a
|
||||
.Vt mad
|
||||
using
|
||||
.Fn mifare_application_free .
|
||||
.\" ____ _ _
|
||||
.\" | _ \ ___| |_ _ _ _ __ _ __ __ ____ _| |_ _ ___ ___
|
||||
.\" | |_) / _ \ __| | | | '__| '_ \ \ \ / / _` | | | | |/ _ \/ __|
|
||||
.\" | _ < __/ |_| |_| | | | | | | \ V / (_| | | |_| | __/\__ \
|
||||
.\" |_| \_\___|\__|\__,_|_| |_| |_| \_/ \__,_|_|\__,_|\___||___/
|
||||
.\"
|
||||
.Sh RETURN VALUES
|
||||
Unless stated otherwise, all functions return a value greater than or equal to
|
||||
.Va 0
|
||||
on success or
|
||||
.Va -1
|
||||
on failure.
|
||||
.\" ____ _
|
||||
.\" / ___| ___ ___ __ _| |___ ___
|
||||
.\" \___ \ / _ \/ _ \ / _` | / __|/ _ \
|
||||
.\" ___) | __/ __/ | (_| | \__ \ (_) |
|
||||
.\" |____/ \___|\___| \__,_|_|___/\___/
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr mad 3 ,
|
||||
.Xr mifare_classic 3
|
||||
.\" _ _ _
|
||||
.\" / \ _ _| |_| |__ ___ _ __ ___
|
||||
.\" / _ \| | | | __| '_ \ / _ \| '__/ __|
|
||||
.\" / ___ \ |_| | |_| | | | (_) | | \__ \
|
||||
.\" /_/ \_\__,_|\__|_| |_|\___/|_| |___/
|
||||
.\"
|
||||
.Sh AUTHORS
|
||||
.An Romain Tartiere Aq romain@blogreen.org
|
||||
.An Romuald Conty Aq rconty@il4p.fr
|
241
libfreefare/mifare_classic.3
Normal file
241
libfreefare/mifare_classic.3
Normal file
|
@ -0,0 +1,241 @@
|
|||
.\" Copyright (C) 2010 Romain Tartiere
|
||||
.\"
|
||||
.\" This program is free software: you can redistribute it and/or modify it
|
||||
.\" under the terms of the GNU Lesser General Public License as published by the
|
||||
.\" Free Software Foundation, either version 3 of the License, or (at your
|
||||
.\" option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
.\" more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public License
|
||||
.\" along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd March 30, 2010
|
||||
.Dt MIFARE_CLASSIC 3
|
||||
.Os
|
||||
.\" _ _
|
||||
.\" | \ | | __ _ _ __ ___ ___
|
||||
.\" | \| |/ _` | '_ ` _ \ / _ \
|
||||
.\" | |\ | (_| | | | | | | __/
|
||||
.\" |_| \_|\__,_|_| |_| |_|\___|
|
||||
.\"
|
||||
.Sh NAME
|
||||
.Nm mifare_classic_connect ,
|
||||
.Nm mifare_classic_disconnect ,
|
||||
.Nm mifare_classic_authenticate ,
|
||||
.Nm mifare_classic_read ,
|
||||
.Nm mifare_classic_init_value ,
|
||||
.Nm mifare_classic_read_value ,
|
||||
.Nm mifare_classic_write ,
|
||||
.Nm mifare_classic_increment ,
|
||||
.Nm mifare_classic_decrement ,
|
||||
.Nm mifare_classic_restore ,
|
||||
.Nm mifare_classic_transfer ,
|
||||
.Nm mifare_classic_get_trailer_block_permission ,
|
||||
.Nm mifare_classic_get_data_block_permission ,
|
||||
.Nm mifare_classic_format_sector ,
|
||||
.Nm mifare_classic_get_uid ,
|
||||
.Nm mifare_classic_trailer_block
|
||||
.Nd Mifare Classic Manipulation Functions
|
||||
.\" _ _ _
|
||||
.\" | | (_) |__ _ __ __ _ _ __ _ _
|
||||
.\" | | | | '_ \| '__/ _` | '__| | | |
|
||||
.\" | |___| | |_) | | | (_| | | | |_| |
|
||||
.\" |_____|_|_.__/|_| \__,_|_| \__, |
|
||||
.\" |___/
|
||||
.Sh LIBRARY
|
||||
Mifare card manipulation library (libfreefare, \-lfreefare)
|
||||
.\" ____ _
|
||||
.\" / ___| _ _ _ __ ___ _ __ ___(_)___
|
||||
.\" \___ \| | | | '_ \ / _ \| '_ \/ __| / __|
|
||||
.\" ___) | |_| | | | | (_) | |_) \__ \ \__ \
|
||||
.\" |____/ \__, |_| |_|\___/| .__/|___/_|___/
|
||||
.\" |___/ |_|
|
||||
.Sh SYNOPSIS
|
||||
.In freefare.h
|
||||
.Ft int
|
||||
.Fn mifare_classic_connect "MifareTag tag"
|
||||
.Ft int
|
||||
.Fn mifare_classic_disconnect "MifareTag tag"
|
||||
.Ft int
|
||||
.Fn mifare_classic_authenticate "MifareTag tag" "const MifareClassicBlockNumber block" "const MifareClassicKey key" "const MifareClassicKeyType key_type"
|
||||
.Ft int
|
||||
.Fn mifare_classic_read "MifareTag tag" "const MifareClassicBlockNumber block" "MifareClassicBlock *data"
|
||||
.Ft int
|
||||
.Fn mifare_classic_init_value "MifareTag tag" "const MifareClassicBlockNumber block" "const int32_t value" "const MifareClassicBlockNumber adr"
|
||||
.Ft int
|
||||
.Fn mifare_classic_read_value "MifareTag tag" "const MifareClassicBlockNumber block" "int32_t *value" "MifareClassicBlockNumber *adr"
|
||||
.Ft int
|
||||
.Fn mifare_classic_write "MifareTag tag" "const MifareClassicBlockNumber block" "const MifareClassicBlock data"
|
||||
.Ft int
|
||||
.Fn mifare_classic_increment "MifareTag tag" "const MifareClassicBlockNumber block" "const uint32_t amount"
|
||||
.Ft int
|
||||
.Fn mifare_classic_decrement "MifareTag tag" "const MifareClassicBlockNumber block" "const uint32_t amount"
|
||||
.Ft int
|
||||
.Fn mifare_classic_restore "MifareTag tag" "const MifareClassicBlockNumber block"
|
||||
.Ft int
|
||||
.Fn mifare_classic_transfer "MifareTag tag" "const MifareClassicBlockNumber block"
|
||||
.Ft int
|
||||
.Fn mifare_classic_get_trailer_block_permission "MifareTag tag" "const MifareClassicBlockNumber block" "const uint16_t permission" "const MifareClassicKeyType key_type"
|
||||
.Ft int
|
||||
.Fn mifare_classic_get_data_block_permission "MifareTag tag" "const MifareClassicBlockNumber block" "const unsigned char permission" "const MifareClassicKeyType key_type"
|
||||
.Ft int
|
||||
.Fn mifare_classic_format_sector "MifareTag tag" "const MifareClassicBlockNumber block"
|
||||
.Ft "char *"
|
||||
.Fn mifare_classic_get_uid "MifareTag tag"
|
||||
.Ft void
|
||||
.Fn mifare_classic_trailer_block "MifareClassicBlock *block" "const MifareClassicKey key_a" "const uint8_t ab_0" "const uint8_t ab_1" "const uint8_t ab_2" "const uint8_t ab_tb" "const uint8_t gpb" "const MifareClassicKey key_b"
|
||||
.\" ____ _ _ _
|
||||
.\" | _ \ ___ ___ ___ _ __(_)_ __ | |_(_) ___ _ __
|
||||
.\" | | | |/ _ \/ __|/ __| '__| | '_ \| __| |/ _ \| '_ \
|
||||
.\" | |_| | __/\__ \ (__| | | | |_) | |_| | (_) | | | |
|
||||
.\" |____/ \___||___/\___|_| |_| .__/ \__|_|\___/|_| |_|
|
||||
.\" |_|
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn mifare_classic_*
|
||||
set of functions allow manipulation of both Mifare Classic 1k and Mifare
|
||||
Classic 4k cards.
|
||||
.Pp
|
||||
A given
|
||||
.Vt tag
|
||||
is activated using
|
||||
.Fn mifare_classic_connect ,
|
||||
deactivation is performed with
|
||||
.Fn mifare_classic_disconnect .
|
||||
.Pp
|
||||
After a successful connection, an authentication for a
|
||||
.Vt block
|
||||
using a
|
||||
.Vt key
|
||||
of type
|
||||
.Vt key_type
|
||||
(either
|
||||
.Ar MFC_KEY_A
|
||||
or
|
||||
.Ar MFC_KEY_B )
|
||||
using
|
||||
.Fn mifare_classic_authenticate
|
||||
is required for further operation.
|
||||
.Pp
|
||||
Once successfuly authenticated,
|
||||
.Vt data
|
||||
of a
|
||||
.Vt block
|
||||
can be read using
|
||||
.Fn mifare_classic_read
|
||||
and written using
|
||||
.Fn mifare_classic_write .
|
||||
.Pp
|
||||
Value-blocks can be easily accessed using the
|
||||
.Fn mifare_classic_read_value
|
||||
and
|
||||
.Fn mifare_classic_init_value
|
||||
functions. Aditional functions are available for such
|
||||
.Vt blocks :
|
||||
.Fn mifare_classic_increment
|
||||
and
|
||||
.Fn mifare_classic_decrement
|
||||
increment or decrement the value of the provided
|
||||
.Vt block
|
||||
by
|
||||
.Vt amount
|
||||
and store the result in the target's internal data register. The value in this
|
||||
register can also be loaded with the value from another
|
||||
.Vt block
|
||||
using
|
||||
.Fn mifare_classic_restore .
|
||||
Writing back the value of the target's internal data register to a
|
||||
.Vt block
|
||||
is requested using
|
||||
.Fn mifare_classic_transfer .
|
||||
.Pp
|
||||
Permissions for a data
|
||||
.Vt block
|
||||
can be fetched using
|
||||
.Fn mifare_classic_get_data_block_permission .
|
||||
The access
|
||||
.Vt permission
|
||||
to be checkf for key
|
||||
.Vt key_type
|
||||
is one of
|
||||
.Ar MCAB_R ,
|
||||
.Ar MCAB_W ,
|
||||
.Ar MCAB_I or
|
||||
.Ar MCAB_D ;
|
||||
respectively for read, write, increment and decrement permissions.
|
||||
.Pp
|
||||
.Fn mifare_classic_get_trailer_block_permission
|
||||
acts like
|
||||
.Fn mifare_classic_get_data_block_permission
|
||||
but the available
|
||||
.Vt permissions
|
||||
are
|
||||
.Ar MCAB_READ_KEYA ,
|
||||
.Ar MCAB_READ_KEYB ,
|
||||
.Ar MCAB_READ_ACCESS_BITS ,
|
||||
.Ar MCAB_WRITE_ACCESS_BITS ,
|
||||
.Ar MCAB_READ_KEYB and
|
||||
.Ar MCAB_WRITE_KEYB .
|
||||
.Pp
|
||||
A whole sector can be reset to factory defaults using
|
||||
.Fn mifare_classic_format_sector
|
||||
and providing any
|
||||
.Vt block
|
||||
in the sector.
|
||||
.Pp
|
||||
The
|
||||
.Fn mifare_classic_trailer_block
|
||||
is a convenience function for building a trailer block
|
||||
.Vt block
|
||||
given a A key
|
||||
.Vt key_a ;
|
||||
access bits for the blocks of the sector
|
||||
.Vt ab_0 ,
|
||||
.Vt ab_1 and
|
||||
.Vt ab_2 ;
|
||||
and a B key
|
||||
.Vt key_b .
|
||||
.Pp
|
||||
The
|
||||
.Fn mifare_classic_get_uid
|
||||
function retrieves a text representation of the UID of a
|
||||
.Fn tag .
|
||||
It is not required for the
|
||||
.Vt tag
|
||||
to be active to use this function.
|
||||
.\" ____ _ _
|
||||
.\" | _ \ ___| |_ _ _ _ __ _ __ __ ____ _| |_ _ ___ ___
|
||||
.\" | |_) / _ \ __| | | | '__| '_ \ \ \ / / _` | | | | |/ _ \/ __|
|
||||
.\" | _ < __/ |_| |_| | | | | | | \ V / (_| | | |_| | __/\__ \
|
||||
.\" |_| \_\___|\__|\__,_|_| |_| |_| \_/ \__,_|_|\__,_|\___||___/
|
||||
.\"
|
||||
.Sh RETURN VALUES
|
||||
Unless stated otherwise, all functions return a value greater than or equal to
|
||||
.Va 0
|
||||
on success or
|
||||
.Va -1
|
||||
on failure.
|
||||
.\" ____ _
|
||||
.\" / ___| ___ ___ __ _| |___ ___
|
||||
.\" \___ \ / _ \/ _ \ / _` | / __|/ _ \
|
||||
.\" ___) | __/ __/ | (_| | \__ \ (_) |
|
||||
.\" |____/ \___|\___| \__,_|_|___/\___/
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr freefare 3 ,
|
||||
.Xr mad 3
|
||||
.\" _ _ _
|
||||
.\" / \ _ _| |_| |__ ___ _ __ ___
|
||||
.\" / _ \| | | | __| '_ \ / _ \| '__/ __|
|
||||
.\" / ___ \ |_| | |_| | | | (_) | | \__ \
|
||||
.\" /_/ \_\__,_|\__|_| |_|\___/|_| |___/
|
||||
.\"
|
||||
.Sh AUTHORS
|
||||
.An Romain Tartiere Aq romain@blogreen.org
|
||||
.An Romuald Conty Aq rconty@il4p.fr
|
127
libfreefare/mifare_ultralight.3
Normal file
127
libfreefare/mifare_ultralight.3
Normal file
|
@ -0,0 +1,127 @@
|
|||
.\" Copyright (C) 2010 Romain Tartiere
|
||||
.\"
|
||||
.\" This program is free software: you can redistribute it and/or modify it
|
||||
.\" under the terms of the GNU Lesser General Public License as published by the
|
||||
.\" Free Software Foundation, either version 3 of the License, or (at your
|
||||
.\" option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
.\" more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public License
|
||||
.\" along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd March 30, 2010
|
||||
.Dt MIFARE_ULTRALIGHT 3
|
||||
.Os
|
||||
.\" _ _
|
||||
.\" | \ | | __ _ _ __ ___ ___
|
||||
.\" | \| |/ _` | '_ ` _ \ / _ \
|
||||
.\" | |\ | (_| | | | | | | __/
|
||||
.\" |_| \_|\__,_|_| |_| |_|\___|
|
||||
.\"
|
||||
.Sh NAME
|
||||
.Nm mifare_ultralight_connect ,
|
||||
.Nm mifare_ultralight_disconnect ,
|
||||
.Nm mifare_ultralight_read ,
|
||||
.Nm mifare_ultralight_write ,
|
||||
.Nm mifare_ultralight_get_uid ,
|
||||
.Nd Mifare UltraLight Manipulation Functions
|
||||
.\" _ _ _
|
||||
.\" | | (_) |__ _ __ __ _ _ __ _ _
|
||||
.\" | | | | '_ \| '__/ _` | '__| | | |
|
||||
.\" | |___| | |_) | | | (_| | | | |_| |
|
||||
.\" |_____|_|_.__/|_| \__,_|_| \__, |
|
||||
.\" |___/
|
||||
.Sh LIBRARY
|
||||
Mifare card manipulation library (libfreefare, \-lfreefare)
|
||||
.\" ____ _
|
||||
.\" / ___| _ _ _ __ ___ _ __ ___(_)___
|
||||
.\" \___ \| | | | '_ \ / _ \| '_ \/ __| / __|
|
||||
.\" ___) | |_| | | | | (_) | |_) \__ \ \__ \
|
||||
.\" |____/ \__, |_| |_|\___/| .__/|___/_|___/
|
||||
.\" |___/ |_|
|
||||
.Sh SYNOPSIS
|
||||
.Ft int
|
||||
.Fn mifare_ultralight_connect "MifareTag tag"
|
||||
.Ft int
|
||||
.Fn mifare_ultralight_disconnect "MifareTag tag"
|
||||
.Ft int
|
||||
.Fn mifare_ultralight_read "MifareTag tag" "const MifareUltralightPageNumber page" "MifareUltralightPage *data"
|
||||
.Ft int
|
||||
.Fn mifare_ultralight_write "MifareTag tag" "const MifareUltralightPageNumber page" "const MifareUltralightPage data"
|
||||
.Ft "char *"
|
||||
.Fn mifare_ultralight_get_uid "MifareTag tag"
|
||||
.\" ____ _ _ _
|
||||
.\" | _ \ ___ ___ ___ _ __(_)_ __ | |_(_) ___ _ __
|
||||
.\" | | | |/ _ \/ __|/ __| '__| | '_ \| __| |/ _ \| '_ \
|
||||
.\" | |_| | __/\__ \ (__| | | | |_) | |_| | (_) | | | |
|
||||
.\" |____/ \___||___/\___|_| |_| .__/ \__|_|\___/|_| |_|
|
||||
.\" |_|
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn mifare_ultralight_*
|
||||
functions allows management of Mifare UltraLight tags.
|
||||
.Pp
|
||||
The
|
||||
.Fn mifare_ultralight_connect
|
||||
function activates the specified
|
||||
.Vt tag .
|
||||
.Pp
|
||||
A
|
||||
.Vt page
|
||||
of
|
||||
.Vt data
|
||||
can be read from a
|
||||
.Vt tag
|
||||
using
|
||||
.Fn mifare_ultralight_read ,
|
||||
and written
|
||||
using
|
||||
.Fn mifare_ultralight_write .
|
||||
.Pp
|
||||
After usage, a
|
||||
.Vt tag
|
||||
is deactivated using
|
||||
.Fn mifare_ultralight_disconnect .
|
||||
.Pp
|
||||
The
|
||||
.Fn mifare_ultralight_get_uid
|
||||
function retrieves a text representation of the UID of a
|
||||
.Fn tag .
|
||||
It is not required for the
|
||||
.Vt tag
|
||||
to be active to use this function.
|
||||
.\" ____ _ _
|
||||
.\" | _ \ ___| |_ _ _ _ __ _ __ __ ____ _| |_ _ ___ ___
|
||||
.\" | |_) / _ \ __| | | | '__| '_ \ \ \ / / _` | | | | |/ _ \/ __|
|
||||
.\" | _ < __/ |_| |_| | | | | | | \ V / (_| | | |_| | __/\__ \
|
||||
.\" |_| \_\___|\__|\__,_|_| |_| |_| \_/ \__,_|_|\__,_|\___||___/
|
||||
.\"
|
||||
.Sh RETURN VALUES
|
||||
Unless stated otherwise, all functions return a value greater than or equal to
|
||||
.Va 0
|
||||
on success or
|
||||
.Va -1
|
||||
on failure.
|
||||
.\" ____ _
|
||||
.\" / ___| ___ ___ __ _| |___ ___
|
||||
.\" \___ \ / _ \/ _ \ / _` | / __|/ _ \
|
||||
.\" ___) | __/ __/ | (_| | \__ \ (_) |
|
||||
.\" |____/ \___|\___| \__,_|_|___/\___/
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr freefare 3
|
||||
.\" _ _ _
|
||||
.\" / \ _ _| |_| |__ ___ _ __ ___
|
||||
.\" / _ \| | | | __| '_ \ / _ \| '__/ __|
|
||||
.\" / ___ \ |_| | |_| | | | (_) | | \__ \
|
||||
.\" /_/ \_\__,_|\__|_| |_|\___/|_| |___/
|
||||
.\"
|
||||
.Sh AUTHORS
|
||||
.An Romain Tartiere Aq romain@blogreen.org
|
||||
.An Romuald Conty Aq rconty@il4p.fr
|
Loading…
Add table
Reference in a new issue