M5Unit-NFC 0.0.3 git rev:59f5362
Loading...
Searching...
No Matches
desfire_file_system.hpp File Reference

File system base using isoDEP for MIFARE DESFire. More...

#include "file_system.hpp"
#include "nfc/a/mifare.hpp"
#include "nfc/ndef/ndef.hpp"
#include <m5_utility/stl/expected.hpp>
#include <array>
#include <algorithm>
#include <limits>

Go to the source code of this file.

Classes

struct  m5::nfc::a::mifare::desfire::FileSettings
 DESFire file settings (minimal fields for StdDataFile) More...
 
struct  m5::nfc::a::mifare::desfire::desfire_aid_t
 24bit Application ID More...
 
struct  m5::nfc::a::mifare::desfire::NdefFormatOptions
 Options for formatting DESFire as Type4 NDEF. More...
 
struct  m5::nfc::a::mifare::desfire::FileRename
 File renaming parameters for DESFire Light SetConfiguration. More...
 
struct  m5::nfc::a::mifare::desfire::Ev2Context
 Session context for EV2 secure messaging. More...
 
class  m5::nfc::a::mifare::desfire::DESFireFileSystem
 File system for MIFARE DESFire. More...
 

Namespaces

namespace  m5
 Top level namespace of M5stack.
 
namespace  desfire
 For MIFARE DESFire.
 

Enumerations

enum class  m5::nfc::a::mifare::desfire::AuthMode : uint8_t { Auto , DES , AES }
 Authentication mode. More...
 

Functions

uint16_t m5::nfc::a::mifare::desfire::detail::clamp_u16_size (const size_t size)
 
uint16_t m5::nfc::a::mifare::desfire::detail::default_rx_capacity (const m5::nfc::isodep::IsoDEP &dep)
 
void m5::nfc::a::mifare::desfire::detail::pack_le24 (uint8_t out[3], const uint32_t value)
 
void m5::nfc::a::mifare::desfire::detail::pack_be24 (uint8_t out[3], const uint32_t value)
 
uint32_t m5::nfc::a::mifare::desfire::detail::unpack_le24 (const uint8_t in[3])
 
bool m5::nfc::a::mifare::desfire::operator== (const desfire_aid_t &a, const desfire_aid_t &b) noexcept
 
bool m5::nfc::a::mifare::desfire::operator!= (const desfire_aid_t &a, const desfire_aid_t &b) noexcept
 
bool m5::nfc::a::mifare::desfire::operator< (const desfire_aid_t &a, const desfire_aid_t &b) noexcept
 
std::vector< uint8_t > m5::nfc::a::mifare::desfire::make_native_wrap_command (const uint8_t ins, const uint8_t *data=nullptr, const uint16_t data_len=0)
 Make native wrap command.
 
uint8_t m5::nfc::a::mifare::desfire::status_code (const uint8_t *rx, const uint16_t rx_len)
 DESFire status code (0x91xx)
 
bool m5::nfc::a::mifare::desfire::is_successful (const uint8_t *rx, const uint16_t rx_len)
 Is the status of the received data successful?
 
bool m5::nfc::a::mifare::desfire::is_more (const uint8_t *rx, const uint16_t rx_len)
 Is the received data still waiting for a response?
 
bool m5::nfc::a::mifare::desfire::is_duplicate (const uint8_t *rx, const uint16_t rx_len)
 Is duplicate error? (e.g. app/file already exists)
 

Variables

constexpr uint8_t m5::nfc::a::mifare::desfire::DESFIRE_APDU_CLA {0x90}
 
constexpr uint8_t m5::nfc::a::mifare::desfire::DESFIRE_LIGHT_INS_READ_DATA {0xAD}
 
constexpr uint8_t m5::nfc::a::mifare::desfire::DESFIRE_LIGHT_INS_WRITE_DATA {0x8D}
 
constexpr uint8_t m5::nfc::a::mifare::desfire::MAXIMUM_FILES {MAXIMUM_FILE_NO - MINIMUM_FILE_NO + 1}
 Files max.
 

File number

using m5::nfc::a::mifare::desfire::file_no_t = uint8_t
 Alias for file number.
 
constexpr file_no_t m5::nfc::a::mifare::desfire::MINIMUM_FILE_NO {0}
 Minimum file number.
 
constexpr file_no_t m5::nfc::a::mifare::desfire::MAXIMUM_FILE_NO {31}
 Maximum file number.
 

Detailed Description

File system base using isoDEP for MIFARE DESFire.

Enumeration Type Documentation

◆ AuthMode

enum class m5::nfc::a::mifare::desfire::AuthMode : uint8_t
strong

Authentication mode.

Enumerator
Auto 

Try DES then AES.

DES 

DES/3DES only.

AES 

AES only.

Function Documentation

◆ make_native_wrap_command()

std::vector< uint8_t > m5::nfc::a::mifare::desfire::make_native_wrap_command ( const uint8_t ins,
const uint8_t * data = nullptr,
const uint16_t data_len = 0 )

Make native wrap command.

Something similar to APDU but different

Parameters
insNative INS
dataData
data_lenData length
Returns
Constructed command data