passy_reader.h 808 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include <lib/nfc/protocols/nfc_generic_event.h>
  3. #include <lib/nfc/protocols/iso14443_4b/iso14443_4b_poller.h>
  4. #include <lib/nfc/helpers/iso14443_crc.h>
  5. #include <mbedtls/des.h>
  6. #include "passy_i.h"
  7. #include "passy_common.h"
  8. #include "secure_messaging.h"
  9. #define PASSY_READER_MAX_BUFFER_SIZE 128
  10. NfcCommand passy_reader_poller_callback(NfcGenericEvent event, void* context);
  11. typedef struct {
  12. Iso14443_4bPoller* iso14443_4b_poller;
  13. BitBuffer* tx_buffer;
  14. BitBuffer* rx_buffer;
  15. BitBuffer* DG1;
  16. SecureMessaging* secure_messaging;
  17. } PassyReader;
  18. PassyReader* passy_reader_alloc(Passy* passy, Iso14443_4bPoller* iso14443_4b_poller);
  19. void passy_reader_free(PassyReader* passy_reader);
  20. void passy_reader_mac(uint8_t* key, uint8_t* data, size_t data_length, uint8_t* mac);