Make sure the right thing is always selected on the card by bypassing cache
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@3142 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
62d2d6cbe0
commit
5dba203363
@ -1090,6 +1090,7 @@ static int mcrd_set_security_env(sc_card_t * card,
|
||||
{
|
||||
struct mcrd_priv_data *priv = DRVDATA(card);
|
||||
sc_apdu_t apdu;
|
||||
sc_path_t tmppath;
|
||||
u8 sbuf[SC_MAX_APDU_BUFFER_SIZE];
|
||||
u8 *p;
|
||||
int r, locked = 0;
|
||||
@ -1108,7 +1109,12 @@ static int mcrd_set_security_env(sc_card_t * card,
|
||||
|| env->key_ref_len != 1)
|
||||
return SC_ERROR_INVALID_ARGUMENTS;
|
||||
|
||||
select_esteid_df(card); /* is it needed? */
|
||||
/* Make sure we always start from MF */
|
||||
sc_format_path ("3f00", &tmppath);
|
||||
tmppath.type = SC_PATH_TYPE_PATH;
|
||||
sc_select_file (card, &tmppath, NULL);
|
||||
/* We now know that cache is not valid */
|
||||
select_esteid_df(card);
|
||||
switch (env->operation) {
|
||||
case SC_SEC_OPERATION_DECIPHER:
|
||||
sc_debug(card->ctx,
|
||||
|
Loading…
Reference in New Issue
Block a user