proxmark3/include/hitag2.h

55 lines
1.3 KiB
C
Raw Normal View History

//-----------------------------------------------------------------------------
// (c) 2012 Roel Verdult
//
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
// at your option, any later version. See the LICENSE.txt file for the text of
// the license.
//-----------------------------------------------------------------------------
// Hitag2 type prototyping
//-----------------------------------------------------------------------------
2016-03-05 00:28:05 +08:00
// HitagS added
//-----------------------------------------------------------------------------
2009-08-31 08:37:29 +08:00
#ifndef _HITAG2_H_
#define _HITAG2_H_
#ifdef _MSC_VER
#define PACKED
#else
#define PACKED __attribute__((packed))
#endif
typedef enum {
2016-08-05 01:51:37 +08:00
RHTSF_CHALLENGE = 01,
RHTSF_KEY = 02,
2016-03-05 00:28:05 +08:00
WHTSF_CHALLENGE = 03,
WHTSF_KEY = 04,
RHT2F_PASSWORD = 21,
RHT2F_AUTHENTICATE = 22,
RHT2F_CRYPTO = 23,
RHT2F_TEST_AUTH_ATTEMPTS = 25,
2016-08-05 01:51:37 +08:00
RHT2F_UID_ONLY = 26
} hitag_function;
2009-08-31 08:37:29 +08:00
typedef struct {
byte_t password[4];
} PACKED rht2d_password;
typedef struct {
byte_t NrAr[8];
2016-03-05 00:28:05 +08:00
byte_t data[4];
} PACKED rht2d_authenticate;
typedef struct {
2016-03-05 00:28:05 +08:00
byte_t key[6];
byte_t data[4];
} PACKED rht2d_crypto;
typedef union {
rht2d_password pwd;
rht2d_authenticate auth;
rht2d_crypto crypto;
} hitag_data;
#endif