58 |
__leave; |
__leave; |
59 |
} |
} |
60 |
|
|
|
|
|
|
/* CardInitializationAndDeconstruct.c */ |
|
61 |
pCardData->pfnCardDeleteContext = CardDeleteContext; |
pCardData->pfnCardDeleteContext = CardDeleteContext; |
|
|
|
|
/* CardPinOperation.c */ |
|
62 |
pCardData->pfnCardAuthenticatePin = CardAuthenticatePin; |
pCardData->pfnCardAuthenticatePin = CardAuthenticatePin; |
63 |
pCardData->pfnCardGetChallenge = CardGetChallenge; |
pCardData->pfnCardGetChallenge = CardGetChallenge; |
64 |
pCardData->pfnCardAuthenticateChallenge = CardAuthenticateChallenge; |
pCardData->pfnCardAuthenticateChallenge = CardAuthenticateChallenge; |
65 |
|
pCardData->pfnCardDeauthenticate = NULL; //CardDeauthenticate; |
|
pCardData->pfnCardDeauthenticate = CardDeauthenticate; |
|
|
pCardData->pfnCardAuthenticateEx = CardAuthenticateEx; |
|
|
pCardData->pfnCardGetChallengeEx = CardGetChallengeEx; |
|
|
pCardData->pfnCardDeauthenticateEx = CardDeauthenticateEx; |
|
|
pCardData->pfnCardChangeAuthenticatorEx = CardChangeAuthenticatorEx; |
|
66 |
pCardData->pfnCardUnblockPin = CardUnblockPin; |
pCardData->pfnCardUnblockPin = CardUnblockPin; |
67 |
pCardData->pfnCardChangeAuthenticator = CardChangeAuthenticator; |
pCardData->pfnCardChangeAuthenticator = CardChangeAuthenticator; |
|
|
|
|
/* CardPublicDataOperation.c */ |
|
68 |
pCardData->pfnCardCreateDirectory = CardCreateDirectory; |
pCardData->pfnCardCreateDirectory = CardCreateDirectory; |
69 |
pCardData->pfnCardDeleteDirectory = CardDeleteDirectory; |
pCardData->pfnCardDeleteDirectory = CardDeleteDirectory; |
70 |
pCardData->pfnCardReadFile = CardReadFile; |
pCardData->pfnCardReadFile = CardReadFile; |
74 |
pCardData->pfnCardDeleteFile = CardDeleteFile; |
pCardData->pfnCardDeleteFile = CardDeleteFile; |
75 |
pCardData->pfnCardEnumFiles = CardEnumFiles; |
pCardData->pfnCardEnumFiles = CardEnumFiles; |
76 |
pCardData->pfnCardQueryFreeSpace = CardQueryFreeSpace; |
pCardData->pfnCardQueryFreeSpace = CardQueryFreeSpace; |
|
|
|
|
/* CardCapabilities.c */ |
|
77 |
pCardData->pfnCardQueryCapabilities = CardQueryCapabilities; |
pCardData->pfnCardQueryCapabilities = CardQueryCapabilities; |
|
|
|
|
/* CardAndContainerProperties.c */ |
|
|
pCardData->pfnCardGetContainerProperty = CardGetContainerProperty; |
|
|
pCardData->pfnCardSetContainerProperty = CardSetContainerProperty; |
|
|
pCardData->pfnCardGetProperty = CardGetProperty; |
|
|
pCardData->pfnCardSetProperty = CardSetProperty; |
|
|
|
|
|
/* CardKeyContainer.c */ |
|
78 |
pCardData->pfnCardCreateContainer = CardCreateContainer; |
pCardData->pfnCardCreateContainer = CardCreateContainer; |
|
pCardData->pfnCardCreateContainerEx = CardCreateContainerEx; |
|
79 |
pCardData->pfnCardDeleteContainer = CardDeleteContainer; |
pCardData->pfnCardDeleteContainer = CardDeleteContainer; |
80 |
pCardData->pfnCardGetContainerInfo = CardGetContainerInfo; |
pCardData->pfnCardGetContainerInfo = CardGetContainerInfo; |
|
|
|
|
/* CardCryptographicOperations.c */ |
|
81 |
pCardData->pfnCardRSADecrypt = CardRSADecrypt; |
pCardData->pfnCardRSADecrypt = CardRSADecrypt; |
82 |
pCardData->pfnCardSignData = CardSignData; |
pCardData->pfnCardSignData = CardSignData; |
|
|
|
|
// should be null for RSA only card |
|
|
pCardData->pfnCardConstructDHAgreement = NULL; //CardConstructDHAgreement; |
|
|
pCardData->pfnCardDeriveKey = NULL; //CardDeriveKey; |
|
|
pCardData->pfnCardDestroyDHAgreement = NULL; //CardDestroyDHAgreement; |
|
|
|
|
83 |
pCardData->pfnCardSignData = CardSignData; |
pCardData->pfnCardSignData = CardSignData; |
84 |
pCardData->pfnCardQueryKeySizes = CardQueryKeySizes; |
pCardData->pfnCardQueryKeySizes = CardQueryKeySizes; |
85 |
|
|
86 |
/* Not found : |
// should be null for RSA only card |
87 |
The pfnCardDeriveKey, pfnCardDestroyDHAgreement, and pfnCspGetDHAgreement |
pCardData->pfnCardConstructDHAgreement = NULL; //CardConstructDHAgreement; |
88 |
members of the CARD_DATA structure are described in later sections. |
|
89 |
Starting with Version 5 of this specification, the necessary modifications |
if (pCardData->dwVersion >= CARD_DATA_VERSION_FIVE) |
90 |
to the pfnCardConstructDHAgreement function are handled through versioning |
{ |
91 |
the structure that is associated with that function. |
pCardData->pfnCardDeriveKey = NULL; //CardDeriveKey; |
92 |
=> what's the prototype for this function ? |
pCardData->pfnCardDestroyDHAgreement = NULL; //CardDestroyDHAgreement; |
93 |
*/ |
} |
94 |
|
if (pCardData->dwVersion >= CARD_DATA_VERSION_SIX) |
95 |
pCardData->pfnCspGetDHAgreement = NULL; |
{ |
96 |
|
pCardData->pfnCardGetChallengeEx = CardGetChallengeEx; |
97 |
|
pCardData->pfnCardAuthenticateEx = CardAuthenticateEx; |
98 |
|
pCardData->pfnCardChangeAuthenticatorEx = CardChangeAuthenticatorEx; |
99 |
|
pCardData->pfnCardDeauthenticateEx = CardDeauthenticateEx; |
100 |
|
pCardData->pfnCardGetContainerProperty = CardGetContainerProperty; |
101 |
|
pCardData->pfnCardSetContainerProperty = CardSetContainerProperty; |
102 |
|
pCardData->pfnCardGetProperty = CardGetProperty; |
103 |
|
pCardData->pfnCardSetProperty = CardSetProperty; |
104 |
|
} |
105 |
|
if (pCardData->dwVersion >= CARD_DATA_VERSION_SEVEN) |
106 |
|
{ |
107 |
|
pCardData->pfnMDImportSessionKey = MDImportSessionKey; |
108 |
|
pCardData->pfnMDEncryptData = MDEncryptData; |
109 |
|
pCardData->pfnCardImportSessionKey = CardImportSessionKey; |
110 |
|
pCardData->pfnCardGetSharedKeyHandle = CardGetSharedKeyHandle; |
111 |
|
pCardData->pfnCardGetAlgorithmProperty = CardGetAlgorithmProperty; |
112 |
|
pCardData->pfnCardGetKeyProperty = CardGetKeyProperty; |
113 |
|
pCardData->pfnCardSetKeyProperty = CardSetKeyProperty; |
114 |
|
pCardData->pfnCardProcessEncryptedData = CardProcessEncryptedData; |
115 |
|
pCardData->pfnCardDestroyKey = CardDestroyKey; |
116 |
|
pCardData->pfnCardCreateContainerEx = CardCreateContainerEx; |
117 |
|
} |
118 |
} |
} |
119 |
__finally |
__finally |
120 |
{ |
{ |