src/emv_appsel.c File Reference

#include <ccid.h>
#include <list.h>
#include <emv.h>
#include <ber.h>
#include "emv-internal.h"
Include dependency graph for emv_appsel.c:

Go to the source code of this file.

Functions

static int bop_adfname (const uint8_t *ptr, size_t len, void *priv)
static int bop_label (const uint8_t *ptr, size_t len, void *priv)
static int bop_pname (const uint8_t *ptr, size_t len, void *priv)
static int bop_prio (const uint8_t *ptr, size_t len, void *priv)
static int bop_dtemp (const uint8_t *ptr, size_t len, void *priv)
static int bop_psd (const uint8_t *ptr, size_t len, void *priv)
static int add_app (emv_t e)
void _emv_free_applist (emv_t e)
void emv_app_rid (emv_app_t a, emv_rid_t ret)
void emv_app_aid (emv_app_t a, uint8_t *ret, size_t *len)
const char * emv_app_label (emv_app_t a)
const char * emv_app_pname (emv_app_t a)
uint8_t emv_app_prio (emv_app_t a)
int emv_app_confirm (emv_app_t a)
int emv_appsel_pse (emv_t e)
emv_app_t emv_appsel_pse_first (emv_t e)
emv_app_t emv_appsel_pse_next (emv_t e, emv_app_t app)
_public void emv_app_delete (emv_app_t a)
static int bop_fci2 (const uint8_t *ptr, size_t len, void *priv)
static int bop_fci (const uint8_t *ptr, size_t len, void *priv)
static int set_app (emv_t e)
int emv_app_select_pse (emv_t e, emv_app_t a)
int emv_app_select_aid (emv_t e, const uint8_t *aid, size_t aid_len)
int emv_app_select_aid_next (emv_t e, const uint8_t *aid, size_t aid_len)

Function Documentation

void _emv_free_applist ( emv_t  e  ) 

Definition at line 97 of file emv_appsel.c.

References _emv_app::a_list, _emv::e_apps, list_del(), and list_for_each_entry_safe.

Referenced by do_emv_fini().

Here is the call graph for this function:

Here is the caller graph for this function:

static int add_app ( emv_t  e  )  [static]

Definition at line 78 of file emv_appsel.c.

References _emv_error(), ber_decode(), bop_psd(), _emv::e_xfr, EMV_ERR_DATA_ELEMENT_NOT_FOUND, ber_tag::tag, and xfr_rx_data().

Referenced by emv_appsel_pse().

Here is the call graph for this function:

Here is the caller graph for this function:

static int bop_adfname ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 13 of file emv_appsel.c.

References _emv_app::a_id, _emv_app::a_id_sz, EMV_AID_LEN, and EMV_RID_LEN.

Referenced by bop_dtemp(), and bop_fci().

Here is the caller graph for this function:

static int bop_dtemp ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 44 of file emv_appsel.c.

References _emv_error(), _emv_app::a_list, ber_decode(), bop_adfname(), bop_label(), bop_pname(), bop_prio(), _emv::e_apps, _emv::e_num_apps, EMV_ERR_DATA_ELEMENT_NOT_FOUND, list_add_tail(), and ber_tag::tag.

Referenced by bop_psd().

Here is the call graph for this function:

Here is the caller graph for this function:

static int bop_fci ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 197 of file emv_appsel.c.

References ber_decode(), bop_adfname(), bop_fci2(), and ber_tag::tag.

Referenced by set_app().

Here is the call graph for this function:

Here is the caller graph for this function:

static int bop_fci2 ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 183 of file emv_appsel.c.

References ber_decode(), bop_label(), bop_pname(), bop_prio(), and ber_tag::tag.

Referenced by bop_fci().

Here is the call graph for this function:

Here is the caller graph for this function:

static int bop_label ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 22 of file emv_appsel.c.

References _emv_app::a_name.

Referenced by bop_dtemp(), and bop_fci2().

Here is the caller graph for this function:

static int bop_pname ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 29 of file emv_appsel.c.

References _emv_app::a_pname.

Referenced by bop_dtemp(), and bop_fci2().

Here is the caller graph for this function:

static int bop_prio ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 36 of file emv_appsel.c.

References _emv_app::a_prio.

Referenced by bop_dtemp(), and bop_fci2().

Here is the caller graph for this function:

static int bop_psd ( const uint8_t *  ptr,
size_t  len,
void *  priv 
) [static]

