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:
parent
842c5af5d3
commit
b84ce655d3
2 changed files with 23 additions and 2 deletions
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue