Link to, and adjust types for, the PCSC framework included with OSX

Signed-off-by: Arran Cudbard-Bell <a.cudbardb@freeradius.org>
This commit is contained in:
Arran Cudbard-Bell 2016-07-02 15:57:39 -04:00 committed by Jouni Malinen
parent 842c5af5d3
commit b84ce655d3
2 changed files with 23 additions and 2 deletions

View file

@ -11,7 +11,11 @@
*/ */
#include "includes.h" #include "includes.h"
#ifdef __APPLE__
#include <PCSC/winscard.h>
#else
#include <winscard.h> #include <winscard.h>
#endif
#include "common.h" #include "common.h"
#include "pcsc_funcs.h" #include "pcsc_funcs.h"
@ -110,7 +114,11 @@ typedef enum { SCARD_GSM_SIM, SCARD_USIM } sim_types;
struct scard_data { struct scard_data {
SCARDCONTEXT ctx; SCARDCONTEXT ctx;
SCARDHANDLE card; SCARDHANDLE card;
#ifdef __APPLE__
uint32_t protocol;
#else
DWORD protocol; DWORD protocol;
#endif
sim_types sim_type; sim_types sim_type;
int pin1_required; int pin1_required;
}; };
@ -504,7 +512,12 @@ static int scard_get_aid(struct scard_data *scard, unsigned char *aid,
struct scard_data * scard_init(const char *reader) struct scard_data * scard_init(const char *reader)
{ {
long ret; long ret;
unsigned long len, pos; #ifdef __APPLE__
uint32_t len;
#else
unsigned long len;
#endif
unsigned long pos;
struct scard_data *scard; struct scard_data *scard;
#ifdef CONFIG_NATIVE_WINDOWS #ifdef CONFIG_NATIVE_WINDOWS
TCHAR *readers = NULL; TCHAR *readers = NULL;
@ -605,7 +618,7 @@ struct scard_data * scard_init(const char *reader)
readers = NULL; readers = NULL;
wpa_printf(MSG_DEBUG, "SCARD: card=0x%x active_protocol=%lu (%s)", wpa_printf(MSG_DEBUG, "SCARD: card=0x%x active_protocol=%lu (%s)",
(unsigned int) scard->card, scard->protocol, (unsigned int) scard->card, (unsigned long) scard->protocol,
scard->protocol == SCARD_PROTOCOL_T0 ? "T0" : "T1"); scard->protocol == SCARD_PROTOCOL_T0 ? "T0" : "T1");
ret = SCardBeginTransaction(scard->card); ret = SCardBeginTransaction(scard->card);
@ -764,7 +777,11 @@ static long scard_transmit(struct scard_data *scard,
unsigned char *_recv, size_t *recv_len) unsigned char *_recv, size_t *recv_len)
{ {
long ret; long ret;
#ifdef __APPLE__
uint32_t rlen;
#else
unsigned long rlen; unsigned long rlen;
#endif
wpa_hexdump_key(MSG_DEBUG, "SCARD: scard_transmit: send", wpa_hexdump_key(MSG_DEBUG, "SCARD: scard_transmit: send",
_send, send_len); _send, send_len);

View file

@ -931,9 +931,13 @@ ifdef CONFIG_NATIVE_WINDOWS
#dynamic symbol loading that is now used in pcsc_funcs.c #dynamic symbol loading that is now used in pcsc_funcs.c
#LIBS += -lwinscard #LIBS += -lwinscard
else else
ifdef CONFIG_OSX
LIBS += -framework PCSC
else
LIBS += -lpcsclite -lpthread LIBS += -lpcsclite -lpthread
endif endif
endif endif
endif
ifdef CONFIG_SIM_SIMULATOR ifdef CONFIG_SIM_SIMULATOR
CFLAGS += -DCONFIG_SIM_SIMULATOR CFLAGS += -DCONFIG_SIM_SIMULATOR