Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6tokenimpl.h
Go to the documentation of this file.
1 
17 #ifndef P6TOKENIMPL_H__
18 #define P6TOKENIMPL_H__ 1
19 
20 #include "pkcs11.h"
21 #include "p6com.h"
22 #include "p6trustedstorage.h"
23 
24 #ifdef __cplusplus
25 namespace P6R {
26 extern "C" {
27 #endif
28 
29 
40 const P6PKCS11PLUGFLAGS P6PKCS11PLUGFLAGS_NOFLAGS = 0x00000000;
41 const P6PKCS11PLUGFLAGS P6PKCS11PLUGFLAGS_VERSIONMAP_OFF = 0x00000001;
42 
51 typedef enum
52 {
53  ACCESS_READ_ONLY = 0x00, // -> default, not logged in user with session has this privledge
54  ACCESS_READ_WRITE = 0x01 // -> logged in user can as for R/W access
56 
58 
59 
67 #undef INTERFACE
68 #define INTERFACE p6ITokenImpl
70 {
90  P6DECLCOMMETHOD(initialize)(P6THIS_ CK_RV* pRV, CK_FLAGS initFlags, P6PKCS11PLUGFLAGS libWideFlags, P6BWCSTR* pTokenType ) P6PURE;
91 
104  P6DECLCOMMETHOD(finalize)(P6THIS_ CK_RV* pRV, CK_VOID_PTR pReserved ) P6PURE;
105 
124 
145 
164 
181  P6DECLCOMMETHOD(getSlotInfo)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_SLOT_INFO_PTR pInfo ) P6PURE;
182 
199  P6DECLCOMMETHOD(getTokenInfo)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_TOKEN_INFO_PTR pInfo ) P6PURE;
200 
217  P6DECLCOMMETHOD(getMechanismList)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount ) P6PURE;
218 
235  P6DECLCOMMETHOD(getMechanismInfo)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_MECHANISM_TYPE mechType, CK_MECHANISM_INFO_PTR pInfo ) P6PURE;
236 
258  P6DECLCOMMETHOD(openSession)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession ) P6PURE;
259 
276  P6DECLCOMMETHOD(closeSession)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
277 
294  P6DECLCOMMETHOD(getSessionInfo)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo ) P6PURE;
295 
312  P6DECLCOMMETHOD(getOperationState)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen ) P6PURE;
313 
330  P6DECLCOMMETHOD(setOperationState)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey ) P6PURE;
331 
349 
366  P6DECLCOMMETHOD(setPin)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen ) P6PURE;
367 
385 
403 
420  P6DECLCOMMETHOD(createObject)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject ) P6PURE;
421 
439 
457 
475 
492  P6DECLCOMMETHOD(getAttributeValue)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount ) P6PURE;
493 
510  P6DECLCOMMETHOD(setAttributeValue)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount ) P6PURE;
511 
528  P6DECLCOMMETHOD(findObjectsInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount ) P6PURE;
529 
552  P6DECLCOMMETHOD(findObjects)(P6THIS_ ADD_OBJECT_TO_SESSION pCallback, CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount ) P6PURE;
553 
570  P6DECLCOMMETHOD(findObjectsFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
571 
588  P6DECLCOMMETHOD(seedRandom)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen ) P6PURE;
589 
606  P6DECLCOMMETHOD(generateRandom)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData, CK_ULONG ulRandomLen ) P6PURE;
607 
624  P6DECLCOMMETHOD(waitForSlotEvent)(P6THIS_ CK_RV* pRV, CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved ) P6PURE;
625 
642  P6DECLCOMMETHOD(getFunctionStatus)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
643 
660  P6DECLCOMMETHOD(cancelFunction)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
661 
678  P6DECLCOMMETHOD(digestEncryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen ) P6PURE;
679 
696  P6DECLCOMMETHOD(decryptDigestUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen ) P6PURE;
697 
714  P6DECLCOMMETHOD(signEncryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen ) P6PURE;
715 
732  P6DECLCOMMETHOD(decryptVerifyUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen ) P6PURE;
733 
751 
768  P6DECLCOMMETHOD(sign)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen ) P6PURE;
769 
786  P6DECLCOMMETHOD(signUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen ) P6PURE;
787 
804  P6DECLCOMMETHOD(signFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen ) P6PURE;
805 
822  P6DECLCOMMETHOD(signRecoverInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
823 
840  P6DECLCOMMETHOD(signRecover)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen ) P6PURE;
841 
858  P6DECLCOMMETHOD(verifyInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
859 
876  P6DECLCOMMETHOD(verify)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen ) P6PURE;
877 
894  P6DECLCOMMETHOD(verifyUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen ) P6PURE;
895 
912  P6DECLCOMMETHOD(verifyFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen ) P6PURE;
913 
930  P6DECLCOMMETHOD(verifyRecoverInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
931 
948  P6DECLCOMMETHOD(verifyRecover)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen ) P6PURE;
949 
966  P6DECLCOMMETHOD(digestInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism ) P6PURE;
967 
984  P6DECLCOMMETHOD(digest)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen ) P6PURE;
985 
1002  P6DECLCOMMETHOD(digestUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen ) P6PURE;
1003 
1021 
1038  P6DECLCOMMETHOD(digestFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen ) P6PURE;
1039 
1056  P6DECLCOMMETHOD(generateKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey ) P6PURE;
1057 
1078  P6DECLCOMMETHOD(generateKeyPair)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate,
1079  CK_ULONG ulPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate, CK_ULONG ulPrivateKeyAttributeCount,
1080  CK_OBJECT_HANDLE_PTR phPublicKey, CK_OBJECT_HANDLE_PTR phPrivateKey ) P6PURE;
1081 
1098  P6DECLCOMMETHOD(wrapKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hWrappingKey,
1099  CK_OBJECT_HANDLE hKey, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pulWrappedKeyLen ) P6PURE;
1100 
1117  P6DECLCOMMETHOD(unwrapKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hUnwrappingKey,
1118  CK_BYTE_PTR pWrappedKey, CK_ULONG ulWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate,
1119  CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey ) P6PURE;
1120 
1137  P6DECLCOMMETHOD(deriveKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hBaseKey,
1138  CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey ) P6PURE;
1139 
1156  P6DECLCOMMETHOD(encrypt)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen ) P6PURE;
1157 
1174  P6DECLCOMMETHOD(encryptInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
1175 
1192  P6DECLCOMMETHOD(encryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen ) P6PURE;
1193 
1210  P6DECLCOMMETHOD(encryptFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen ) P6PURE;
1211 
1228  P6DECLCOMMETHOD(decryptInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
1229 
1246  P6DECLCOMMETHOD(decrypt)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen ) P6PURE;
1247 
1264  P6DECLCOMMETHOD(decryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen ) P6PURE;
1265 
1282  P6DECLCOMMETHOD(decryptFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pulLastPartLen ) P6PURE;
1283 };
1284 
1285 // {59B44C1F-8032-42fe-9D89-A03821454778}
1286 #define IF_p6ITokenImpl {0x59b44c1f,0x8032,0x42fe,{0x9d,0x89,0xa0,0x38,0x21,0x45,0x47,0x78}}
1287 
1288 
1297 #undef INTERFACE
1298 #define INTERFACE p6ITokenImpl2
1300 {
1323  P6DECLCOMMETHOD(initialize2)(P6THIS_ CK_RV* pRV, CK_FLAGS initFlags, P6PKCS11PLUGFLAGS libWideFlags, p6ITrustedStorage* pTrust, P6BWCSTR* pTokenType ) P6PURE;
1324 
1337  P6DECLCOMMETHOD(finalize)(P6THIS_ CK_RV* pRV, CK_VOID_PTR pReserved ) P6PURE;
1338 
1357 
1378 
1397 
1414  P6DECLCOMMETHOD(getSlotInfo)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_SLOT_INFO_PTR pInfo ) P6PURE;
1415 
1432  P6DECLCOMMETHOD(getTokenInfo)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_TOKEN_INFO_PTR pInfo ) P6PURE;
1433 
1450  P6DECLCOMMETHOD(getMechanismList)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount ) P6PURE;
1451 
1468  P6DECLCOMMETHOD(getMechanismInfo)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_MECHANISM_TYPE mechType, CK_MECHANISM_INFO_PTR pInfo ) P6PURE;
1469 
1491  P6DECLCOMMETHOD(openSession)(P6THIS_ CK_RV* pRV, CK_SLOT_ID slotId, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession ) P6PURE;
1492 
1509  P6DECLCOMMETHOD(closeSession)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
1510 
1527  P6DECLCOMMETHOD(getSessionInfo)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo ) P6PURE;
1528 
1545  P6DECLCOMMETHOD(getOperationState)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen ) P6PURE;
1546 
1563  P6DECLCOMMETHOD(setOperationState)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey ) P6PURE;
1564 
1582 
1599  P6DECLCOMMETHOD(setPin)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen ) P6PURE;
1600 
1618 
1636 
1653  P6DECLCOMMETHOD(createObject)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject ) P6PURE;
1654 
1672 
1690 
1708 
1725  P6DECLCOMMETHOD(getAttributeValue)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount ) P6PURE;
1726 
1743  P6DECLCOMMETHOD(setAttributeValue)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount ) P6PURE;
1744 
1761  P6DECLCOMMETHOD(findObjectsInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount ) P6PURE;
1762 
1785  P6DECLCOMMETHOD(findObjects)(P6THIS_ ADD_OBJECT_TO_SESSION pCallback, CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount ) P6PURE;
1786 
1803  P6DECLCOMMETHOD(findObjectsFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
1804 
1821  P6DECLCOMMETHOD(seedRandom)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen ) P6PURE;
1822 
1839  P6DECLCOMMETHOD(generateRandom)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData, CK_ULONG ulRandomLen ) P6PURE;
1840 
1857  P6DECLCOMMETHOD(waitForSlotEvent)(P6THIS_ CK_RV* pRV, CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved ) P6PURE;
1858 
1875  P6DECLCOMMETHOD(getFunctionStatus)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
1876 
1893  P6DECLCOMMETHOD(cancelFunction)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession ) P6PURE;
1894 
1911  P6DECLCOMMETHOD(digestEncryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen ) P6PURE;
1912 
1929  P6DECLCOMMETHOD(decryptDigestUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen ) P6PURE;
1930 
1947  P6DECLCOMMETHOD(signEncryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen ) P6PURE;
1948 
1965  P6DECLCOMMETHOD(decryptVerifyUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen ) P6PURE;
1966 
1983  P6DECLCOMMETHOD(signInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
1984 
2001  P6DECLCOMMETHOD(sign)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen ) P6PURE;
2002 
2019  P6DECLCOMMETHOD(signUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen ) P6PURE;
2020 
2037  P6DECLCOMMETHOD(signFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen ) P6PURE;
2038 
2055  P6DECLCOMMETHOD(signRecoverInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
2056 
2073  P6DECLCOMMETHOD(signRecover)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen ) P6PURE;
2074 
2091  P6DECLCOMMETHOD(verifyInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
2092 
2109  P6DECLCOMMETHOD(verify)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen ) P6PURE;
2110 
2127  P6DECLCOMMETHOD(verifyUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen ) P6PURE;
2128 
2145  P6DECLCOMMETHOD(verifyFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen ) P6PURE;
2146 
2163  P6DECLCOMMETHOD(verifyRecoverInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
2164 
2181  P6DECLCOMMETHOD(verifyRecover)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen ) P6PURE;
2182 
2199  P6DECLCOMMETHOD(digestInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism ) P6PURE;
2200 
2217  P6DECLCOMMETHOD(digest)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen ) P6PURE;
2218 
2235  P6DECLCOMMETHOD(digestUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen ) P6PURE;
2236 
2254 
2271  P6DECLCOMMETHOD(digestFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen ) P6PURE;
2272 
2289  P6DECLCOMMETHOD(generateKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey ) P6PURE;
2290 
2311  P6DECLCOMMETHOD(generateKeyPair)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate,
2312  CK_ULONG ulPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate, CK_ULONG ulPrivateKeyAttributeCount,
2313  CK_OBJECT_HANDLE_PTR phPublicKey, CK_OBJECT_HANDLE_PTR phPrivateKey ) P6PURE;
2314 
2331  P6DECLCOMMETHOD(wrapKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hWrappingKey,
2332  CK_OBJECT_HANDLE hKey, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pulWrappedKeyLen ) P6PURE;
2333 
2350  P6DECLCOMMETHOD(unwrapKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hUnwrappingKey,
2351  CK_BYTE_PTR pWrappedKey, CK_ULONG ulWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate,
2352  CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey ) P6PURE;
2353 
2370  P6DECLCOMMETHOD(deriveKey)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hBaseKey,
2371  CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey ) P6PURE;
2372 
2389  P6DECLCOMMETHOD(encrypt)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen ) P6PURE;
2390 
2407  P6DECLCOMMETHOD(encryptInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
2408 
2425  P6DECLCOMMETHOD(encryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen ) P6PURE;
2426 
2443  P6DECLCOMMETHOD(encryptFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen ) P6PURE;
2444 
2461  P6DECLCOMMETHOD(decryptInit)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey ) P6PURE;
2462 
2479  P6DECLCOMMETHOD(decrypt)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen ) P6PURE;
2480 
2497  P6DECLCOMMETHOD(decryptUpdate)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen ) P6PURE;
2498 
2515  P6DECLCOMMETHOD(decryptFinal)(P6THIS_ CK_RV* pRV, CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pulLastPartLen ) P6PURE;
2516 };
2517 
2518 // {b9673084-192d-4954-a60b-996f94a07c76}
2519 #define IF_p6ITokenImpl2 {0xb9673084,0x192d,0x4954,{0xa6,0x0b,0x99,0x6f,0x94,0xa0,0x7c,0x76}}
2520 
2521 
2522 #ifdef __cplusplus
2523 } // extern "C"
2524 } // namespace
2525 #endif
2526 
2527 #endif
2528 
2529 
2530 
2531 
2532 
2533 
An interface that defines the basic operations to a potentially limited trusted storage mechanism (e...
CK_RV * pRV
Definition: pkcs11p6r.h:193
CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR
Definition: pkcs11t.h:1028
This is an internal interface that forwards the PKCS 11 token interface to a "named" implementation...
Definition: p6tokenimpl.h:69
CK_ULONG CK_OBJECT_HANDLE
Definition: pkcs11t.h:294
uint32_t P6UINT32
Definition: p6types.h:77
P6UINT32 P6PKCS11PLUGFLAGS
P6PKCS11PLUGFLAGS.
Definition: p6tokenimpl.h:39
CK_OBJECT_HANDLE CK_PTR CK_OBJECT_HANDLE_PTR
Definition: pkcs11t.h:296
#define P6DECLAREICOM
Definition: p6defs.h:191
#define P6PURE
Definition: p6defs.h:192
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
CK_ULONG CK_MECHANISM_TYPE
Definition: pkcs11t.h:580
Wide Const binary string.
Definition: p6types.h:231
CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR
Definition: pkcs11t.h:974
CK_SESSION_INFO CK_PTR CK_SESSION_INFO_PTR
Definition: pkcs11t.h:288
CK_MECHANISM CK_PTR CK_MECHANISM_PTR
Definition: pkcs11t.h:986
P6R::P6ERR(* ADD_OBJECT_TO_SESSION)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, P6BSTR *pGUID, P6ACCESS_TYPE requested)
Definition: p6tokenimpl.h:57
CK_BBOOL tokenPresent
Definition: pkcs11p6r.h:63
unsigned long int CK_ULONG
Definition: pkcs11t.h:44
CK_ULONG CK_FLAGS
Definition: pkcs11t.h:50
CK_UTF8CHAR_PTR CK_ULONG ulPinLen
Definition: pkcs11p6r.h:87
CK_TOKEN_INFO CK_PTR CK_TOKEN_INFO_PTR
Definition: pkcs11t.h:246
const P6PKCS11PLUGFLAGS P6PKCS11PLUGFLAGS_NOFLAGS
Definition: p6tokenimpl.h:40
void CK_PTR CK_VOID_PTR
Definition: pkcs11t.h:62
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
CK_ULONG CK_SLOT_ID
Definition: pkcs11t.h:100
Binary string.
Definition: p6types.h:185
CK_SLOT_ID CK_PTR CK_SLOT_ID_PTR
Definition: pkcs11t.h:102
const P6PKCS11PLUGFLAGS P6PKCS11PLUGFLAGS_VERSIONMAP_OFF
Definition: p6tokenimpl.h:41
P6UINT32 P6ERR
COM err return type see P6ERR.h.
Definition: p6types.h:141
This is an internal interface that forwards the PKCS 11 token interface to a "named" implementation...
Definition: p6tokenimpl.h:1299
P6ACCESS_TYPE
ADD_OBJECT_TO_SESSION callback.
Definition: p6tokenimpl.h:51
CK_BBOOL CK_SLOT_ID_PTR CK_ULONG_PTR pulCount
Definition: pkcs11p6r.h:63
CK_NOTIFICATION CK_VOID_PTR pApplication
Definition: pkcs11t.h:1161
CK_OBJECT_HANDLE hObject
Definition: pkcs11p6r.h:230
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
CK_ULONG CK_SESSION_HANDLE
Definition: pkcs11t.h:252
CK_BBOOL CK_SLOT_ID_PTR pSlotList
Definition: pkcs11p6r.h:63
CK_BYTE CK_BBOOL
Definition: pkcs11t.h:41
#define P6THIS_
Definition: p6defs.h:193
CK_SLOT_INFO CK_PTR CK_SLOT_INFO_PTR
Definition: pkcs11t.h:122
P6COM definitions and interfaces.
CK_BYTE CK_PTR CK_BYTE_PTR
Definition: pkcs11t.h:58
CK_ULONG CK_PTR CK_ULONG_PTR
Definition: pkcs11t.h:61
CK_USER_TYPE userType
Definition: pkcs11p6r.h:165
CK_ULONG CK_USER_TYPE
Definition: pkcs11t.h:258
CK_UTF8CHAR_PTR pPin
Definition: pkcs11p6r.h:87
CK_ULONG CK_RV
Definition: pkcs11t.h:1033
An interface that defines basic operations to a trusted storage mechanism (e.g., Trusted Platform Mod...
CK_ATTRIBUTE CK_PTR CK_ATTRIBUTE_PTR
Definition: pkcs11t.h:567
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188
CK_UTF8CHAR CK_PTR CK_UTF8CHAR_PTR
Definition: pkcs11t.h:60
CK_SESSION_HANDLE CK_PTR CK_SESSION_HANDLE_PTR
Definition: pkcs11t.h:254