/[openpgpmdrv]/trunk/OpenPGPminidriver/CardCryptographicOperations.c
ViewVC logotype

Diff of /trunk/OpenPGPminidriver/CardCryptographicOperations.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 7 by vletoux, Tue Mar 2 18:54:34 2010 UTC revision 8 by vletoux, Thu Mar 11 20:32:26 2010 UTC
# Line 58  DWORD WINAPI CardRSADecrypt( Line 58  DWORD WINAPI CardRSADecrypt(
58                          dwReturn  = SCARD_E_INVALID_PARAMETER;                          dwReturn  = SCARD_E_INVALID_PARAMETER;
59                          __leave;                          __leave;
60                  }                  }
61                  if (pInfo->dwVersion < CARD_RSA_KEY_DECRYPT_INFO_CURRENT_VERSION                  if (pInfo->dwVersion != CARD_RSA_KEY_DECRYPT_INFO_VERSION_ONE
62                          && pCardData->dwVersion == CARD_DATA_CURRENT_VERSION)                          && pInfo->dwVersion != CARD_RSA_KEY_DECRYPT_INFO_VERSION_TWO)
63                  {                  {
64                          Trace(WINEVENT_LEVEL_ERROR, L"ERROR_REVISION_MISMATCH");                          Trace(WINEVENT_LEVEL_ERROR, L"ERROR_REVISION_MISMATCH");
65                          dwReturn  = ERROR_REVISION_MISMATCH;                          dwReturn  = ERROR_REVISION_MISMATCH;
# Line 68  DWORD WINAPI CardRSADecrypt( Line 68  DWORD WINAPI CardRSADecrypt(
68                  if (pInfo->dwKeySpec != AT_KEYEXCHANGE)                  if (pInfo->dwKeySpec != AT_KEYEXCHANGE)
69                  {                  {
70                          Trace(WINEVENT_LEVEL_ERROR, L"AT_KEYEXCHANGE %d", pInfo->dwKeySpec);                          Trace(WINEVENT_LEVEL_ERROR, L"AT_KEYEXCHANGE %d", pInfo->dwKeySpec);
71                          dwReturn  = SCARD_E_NO_KEY_CONTAINER ;                          dwReturn  = SCARD_E_INVALID_PARAMETER ;
72                          __leave;                          __leave;
73                  }                  }
74                  if (pInfo->bContainerIndex != Confidentiality)                  if (pInfo->bContainerIndex != Confidentiality)
# Line 82  DWORD WINAPI CardRSADecrypt( Line 82  DWORD WINAPI CardRSADecrypt(
82                  {                  {
83                          __leave;                          __leave;
84                  }                  }
85                  dwReturn = SCardDecrypt(pCardData, pInfo);                  dwReturn = OCardDecrypt(pCardData, pInfo);
86                    if (dwReturn == SCARD_W_WRONG_CHV)
87                    {
88                            dwReturn = SCARD_W_SECURITY_VIOLATION;
89                    }
90          }          }
91          __finally          __finally
92          {          {
# Line 119  DWORD WINAPI CardSignData( Line 123  DWORD WINAPI CardSignData(
123                          dwReturn  = SCARD_E_INVALID_PARAMETER;                          dwReturn  = SCARD_E_INVALID_PARAMETER;
124                          __leave;                          __leave;
125                  }                  }
126                    if ( ( pInfo->dwVersion != CARD_SIGNING_INFO_BASIC_VERSION   ) &&
127                            ( pInfo->dwVersion != CARD_SIGNING_INFO_CURRENT_VERSION ) )
128                    {
129                            Trace(WINEVENT_LEVEL_ERROR, L"dwVersion == %d", pInfo->dwVersion);
130                            dwReturn  = ERROR_REVISION_MISMATCH;
131                            __leave;
132                    }
133                  if ( pInfo->pbData == NULL )                  if ( pInfo->pbData == NULL )
134                  {                  {
135                          Trace(WINEVENT_LEVEL_ERROR, L"pInfo->pbData == NULL");                          Trace(WINEVENT_LEVEL_ERROR, L"pInfo->pbData == NULL");
136                          dwReturn  = SCARD_E_INVALID_PARAMETER;                          dwReturn  = SCARD_E_INVALID_PARAMETER;
137                          __leave;                          __leave;
138                  }                  }
139                    if (pInfo->dwKeySpec == AT_KEYEXCHANGE)
140                    {
141                            Trace(WINEVENT_LEVEL_ERROR, L"AT_KEYEXCHANGE %d", pInfo->dwKeySpec);
142                            dwReturn  = SCARD_E_NO_KEY_CONTAINER ;
143                            __leave;
144                    }
145                    if (pInfo->dwKeySpec != AT_SIGNATURE)
146                    {
147                            Trace(WINEVENT_LEVEL_ERROR, L"AT_SIGNATURE %d", pInfo->dwKeySpec);
148                            dwReturn  = SCARD_E_INVALID_PARAMETER ;
149                            __leave;
150                    }
151                  dwReturn = CheckContext(pCardData);                  dwReturn = CheckContext(pCardData);
152                  if ( dwReturn)                  if ( dwReturn)
153                  {                  {
# Line 133  DWORD WINAPI CardSignData( Line 156  DWORD WINAPI CardSignData(
156                  switch(pInfo->bContainerIndex)                  switch(pInfo->bContainerIndex)
157                  {                  {
158                  case Authentication:                  case Authentication:
159                          dwReturn = SCardAuthenticate(pCardData, pInfo);                          dwReturn = OCardAuthenticate(pCardData, pInfo);
160                          break;                          break;
161                  case Signature:                  case Signature:
162                          dwReturn = SCardSign(pCardData, pInfo);                          dwReturn = OCardSign(pCardData, pInfo);
163                          break;                          break;
164                  default:                  default:
165                          dwReturn = SCARD_E_NO_KEY_CONTAINER;                          dwReturn = SCARD_E_NO_KEY_CONTAINER;
166                          Trace(WINEVENT_LEVEL_ERROR, L"SCARD_E_NO_KEY_CONTAINER %d", pInfo->bContainerIndex);                          Trace(WINEVENT_LEVEL_ERROR, L"SCARD_E_NO_KEY_CONTAINER %d", pInfo->bContainerIndex);
167                          __leave;                          __leave;
168                  }                  }
169                    if (dwReturn == SCARD_W_WRONG_CHV)
170                    {
171                            dwReturn = SCARD_W_SECURITY_VIOLATION;
172                    }
173          }          }
174          __finally          __finally
175          {          {
# Line 189  DWORD WINAPI CardQueryKeySizes( Line 216  DWORD WINAPI CardQueryKeySizes(
216                          dwReturn  = ERROR_REVISION_MISMATCH;                          dwReturn  = ERROR_REVISION_MISMATCH;
217                          __leave;                          __leave;
218                  }                  }
219                    dwReturn = CheckContext(pCardData);
220                    if ( dwReturn)
221                    {
222                            __leave;
223                    }
224                  switch(dwKeySpec)                  switch(dwKeySpec)
225                  {                  {
226                          case AT_ECDHE_P256 :                          case AT_ECDHE_P256 :

Legend:
Removed from v.7  
changed lines
  Added in v.8

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26