mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-07-05 20:41:34 -07:00
1. Rework how communications with tag occur. a. bitstream to be sent to the tag is now fully pre-generated. b. bits sent and received are logged with start / end times. 2. Support built-in `hw dbg` for controlling verbosity of debug output The new bitstream generation and logging has exposed a surprising legacy behavior ... each of the command that sent additional data (beyond the command) were: * inserting an extra RM zero bit * force-enabling command parity is used This was not expected. However, this PR maintains the behavior of the existing code. TODO: Root-cause why the third RM bit is needed. Fix code to remove that hack. TODO: change the arm/client interface to ONLY use arrays of bytes, with well-defined content endianness, to avoid this problem.
40 lines
1.6 KiB
C
40 lines
1.6 KiB
C
//-----------------------------------------------------------------------------
|
|
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU 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.
|
|
//
|
|
// See LICENSE.txt for the text of the license.
|
|
//-----------------------------------------------------------------------------
|
|
// Low frequency EM4x70 commands -- ARM source only (not client)
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef EM4x70_H
|
|
#define EM4x70_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <assert.h>
|
|
#include "../include/em4x70.h"
|
|
|
|
typedef enum {
|
|
RISING_EDGE,
|
|
FALLING_EDGE
|
|
} edge_detection_t;
|
|
|
|
void em4x70_info(const em4x70_data_t *etd, bool ledcontrol);
|
|
void em4x70_write(const em4x70_data_t *etd, bool ledcontrol);
|
|
void em4x70_brute(const em4x70_data_t *etd, bool ledcontrol);
|
|
void em4x70_unlock(const em4x70_data_t *etd, bool ledcontrol);
|
|
void em4x70_auth(const em4x70_data_t *etd, bool ledcontrol);
|
|
void em4x70_write_pin(const em4x70_data_t *etd, bool ledcontrol);
|
|
void em4x70_write_key(const em4x70_data_t *etd, bool ledcontrol);
|
|
|
|
#endif /* EM4x70_H */
|