Top |
typedef | mccr_swipe_report_t |
enum | mccr_swipe_track_decode_status_t |
enum | mccr_card_encode_type_t |
This section defines methods to read and process swipe reports generated when the user swipes a credit card in the reader.
Example 4. Reading and processing a swipe report
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
mccr_status_t st; mccr_swipe_report_t *swipe_report; uint8_t track_length; if ((st = mccr_device_wait_swipe_report (device, -1, &swipe_report)) != MCCR_STATUS_OK) { fprintf (stderr, "error: cannot get swipe report: %s\n", mccr_status_to_string (st)); return; } printf ("swipe detected\n"); if ((st = mccr_swipe_report_get_track_1_encrypted_data_length (swipe_report, &track_length)) == MCCR_STATUS_OK) printf (" bytes detected in track 1: %u\n", track_length); if ((st = mccr_swipe_report_get_track_2_encrypted_data_length (swipe_report, &track_length)) == MCCR_STATUS_OK) printf (" bytes detected in track 2: %u\n", track_length); if ((st = mccr_swipe_report_get_track_3_encrypted_data_length (swipe_report, &track_length)) == MCCR_STATUS_OK) printf (" bytes detected in track 3: %u\n", track_length); mccr_swipe_report_free (swipe_report); |
void
mccr_swipe_report_free (mccr_swipe_report_t *report
);
Frees a swipe report obtained with mccr_device_wait_swipe_report()
.
mccr_status_t mccr_swipe_report_get_track_1_decode_status (mccr_swipe_report_t *report
,uint8_t *out_status
);
Gets the track 1 decode status.
report |
||
out_status |
output location for a uint8_t with a bitmask of mccr_swipe_track_decode_status_t values. |
mccr_status_t mccr_swipe_report_get_track_2_decode_status (mccr_swipe_report_t *report
,uint8_t *out_status
);
Gets the track 2 decode status.
report |
||
out_status |
output location for a uint8_t with a bitmask of mccr_swipe_track_decode_status_t values. |
mccr_status_t mccr_swipe_report_get_track_3_decode_status (mccr_swipe_report_t *report
,uint8_t *out_status
);
Gets the track 3 decode status.
report |
||
out_status |
output location for a uint8_t with a bitmask of mccr_swipe_track_decode_status_t values. |
mccr_status_t mccr_swipe_report_get_track_1_absolute_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the absolute data length in track 1.
mccr_status_t mccr_swipe_report_get_track_2_absolute_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the absolute data length in track 2.
mccr_status_t mccr_swipe_report_get_track_3_absolute_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the absolute data length in track 3.
mccr_status_t mccr_swipe_report_get_track_1_encrypted_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the encrypted data length in track 1.
mccr_status_t mccr_swipe_report_get_track_2_encrypted_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the encrypted data length in track 2.
mccr_status_t mccr_swipe_report_get_track_3_encrypted_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the encrypted data length in track 3.
mccr_status_t mccr_swipe_report_get_track_1_encrypted_data (mccr_swipe_report_t *report
,const uint8_t **out_data
);
Gets the encrypted data in track 1.
The returned out_data
is constant and shouldn't be modified by the user.
mccr_status_t mccr_swipe_report_get_track_2_encrypted_data (mccr_swipe_report_t *report
,const uint8_t **out_data
);
Gets the encrypted data in track 2.
The returned out_data
is constant and shouldn't be modified by the user.
mccr_status_t mccr_swipe_report_get_track_3_encrypted_data (mccr_swipe_report_t *report
,const uint8_t **out_data
);
Gets the encrypted data in track 3.
The returned out_data
is constant and shouldn't be modified by the user.
mccr_status_t mccr_swipe_report_get_track_1_masked_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the masked data length in track 1.
mccr_status_t mccr_swipe_report_get_track_2_masked_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the masked data length in track 2.
mccr_status_t mccr_swipe_report_get_track_3_masked_data_length (mccr_swipe_report_t *report
,uint8_t *out_length
);
Gets the masked data length in track 3.
mccr_status_t mccr_swipe_report_get_track_1_masked_data (mccr_swipe_report_t *report
,const uint8_t **out_data
);
Gets the masked data in track 1.
mccr_status_t mccr_swipe_report_get_track_2_masked_data (mccr_swipe_report_t *report
,const uint8_t **out_data
);
Gets the masked data in track 2.
mccr_status_t mccr_swipe_report_get_track_3_masked_data (mccr_swipe_report_t *report
,const uint8_t **out_data
);
Gets the masked data in track 3.
const char *
mccr_card_encode_type_to_string (mccr_card_encode_type_t value
);
Gets a description for the given mccr_card_encode_type_t.
mccr_status_t mccr_swipe_report_get_card_encode_type (mccr_swipe_report_t *report
,mccr_card_encode_type_t *out
);
Gets the encrypted data in track 3.
mccr_status_t mccr_device_wait_swipe_report (mccr_device_t *device
,int timeout_ms
,mccr_swipe_report_t **out_swipe_report
);
Waits for a swipe report sent by the device. Blocks during the wait. A
negative timeout_ms
may be given to disable the timeout and wait forever.
When no longer needed, out_swipe_report
should be disposed with mccr_swipe_report_free()
.
device |
an open mccr_device_t. |
|
timeout_ms |
timeout to wait for a swipe report, in milliseconds. |
|
out_swipe_report |
output location to store the newly allocated mccr_swipe_report_t. |
typedef struct mccr_swipe_report_s mccr_swipe_report_t;
Opaque type representing a swipe report.