Definition at line 70 of file emv_appsel.c.

References ber_decode(), bop_dtemp(), and ber_tag::tag.

Referenced by add_app().

Here is the call graph for this function:

Here is the caller graph for this function:

void emv_app_aid ( emv_app_t  a,
uint8_t *  ret,
size_t *  len 
)

Definition at line 111 of file emv_appsel.c.

References _emv_app::a_id, and _emv_app::a_id_sz.

Referenced by app_cmp(), and cp_app_aid().

Here is the caller graph for this function:

int emv_app_confirm ( emv_app_t  a  ) 

Definition at line 134 of file emv_appsel.c.

References _emv_app::a_prio.

Referenced by cp_app_confirm().

Here is the caller graph for this function:

_public void emv_app_delete ( emv_app_t  a  ) 

Definition at line 177 of file emv_appsel.c.

References _emv_app::a_list, and list_del().

Referenced by cp_app_dealloc(), and select_app().

Here is the call graph for this function:

Here is the caller graph for this function:

const char* emv_app_label ( emv_app_t  a  ) 

Definition at line 117 of file emv_appsel.c.

References _emv_app::a_name.

Referenced by cp_app_label().

Here is the caller graph for this function:

const char* emv_app_pname ( emv_app_t  a  ) 

Definition at line 122 of file emv_appsel.c.

References _emv_app::a_name, and _emv_app::a_pname.

Referenced by cp_app_pname(), and select_app().

Here is the caller graph for this function:

uint8_t emv_app_prio ( emv_app_t  a  ) 

Definition at line 129 of file emv_appsel.c.

References _emv_app::a_prio.

Referenced by cp_app_prio().

Here is the caller graph for this function:

void emv_app_rid ( emv_app_t  a,
emv_rid_t  ret 
)

Definition at line 106 of file emv_appsel.c.

References _emv_app::a_id, and EMV_RID_LEN.

Referenced by app_cmp(), and cp_app_rid().

Here is the caller graph for this function:

int emv_app_select_aid ( emv_t  e,
const uint8_t *  aid,
size_t  aid_len 
)

Definition at line 239 of file emv_appsel.c.

References _emv_select(), and set_app().

Referenced by cp_select_aid(), and select_app().

Here is the call graph for this function:

Here is the caller graph for this function:

int emv_app_select_aid_next ( emv_t  e,
const uint8_t *  aid,
size_t  aid_len 
)

Definition at line 246 of file emv_appsel.c.

References _emv_select_next(), and set_app().

Referenced by cp_select_aid_next(), and select_app().

Here is the call graph for this function:

Here is the caller graph for this function:

int emv_app_select_pse ( emv_t  e,
emv_app_t  a 
)

Definition at line 232 of file emv_appsel.c.

References _emv_select(), _emv_app::a_id, _emv_app::a_id_sz, and set_app().

Referenced by cp_select_pse(), and select_app().

Here is the call graph for this function:

Here is the caller graph for this function:

int emv_appsel_pse ( emv_t  e  ) 

Definition at line 139 of file emv_appsel.c.

References _emv_read_record(), _emv_select(), _emv_success(), _emv_app::a_list, add_app(), _emv::e_apps, list_del(), and list_for_each_entry_safe.

Referenced by cp_appsel_pse(), and select_app().

Here is the call graph for this function:

Here is the caller graph for this function:

emv_app_t emv_appsel_pse_first ( emv_t  e  ) 

Definition at line 165 of file emv_appsel.c.

References _emv_app::a_list, _emv::e_apps, list_entry, and list_head::next.

Referenced by app_list(), and select_app().

Here is the caller graph for this function:

emv_app_t emv_appsel_pse_next ( emv_t  e,
emv_app_t  app 
)

Definition at line 170 of file emv_appsel.c.

References _emv_app::a_list, _emv::e_apps, list_entry, and list_head::next.

Referenced by app_list(), and select_app().

Here is the caller graph for this function:

static int set_app ( emv_t  e  )  [static]

Definition at line 206 of file emv_appsel.c.

References ber_decode(), BER_NUM_TAGS, bop_fci(), _emv::e_app, _emv::e_xfr, ber_tag::tag, and xfr_rx_data().

Referenced by emv_app_select_aid(), emv_app_select_aid_next(), and emv_app_select_pse().

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Jan 2 08:35:23 2011 for ccid-utils by  doxygen 1.6.3