seos_emulator.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <lib/nfc/protocols/nfc_generic_event.h>
  3. #include <lib/nfc/protocols/iso14443_4a/iso14443_4a_listener.h>
  4. #include <lib/nfc/helpers/iso14443_crc.h>
  5. #include <mbedtls/des.h>
  6. #include <mbedtls/aes.h>
  7. #include "seos_credential.h"
  8. #include "secure_messaging.h"
  9. typedef struct {
  10. Iso14443_3aListener* iso14443_listener;
  11. BitBuffer* tx_buffer;
  12. BitBuffer* rx_buffer;
  13. AuthParameters params;
  14. SecureMessaging* secure_messaging;
  15. SeosCredential* credential;
  16. } SeosEmulator;
  17. NfcCommand seos_worker_listener_callback(NfcGenericEvent event, void* context);
  18. SeosEmulator* seos_emulator_alloc(SeosCredential* credential);
  19. void seos_emulator_free(SeosEmulator* seos_emulator);
  20. void seos_emulator_general_authenticate_1(BitBuffer* tx_buffer, AuthParameters params);
  21. bool seos_emulator_general_authenticate_2(
  22. const uint8_t* buffer,
  23. size_t buffer_len,
  24. SeosCredential* credential,
  25. AuthParameters* params,
  26. BitBuffer* tx_buffer);
  27. void seos_emulator_select_aid(BitBuffer* tx_buffer);
  28. bool seos_emulator_select_adf(
  29. const uint8_t* oid_list,
  30. size_t oid_list_len,
  31. AuthParameters* params,
  32. SeosCredential* credential,
  33. BitBuffer* tx_buffer);