moved sm_stop() to OpenSC as sc_sm_stop()

This commit is contained in:
Frank Morgner
2015-04-07 16:51:19 +02:00
parent cc12a61001
commit b4ebc4882b
7 changed files with 10 additions and 38 deletions

View File

@@ -57,8 +57,8 @@ LIBS="$LDFLAGS $OPENSC_LIBS"
AC_CHECK_HEADERS([libopensc/opensc.h libopensc/sm.h libopensc/pace.h],
[], [AC_MSG_ERROR([OpenSC headers not found])])
AC_MSG_CHECKING([for iasecc_sm_external_authentication])
AC_TRY_LINK_FUNC(iasecc_sm_external_authentication,
AC_MSG_CHECKING([for sc_sm_stop])
AC_TRY_LINK_FUNC(sc_sm_stop,
[ AC_MSG_RESULT([yes]) ],
[ AC_MSG_ERROR([Cannot link against libopensc with SM]) ])
AC_CHECK_FUNCS([sc_apdu_get_octets _sc_match_atr list_iterator_next])

View File

@@ -21,6 +21,7 @@
#include "iso-sm-internal.h"
#include "libopensc/internal.h"
#include "libopensc/pace.h"
#include "libopensc/sm.h"
#include "card-npa.h"
#include <npa/boxing.h>
#include <npa/npa.h>
@@ -377,7 +378,7 @@ err:
static int npa_finish(sc_card_t * card)
{
sm_stop(card);
sc_sm_stop(card);
npa_drv_data_free(card->drv_data);
card->drv_data = NULL;
EAC_cleanup();
@@ -655,7 +656,7 @@ static int npa_logout(sc_card_t *card)
{
struct sc_apdu apdu;
sm_stop(card);
sc_sm_stop(card);
if (card->reader->capabilities & SC_READER_CAP_PACE_GENERIC) {
/* If PACE is done between reader and card, SM is transparent to us as

View File

@@ -25,6 +25,7 @@
#include "config.h"
#endif
#include <libopensc/sm.h>
#include <npa/iso-sm.h>
#include <npa/npa.h>
#include <npa/scutil.h>
@@ -127,7 +128,7 @@ err:
if (pace_output.id_pcd)
free(pace_output.id_pcd);
sm_stop(card);
sc_sm_stop(card);
sc_reset(card, 1);
sc_disconnect_card(card);
sc_release_context(ctx);

View File

@@ -720,20 +720,6 @@ int iso_sm_start(struct sc_card *card, struct iso_sm_ctx *sctx)
return SC_SUCCESS;
}
int sm_stop(struct sc_card *card)
{
int r = SC_SUCCESS;
if (card) {
if (card->sm_ctx.sm_mode == SM_MODE_TRANSMIT
&& card->sm_ctx.ops.close)
r = card->sm_ctx.ops.close(card);
card->sm_ctx.sm_mode = SM_MODE_NONE;
}
return r;
}
#else
int iso_sm_close(struct sc_card *card)
@@ -760,9 +746,4 @@ int iso_sm_start(struct sc_card *card, struct iso_sm_ctx *sctx)
return SC_ERROR_NOT_SUPPORTED;
}
int sm_stop(struct sc_card *card)
{
return SC_ERROR_NOT_SUPPORTED;
}
#endif

View File

@@ -25,6 +25,7 @@
#include <eac/pace.h>
#include <libopensc/log.h>
#include <libopensc/opensc.h>
#include <libopensc/sm.h>
#include <npa/boxing.h>
#include <npa/iso-sm.h>
#include <npa/npa.h>
@@ -790,7 +791,7 @@ err:
if (templates)
ASN1_AUXILIARY_DATA_free(templates);
sm_stop(card);
sc_sm_stop(card);
sc_reset(card, 1);
sc_disconnect_card(card);
sc_release_context(ctx);

View File

@@ -118,18 +118,6 @@ struct iso_sm_ctx *iso_sm_ctx_create(void);
*/
int iso_sm_start(struct sc_card *card, struct iso_sm_ctx *sctx);
/**
* @brief Stops SM and frees allocated ressources.
*
* Calls \a card->sm_ctx.ops.close() if available and \c card->sm_ctx.sm_mode
* is \c SM_MODE_TRANSMIT
*
* @param[in] card
*
* @return \c SC_SUCCESS or error code if an error occurred
*/
int sm_stop(struct sc_card *card);
#ifdef __cplusplus
}
#endif