]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - armsrc/legicrf.h
1
//-----------------------------------------------------------------------------
2 // (c) 2009 Henryk Plötz <henryk@ploetzli.ch>
4 // This code is licensed to you under the terms of the GNU GPL, version 2 or,
5 // at your option, any later version. See the LICENSE.txt file for the text of
7 //-----------------------------------------------------------------------------
8 // LEGIC RF emulation public interface
9 //-----------------------------------------------------------------------------
14 #include "proxmark3.h" //
18 #include "legic_prng.h" // legic PRNG impl
19 #include "crc.h" // legic crc-4
20 #include "ticks.h" // timers
21 #include "legic.h" // legic_card_select_t struct
23 extern void LegicRfSimulate(int phase
, int frame
, int reqresp
);
24 extern int LegicRfReader(uint16_t offset
, uint16_t len
, uint8_t iv
);
25 extern void LegicRfWriter(uint16_t offset
, uint16_t byte
, uint8_t iv
, uint8_t *data
);
26 extern void LegicRfInfo(void);
28 uint32_t get_key_stream(int skip
, int count
);
29 void frame_send_tag(uint16_t response
, uint8_t bits
);
30 void frame_sendAsReader(uint32_t data
, uint8_t bits
);
32 int legic_read_byte( uint16_t index
, uint8_t cmd_sz
);
33 bool legic_write_byte(uint16_t index
, uint8_t byte
, uint8_t addr_sz
);
35 int legic_select_card(legic_card_select_t
*p_card
);
36 int legic_select_card_iv(legic_card_select_t
*p_card
, uint8_t iv
);
38 void LegicCommonInit(bool clear_mem
);
41 void LegicEMemSet(uint32_t arg0
, uint32_t arg1
, uint8_t *data
);
42 void LegicEMemGet(uint32_t arg0
, uint32_t arg1
);
43 void legic_emlset_mem(uint8_t *data
, int offset
, int numofbytes
);
44 void legic_emlget_mem(uint8_t *data
, int offset
, int numofbytes
);
46 void ice_legic_setup();
48 #endif /* __LEGICRF_H */