bla
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
LIBRARY openpcd.dll
|
||||
EXPORTS
|
||||
openpcd_open_reader@4
|
||||
openpcd_close_reader@4
|
||||
openpcd_select_card@4
|
||||
openpcd_deselect_card@4
|
||||
openpcd_read@16
|
||||
openpcd_write@16
|
||||
openpcd_get_card_id@8
|
||||
openpcd_set_key@12
|
||||
openpcd_get_error_text@4
|
||||
openpcd_get_api_version@8
|
||||
openpcd_get_environment@12
|
||||
openpcd_set_environment@12
|
||||
openpcd_reset_reader@4
|
||||
Binary file not shown.
@@ -0,0 +1,175 @@
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Mifare support for accessing RFID cards with */
|
||||
/* http://www.openpcd.org RFID reader */
|
||||
/* */
|
||||
/* Copyright (C) 2007 Milosch Meriac <meriac@openpcd.de> */
|
||||
/* */
|
||||
/* Redistribution and use in source and binary forms, with or without */
|
||||
/* modification, are permitted provided that the following conditions are*/
|
||||
/* met: */
|
||||
/* */
|
||||
/* Redistributions of source code must retain the above copyright notice,*/
|
||||
/* this list of conditions and the following disclaimer. */
|
||||
/* Redistributions in binary form must reproduce the above copyright */
|
||||
/* notice, this list of conditions and the following disclaimer in the */
|
||||
/* documentation and/or other materials provided with the distribution. */
|
||||
/* */
|
||||
/* The name of the author may not be used to endorse or promote products */
|
||||
/* derived from this software without specific prior written permission. */
|
||||
/* */
|
||||
/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR */
|
||||
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED */
|
||||
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE*/
|
||||
/* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, */
|
||||
/* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
|
||||
/* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
|
||||
/* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
|
||||
/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, */
|
||||
/* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING */
|
||||
/* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
|
||||
/* POSSIBILITY OF SUCH DAMAGE. */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef __OPENPCD_H__
|
||||
#define __OPENPCD_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif/*__cplusplus*/
|
||||
|
||||
#define EXPORT_CONVENTION __stdcall
|
||||
#ifdef BUILD_DLL
|
||||
/* DLL export */
|
||||
#define EXPORT __declspec(dllexport)
|
||||
#else
|
||||
/* EXE import */
|
||||
#define EXPORT __declspec(dllimport)
|
||||
#endif /*BUILD_DLL*/
|
||||
|
||||
#define PCDERROR_NONE 0
|
||||
#define PCDERROR_INVALID_PARAMETER -1
|
||||
#define PCDERROR_KEY_FORMAT -2
|
||||
#define PCDERROR_KEY_AUTH -3
|
||||
#define PCDERROR_NO_CARD_FOUND -4
|
||||
#define PCDERROR_LAYER2_INIT -5
|
||||
#define PCDERROR_LAYER2_OPEN -6
|
||||
#define PCDERROR_LAYER3_INIT -7
|
||||
#define PCDERROR_LAYER3_OPEN -8
|
||||
#define PCDERROR_SELECT -9
|
||||
#define PCDERROR_READ_FAILED -10
|
||||
#define PCDERROR_WRITE_FAILED -11
|
||||
#define PCDERROR_CLOSED -12
|
||||
#define PCDERROR_NO_READER -13
|
||||
#define PCDERROR_OUT_OF_MEMORY -14
|
||||
#define PCDERROR_READER_VERSION -15
|
||||
|
||||
#define PCDAUTH_KEY_LENGTH 6
|
||||
#define PCDAUTH_KEYID_1A 0
|
||||
#define PCDAUTH_KEYID_1B 1
|
||||
|
||||
typedef void* MIFARE_HANDLE;
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Six steps for reading/writing to MIFARE cards */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
/* Step 1. open reader
|
||||
|
||||
supply the address of your handle variable to retrieve a handle
|
||||
to the current reader.
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_open_reader(MIFARE_HANDLE *handle);
|
||||
|
||||
/* Step 2. set MIFARE classic key
|
||||
|
||||
if your key differs from the default Infineon key (6*0xFF), you can
|
||||
supply a different key here. The key size is PCDAUTH_KEY_LENGTH bytes.
|
||||
You can chose to set key_id to PCDAUTH_KEYID_1A or *_1B.
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_set_key(MIFARE_HANDLE handle,unsigned int key_id,const void* key);
|
||||
|
||||
/* Step 3. select card
|
||||
|
||||
start the anticollosion to select a card in the reader field - retry if
|
||||
it fails. Currently supports only on card in the readerv field.
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_select_card(MIFARE_HANDLE handle);
|
||||
|
||||
/* Step 4. read/write card
|
||||
|
||||
read, write from the selected card - specify the page and supply up to
|
||||
16 bytes of payload
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_read(MIFARE_HANDLE handle,int page, void* data, int len);
|
||||
EXPORT int EXPORT_CONVENTION openpcd_write(MIFARE_HANDLE handle,int page,const void *data,int len);
|
||||
|
||||
/* Step 5. deselect card when done
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_deselect_card(MIFARE_HANDLE handle);
|
||||
|
||||
/* Step 6. close reader after deselected card
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_close_reader(MIFARE_HANDLE handle);
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Support functions */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
/* openpcd_get_error_text:
|
||||
|
||||
Used for converting the error code into a string
|
||||
*/
|
||||
EXPORT char* EXPORT_CONVENTION openpcd_get_error_text(int error);
|
||||
|
||||
|
||||
/* openpcd_get_card_id:
|
||||
|
||||
Get the card id of a selected RFID card
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_get_card_id(MIFARE_HANDLE handle,unsigned int *uid);
|
||||
|
||||
/* openpcd_get_api_version:
|
||||
|
||||
Get the USB api version of the reader
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_get_api_version(MIFARE_HANDLE handle,unsigned int *version);
|
||||
|
||||
/* openpcd_reset_reader:
|
||||
|
||||
Reset the attached reader
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_reset_reader(MIFARE_HANDLE handle);
|
||||
|
||||
/* openpcd_get_environment
|
||||
|
||||
Store the given data to the nonvolatile reader flash
|
||||
Returns read data count at index or error code
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_get_environment(
|
||||
MIFARE_HANDLE handle,
|
||||
unsigned char count,
|
||||
unsigned char* data
|
||||
);
|
||||
|
||||
/* openpcd_set_environment
|
||||
|
||||
Read data from nonvolatile reader flash
|
||||
Returns written data count at index or error code
|
||||
*/
|
||||
EXPORT int EXPORT_CONVENTION openpcd_set_environment(
|
||||
MIFARE_HANDLE handle,
|
||||
unsigned char count,
|
||||
const unsigned char* data
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif/*__cplusplus*/
|
||||
#endif/*__OPENPCD_H__*/
|
||||
Reference in New Issue
Block a user