projects
/
librfid
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
finish eeprom read/write implementations for RC632
[librfid]
/
src
/
rfid_layer2_iso14443a.c
diff --git
a/src/rfid_layer2_iso14443a.c
b/src/rfid_layer2_iso14443a.c
index
281f709
..
f2b3d26
100644
(file)
--- a/
src/rfid_layer2_iso14443a.c
+++ b/
src/rfid_layer2_iso14443a.c
@@
-250,6
+250,7
@@
cascade:
h->level = ISO14443A_LEVEL_NONE;
h->state = ISO14443A_STATE_SELECTED;
h->level = ISO14443A_LEVEL_NONE;
h->state = ISO14443A_STATE_SELECTED;
+ h->sak = sak[0];
if (sak[0] & 0x20) {
DEBUGP("we have a T=CL compliant PICC\n");
if (sak[0] & 0x20) {
DEBUGP("we have a T=CL compliant PICC\n");
@@
-323,15
+324,22
@@
iso14443a_getopt(struct rfid_layer2_handle *handle, int optname,
int ret = -EINVAL;
struct iso14443a_handle *h = &handle->priv.iso14443a;
struct iso14443a_atqa *atqa = optval;
int ret = -EINVAL;
struct iso14443a_handle *h = &handle->priv.iso14443a;
struct iso14443a_atqa *atqa = optval;
+ u_int8_t *opt_u8 = optval;
int *wupa = optval;
switch (optname) {
int *wupa = optval;
switch (optname) {
+ case RFID_OPT_14443A_SAK:
+ *opt_u8 = h->sak;
+ *optlen = sizeof(*opt_u8);
+ break;
case RFID_OPT_14443A_ATQA:
*atqa = h->atqa;
case RFID_OPT_14443A_ATQA:
*atqa = h->atqa;
+ *optlen = sizeof(*atqa);
ret = 0;
break;
case RFID_OPT_14443A_WUPA:
*wupa = ((handle->flags & RFID_OPT_LAYER2_WUP) != 0);
ret = 0;
break;
case RFID_OPT_14443A_WUPA:
*wupa = ((handle->flags & RFID_OPT_LAYER2_WUP) != 0);
+ *optlen = sizeof(*wupa);
ret = 0;
break;
};
ret = 0;
break;
};