root/middleware-offline/trunk/_src/eidmw/patches/pteid-SCAP.patch @ 272

Revision 272, 2.3 KB (checked in by vsilva, 6 years ago)

First official release

  • pkcs11/cal.cpp

     
    3838 
    3939CCardLayer *oCardLayer; 
    4040CReadersInfo *oReadersInfo; 
     41int g_PINCache = 0; 
    4142 
    4243extern "C" { 
    4344extern unsigned int   gRefCount; 
     
    6465   } 
    6566catch (CMWException e) 
    6667   { 
    67      printf ("FOI AQUI CCLAYER\n"); 
    6868   return(cal_translate_error(WHERE, e.GetError())); 
    6969   } 
    7070catch (...)  
     
    8888#define WHERE "cal_close()" 
    8989int cal_close() 
    9090{ 
    91 int ret = 0; 
     91   int ret = 0; 
    9292 
    9393//Reference count countdown, clean if 0 
    9494//if (--gRefCount > 0) 
    9595//   return (0); 
    9696 
    97 if (oCardLayer) 
    98    delete(oCardLayer); 
    99 if (oReadersInfo) 
    100    delete(oReadersInfo); 
     97   if (g_PINCache) 
     98   { 
    10199 
    102 oCardLayer = NULL; 
    103 oReadersInfo   = NULL; 
     100      P11_SLOT *pSlot = NULL; 
     101       
     102      //XXX: hardcoded to slot 0 
     103      pSlot = p11_get_slot(0); 
     104      if (pSlot == NULL) 
     105      { 
     106         log_trace(WHERE, "E: Invalid slot 0"); 
     107         return (CKR_SLOT_ID_INVALID); 
     108      } 
     109      std::string szReader = pSlot->name; 
    104110 
    105 return (ret); 
     111      try 
     112      { 
     113         CReader &oReader = oCardLayer->getReader(szReader); 
     114 
     115         oReader.setSSO(false); 
     116      } 
     117      catch (CMWException e) 
     118      { 
     119 
     120      } 
     121   } 
     122 
     123   if (oCardLayer) 
     124      delete(oCardLayer); 
     125   if (oReadersInfo) 
     126      delete(oReadersInfo); 
     127 
     128   oCardLayer = NULL; 
     129   oReadersInfo = NULL; 
     130 
     131   return (ret); 
    106132} 
     133 
    107134#undef WHERE 
    108135 
    109136 
     
    963990try 
    964991   { 
    965992   CReader &oReader = oCardLayer->getReader(szReader); 
     993 
     994   if (g_PINCache) 
     995   { 
     996      oReader.setSSO(true); 
     997   } 
     998   //HACK: Auth PIN caching for the purpose of making the SCAP application work properly 
     999   if (pSignData->id == 0x45 && !g_PINCache) 
     1000   { 
     1001      g_PINCache = 1; 
     1002   } 
     1003 
    9661004   tPrivKey key = oReader.GetPrivKeyByID(pSignData->id); 
    9671005 
    9681006   switch(pSignData->mechanism) 
  • cardlayer/Card.h

     
    126126 
    127127    virtual void setPinpadHandler(GenericPinpad * pinpad) 
    128128    { 
    129         m_poPinpad = pinpad; 
     129        //m_poPinpad = pinpad; 
    130130 
    131131    } 
    132132 
Note: See TracBrowser for help on using the browser.