Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6keystore.h
Go to the documentation of this file.
1 
10 #ifndef P6KEYSTORE_H__
11 #define P6KEYSTORE_H__ 1
12 
13 #include "p6crypto.h"
14 #include "p6sign.h"
15 #include "p6cert.h"
16 #include "p6cryptokey.h"
17 #include "p6symmetric.h"
18 #include "p6enumwstr.h"
19 
20 #ifdef __cplusplus
21 namespace P6R {
22 extern "C" {
23 #endif
24 
38 static const P6KEYSTOREFLAGS P6KEYSTORE_NOFLAGS = 0x00000000;
39 static const P6KEYSTOREFLAGS P6KEYSTORE_RECOVERBADSIG = 0x00000001;
40 static const P6KEYSTOREFLAGS P6KEYSTORE_NOLOADMETA = 0x00000002;
41 
57 typedef enum {
58  ENTRY_NULL = 0x00,
59  ENTRY_KEY = 0x01,
60  ENTRY_CERT = 0x02,
61  ENTRY_BLOB = 0x03,
62  ENTRY_LINK = 0x04,
65 
66 
67 #define P6KSMAXNAMESPACE 500
68 #define P6KSMAXNAME 500
69 #define P6KSMAXLINKTYPE 300
70 #define P6KSMAXLINKMETA 300
71 #define P6KSMAXATTRIBNAME 300
72 #define P6KSMAXATTRIBSTR 3000
73 #define P6KSMAXLOCATION 3000
74 #define P6KSMAXLABEL 500
75 
90 typedef struct
91 {
93  P6WCHAR szNamespace[ P6KSMAXNAMESPACE ];
94  P6WCHAR szName[ P6KSMAXNAME ];
97 
98 
118 typedef struct
119 {
125  P6WCHAR szMetaData[ P6KSMAXLINKMETA ];
127 
128 
141 typedef struct
142 {
144  P6WCHAR szRemoteLocation[ P6KSMAXLOCATION ];
145  P6WCHAR szLabel[ P6KSMAXLABEL ];
147 
148 
167 typedef struct
168 {
171  union {
172  P6WCHAR szValueStr[ P6KSMAXATTRIBSTR ];
175  } value;
176 } P6KEYSTORE_ATTRIBUTE;
177 
178 
185 #undef INTERFACE
186 #define INTERFACE p6IEnumKeystore
188 {
204  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements, P6KEYSTORE_ENTRY* parElements, P6UINT32* pcReturned ) P6PURE;
205 
214  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
215 };
216 // {2FEA7C69-C0CF-4a80-842F-01974B79EBDA}
217 #define IF_p6IEnumKeystore {0x2fea7c69,0xc0cf,0x4a80,{0x84,0x2f,0x1,0x97,0x4b,0x79,0xeb,0xda}}
218 
219 
225 #undef INTERFACE
226 #define INTERFACE p6IEnumKeystoreAttrib
228 {
244  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements, P6KEYSTORE_ATTRIBUTE* parElements, P6UINT32* pcReturned ) P6PURE;
245 
254  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
255 };
256 // {2A52D3F3-F42C-4a0b-AE85-B0AACC82B4BF}
257 #define IF_p6IEnumKeystoreAttrib {0x2a52d3f3,0xf42c,0x4a0b,{0xae,0x85,0xb0,0xaa,0xcc,0x82,0xb4,0xbf}}
258 
259 
266 #undef INTERFACE
267 #define INTERFACE p6IKeystoreQuery
269 {
290  P6DECLCOMMETHOD(enumKeyBySize)(P6THIS_ P6UINT32 size, P6INT8 comparator, p6IEnumKeystore** ppEnum ) P6PURE;
291 
307  P6DECLCOMMETHOD(enumKeyByState)(P6THIS_ P6CRYPTOKEYSTATE state, p6IEnumKeystore** ppEnum ) P6PURE;
308 
324  P6DECLCOMMETHOD(enumKeyByCipher)(P6THIS_ P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
325 
341  P6DECLCOMMETHOD(enumKeyByClass)(P6THIS_ P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
342 
358  P6DECLCOMMETHOD(enumKeyByExpired)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
359 
375  P6DECLCOMMETHOD(enumKeyByRenewal)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
376 
397  P6DECLCOMMETHOD(enumKeyBySizeByCipher)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
398 
419  P6DECLCOMMETHOD(enumKeyBySizeByClass)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
420 
440  P6DECLCOMMETHOD(enumKeyLikeCipher)(P6THIS_ const P6WCHAR* pCipher, p6IEnumKeystore** ppEnum ) P6PURE;
441 
460  P6DECLCOMMETHOD(enumKeyLikeDescriptiveLabel)(P6THIS_ const P6WCHAR* pDescription, p6IEnumKeystore** ppEnum ) P6PURE;
461 
479  P6DECLCOMMETHOD(enumKeyLikeUse)(P6THIS_ const P6WCHAR* pUse, p6IEnumKeystore** ppEnum ) P6PURE;
480 
495  P6DECLCOMMETHOD(enumCertBySubject)(P6THIS_ const P6WCHAR* pSubject, p6IEnumKeystore** ppEnum ) P6PURE;
496 
512  P6DECLCOMMETHOD(enumLinkBySource)(P6THIS_ P6UUID* pSource, p6IEnumKeystore** ppEnum ) P6PURE;
513 
529  P6DECLCOMMETHOD(enumLinkByTarget)(P6THIS_ P6UUID* pTarget, p6IEnumKeystore** ppEnum ) P6PURE;
530 
548  P6DECLCOMMETHOD(enumLinkLikeType)(P6THIS_ const P6WCHAR* pType, p6IEnumKeystore** ppEnum ) P6PURE;
549 };
550 // {B3541C2E-703E-416d-B0CD-3035A7B76098}
551 #define IF_p6IKeystoreQuery {0xb3541c2e,0x703e,0x416d,{0xb0,0xcd,0x30,0x35,0xa7,0xb7,0x60,0x98}}
552 
563 #undef INTERFACE
564 #define INTERFACE p6IKeystoreInit
566 {
588  P6DECLCOMMETHOD(initialize)(P6THIS_ P6KEYSTOREFLAGS flags,
589  p6ISymmetricCrypto* pEncryptKey,
590  P6SIGNHMAC signAlg,
591  p6ICryptoKey* pSignKey ) P6PURE;
592 
620  P6DECLCOMMETHOD(openSigned)(P6THIS_ const P6WCHAR* pPath, const P6WCHAR* pKeystoreName ) P6PURE;
621 
642  P6DECLCOMMETHOD(open)(P6THIS_ const P6WCHAR* pURI ) P6PURE;
643 
653  P6DECLCOMMETHOD(close)(P6THIS) P6PURE;
654 
665  P6DECLCOMMETHOD(resetStore)(P6THIS) P6PURE;
666 };
667 
668 /*{CE121684-4E87-63FD-BFA6-AF86BE5C6DA5}*/
669 #define IF_p6IKeystoreInit {0xCE121684,0x4E87,0x63FD,{0xBF,0xA6,0xAF,0x86,0xBE,0x5C,0x6D,0xA5}}
670 
687 #undef INTERFACE
688 #define INTERFACE p6IKeystore
690 {
709  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
710 
725  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
726 
744  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
745 
760  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
761 
779  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
780 
803  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
804 
824  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
825 
844  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
845 
860  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
861 
876  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
877 
892  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
893 
914  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
915 
934  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
935 
954  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
955 
979  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
980 
997  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
998 
1015  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
1016 
1033  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
1034 
1048  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
1049 
1070  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
1071 
1089  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
1090 
1108  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert ) P6PURE;
1109 
1124  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert ) P6PURE;
1125 
1143  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob ) P6PURE;
1144 
1159  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob ) P6PURE;
1160 
1180  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
1181 
1198  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
1199 
1218  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
1219 
1234  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
1235 };
1236 
1237 // {6ECB5D85-2751-49ad-99DA-2AA173FC2737}
1238 #define IF_p6IKeystore {0x6ecb5d85,0x2751,0x49ad,{0x99,0xda,0x2a,0xa1,0x73,0xfc,0x27,0x37}}
1239 
1240 // {C65CDFF1-4E4A-4bba-9E38-1273C8895E0F}
1241 #define COMP_p6Keystore {0xc65cdff1,0x4e4a,0x4bba,{0x9e,0x38,0x12,0x73,0xc8,0x89,0x5e,0xf}}
1242 
1243 
1250 #undef INTERFACE
1251 #define INTERFACE p6IKeystoreQuery2
1253 {
1274  P6DECLCOMMETHOD(enumKeyBySize)(P6THIS_ P6UINT32 size, P6INT8 comparator, p6IEnumKeystore** ppEnum ) P6PURE;
1275 
1291  P6DECLCOMMETHOD(enumKeyByState)(P6THIS_ P6CRYPTOKEYSTATE state, p6IEnumKeystore** ppEnum ) P6PURE;
1292 
1308  P6DECLCOMMETHOD(enumKeyByCipher)(P6THIS_ P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
1309 
1325  P6DECLCOMMETHOD(enumKeyByClass)(P6THIS_ P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
1326 
1342  P6DECLCOMMETHOD(enumKeyByExpired)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
1343 
1359  P6DECLCOMMETHOD(enumKeyByRenewal)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
1360 
1381  P6DECLCOMMETHOD(enumKeyBySizeByCipher)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
1382 
1403  P6DECLCOMMETHOD(enumKeyBySizeByClass)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
1404 
1424  P6DECLCOMMETHOD(enumKeyLikeCipher)(P6THIS_ const P6WCHAR* pCipher, p6IEnumKeystore** ppEnum ) P6PURE;
1425 
1444  P6DECLCOMMETHOD(enumKeyLikeDescriptiveLabel)(P6THIS_ const P6WCHAR* pDescription, p6IEnumKeystore** ppEnum ) P6PURE;
1445 
1463  P6DECLCOMMETHOD(enumKeyLikeUse)(P6THIS_ const P6WCHAR* pUse, p6IEnumKeystore** ppEnum ) P6PURE;
1464 
1479  P6DECLCOMMETHOD(enumCertBySubject)(P6THIS_ const P6WCHAR* pSubject, p6IEnumKeystore** ppEnum ) P6PURE;
1480 
1496  P6DECLCOMMETHOD(enumLinkBySource)(P6THIS_ P6UUID* pSource, p6IEnumKeystore** ppEnum ) P6PURE;
1497 
1513  P6DECLCOMMETHOD(enumLinkByTarget)(P6THIS_ P6UUID* pTarget, p6IEnumKeystore** ppEnum ) P6PURE;
1514 
1532  P6DECLCOMMETHOD(enumLinkLikeType)(P6THIS_ const P6WCHAR* pType, p6IEnumKeystore** ppEnum ) P6PURE;
1533 
1550  P6DECLCOMMETHOD(enumByAttributeName)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, p6IEnumKeystore** ppEnum ) P6PURE;
1551 
1569  P6DECLCOMMETHOD(enumByAttributeString)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, const P6WCHAR* pValueStr, p6IEnumKeystore** ppEnum ) P6PURE;
1570 
1589  P6DECLCOMMETHOD(enumByAttributeInteger)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, P6INT32 valueInt, P6INT8 comparitor, p6IEnumKeystore** ppEnum ) P6PURE;
1590 
1609  P6DECLCOMMETHOD(enumByAttributeTime)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, P6TIME timeStamp, P6INT8 comparitor, p6IEnumKeystore** ppEnum ) P6PURE;
1610 };
1611 // {319939EA-C0F5-4ad1-B401-D1EF09AA182C}
1612 #define IF_p6IKeystoreQuery2 {0x319939ea,0xc0f5,0x4ad1,{0xb4,0x1,0xd1,0xef,0x9,0xaa,0x18,0x2c}}
1613 
1614 
1622 #undef INTERFACE
1623 #define INTERFACE p6IKeystoreQuery3
1625 {
1646  P6DECLCOMMETHOD(enumKeyBySize)(P6THIS_ P6UINT32 size, P6INT8 comparator, p6IEnumKeystore** ppEnum ) P6PURE;
1647 
1663  P6DECLCOMMETHOD(enumKeyByState)(P6THIS_ P6CRYPTOKEYSTATE state, p6IEnumKeystore** ppEnum ) P6PURE;
1664 
1680  P6DECLCOMMETHOD(enumKeyByCipher)(P6THIS_ P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
1681 
1697  P6DECLCOMMETHOD(enumKeyByClass)(P6THIS_ P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
1698 
1714  P6DECLCOMMETHOD(enumKeyByExpired)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
1715 
1731  P6DECLCOMMETHOD(enumKeyByRenewal)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
1732 
1753  P6DECLCOMMETHOD(enumKeyBySizeByCipher)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
1754 
1775  P6DECLCOMMETHOD(enumKeyBySizeByClass)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
1776 
1796  P6DECLCOMMETHOD(enumKeyLikeCipher)(P6THIS_ const P6WCHAR* pCipher, p6IEnumKeystore** ppEnum ) P6PURE;
1797 
1816  P6DECLCOMMETHOD(enumKeyLikeDescriptiveLabel)(P6THIS_ const P6WCHAR* pDescription, p6IEnumKeystore** ppEnum ) P6PURE;
1817 
1835  P6DECLCOMMETHOD(enumKeyLikeUse)(P6THIS_ const P6WCHAR* pUse, p6IEnumKeystore** ppEnum ) P6PURE;
1836 
1851  P6DECLCOMMETHOD(enumCertBySubject)(P6THIS_ const P6WCHAR* pSubject, p6IEnumKeystore** ppEnum ) P6PURE;
1852 
1868  P6DECLCOMMETHOD(enumLinkBySource)(P6THIS_ P6UUID* pSource, p6IEnumKeystore** ppEnum ) P6PURE;
1869 
1885  P6DECLCOMMETHOD(enumLinkByTarget)(P6THIS_ P6UUID* pTarget, p6IEnumKeystore** ppEnum ) P6PURE;
1886 
1904  P6DECLCOMMETHOD(enumLinkLikeType)(P6THIS_ const P6WCHAR* pType, p6IEnumKeystore** ppEnum ) P6PURE;
1905 
1922  P6DECLCOMMETHOD(enumByAttributeName)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, p6IEnumKeystore** ppEnum ) P6PURE;
1923 
1941  P6DECLCOMMETHOD(enumByAttributeString)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, const P6WCHAR* pValueStr, p6IEnumKeystore** ppEnum ) P6PURE;
1942 
1961  P6DECLCOMMETHOD(enumByAttributeInteger)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, P6INT32 valueInt, P6INT8 comparitor, p6IEnumKeystore** ppEnum ) P6PURE;
1962 
1981  P6DECLCOMMETHOD(enumByAttributeTime)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, P6TIME timeStamp, P6INT8 comparitor, p6IEnumKeystore** ppEnum ) P6PURE;
1982 
2000  P6DECLCOMMETHOD(enumKeyReferenceLikeLocation)(P6THIS_ const P6WCHAR* pLocation, p6IEnumKeystore** ppEnum ) P6PURE;
2001 };
2002 // {73FEF932-9F15-4D9F-B883-F4C16CE48AB9}
2003 #define IF_p6IKeystoreQuery3 {0x73fef932,0x9f15,0x4d9f,{0xb8,0x83,0xf4,0xc1,0x6c,0xe4,0x8a,0xb9}}
2004 
2005 
2023 #undef INTERFACE
2024 #define INTERFACE p6IKeystore2
2026 {
2045  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
2046 
2061  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
2062 
2080  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
2081 
2096  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
2097 
2115  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
2116 
2139  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
2140 
2160  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
2161 
2180  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
2181 
2196  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
2197 
2212  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
2213 
2228  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
2229 
2250  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
2251 
2270  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
2271 
2290  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
2291 
2315  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
2316 
2333  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2334 
2351  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2352 
2369  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2370 
2384  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
2385 
2406  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
2407 
2425  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
2426 
2444  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert ) P6PURE;
2445 
2460  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert ) P6PURE;
2461 
2479  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob ) P6PURE;
2480 
2495  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob ) P6PURE;
2496 
2516  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
2517 
2534  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
2535 
2554  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
2555 
2570  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
2571 
2588  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
2589 
2606  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
2607 
2624  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
2625 
2641  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
2642 
2658  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
2659 };
2660 
2661 // {8B158122-6543-45c3-A84E-B274045BAC9C}
2662 #define IF_p6IKeystore2 {0x8b158122,0x6543,0x45c3,{0xa8,0x4e,0xb2,0x74,0x4,0x5b,0xac,0x9c}}
2663 
2673 #undef INTERFACE
2674 #define INTERFACE p6IKeystore3
2676 {
2695  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
2696 
2711  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
2712 
2730  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
2731 
2746  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
2747 
2765  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
2766 
2789  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
2790 
2810  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
2811 
2830  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
2831 
2846  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
2847 
2862  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
2863 
2878  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
2879 
2900  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
2901 
2920  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
2921 
2940  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
2941 
2965  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
2966 
2983  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2984 
3001  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3002 
3019  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3020 
3034  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
3035 
3057  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pUUID ) P6PURE;
3058 
3077  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pnewUUID ) P6PURE;
3096  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID *pUUID ) P6PURE;
3097 
3113  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert, P6UUID *pnewUUID ) P6PURE;
3114 
3133  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID *pUUID ) P6PURE;
3134 
3150  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob, P6UUID *pnewUUID ) P6PURE;
3151 
3171  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
3172 
3189  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
3190 
3209  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
3210 
3225  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
3226 
3243  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
3244 
3261  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
3262 
3279  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
3280 
3296  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
3297 
3313  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
3314 };
3315 
3316 /*{0FF257BE-43BD-41D2-7EC5-51621C8CC48D}*/
3317 #define IF_p6IKeystore3 {0x0FF257BE,0x43BD,0x41D2,{0x7E,0xC5,0x51,0x62,0x1C,0x8C,0xC4,0x8D}}
3318 
3329 #undef INTERFACE
3330 #define INTERFACE p6IKeystore4
3332 {
3351  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
3352 
3367  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
3368 
3386  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
3387 
3402  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
3403 
3421  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
3422 
3445  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
3446 
3466  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
3467 
3486  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
3487 
3502  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
3503 
3518  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
3519 
3534  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
3535 
3556  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
3557 
3576  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
3577 
3596  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
3597 
3621  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
3622 
3639  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3640 
3657  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3658 
3675  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3676 
3690  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
3691 
3713  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pUUID ) P6PURE;
3714 
3733  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pnewUUID ) P6PURE;
3752  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID *pUUID ) P6PURE;
3753 
3769  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert, P6UUID *pnewUUID ) P6PURE;
3770 
3789  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID *pUUID ) P6PURE;
3790 
3806  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob, P6UUID *pnewUUID ) P6PURE;
3807 
3827  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
3828 
3845  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
3846 
3865  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
3866 
3881  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
3882 
3899  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
3900 
3917  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
3918 
3935  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
3936 
3952  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
3953 
3969  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
3970 
3991  P6DECLCOMMETHOD(copyKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
3992 
4010  P6DECLCOMMETHOD(copyKeyByUUID)(P6THIS_ P6UUID* pExistingKey, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4011 
4032  P6DECLCOMMETHOD(copyBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4033 
4050  P6DECLCOMMETHOD(copyBlobByUUID)(P6THIS_ P6UUID* pExistingBlob, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4051 
4067  P6DECLCOMMETHOD(deleteNamespace)(P6THIS_ const P6WCHAR* pNamespace ) P6PURE;
4068 };
4069 
4070 /*{7DD7BC7F-6EC3-4e26-B8F4-1B1688644AC0}*/
4071 #define IF_p6IKeystore4 {0x7dd7bc7f,0x6ec3,0x4e26,{0xb8,0xf4,0x1b,0x16,0x88,0x64,0x4a,0xc0}}
4072 
4073 
4085 #undef INTERFACE
4086 #define INTERFACE p6IKeystore5
4088 {
4107  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
4108 
4123  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
4124 
4142  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
4143 
4158  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
4159 
4177  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
4178 
4201  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
4202 
4222  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
4223 
4242  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
4243 
4258  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
4259 
4274  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
4275 
4290  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
4291 
4312  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
4313 
4332  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
4333 
4352  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
4353 
4377  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
4378 
4395  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
4396 
4413  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
4414 
4431  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
4432 
4446  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
4447 
4469  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pUUID ) P6PURE;
4470 
4489  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pnewUUID ) P6PURE;
4490 
4509  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID *pUUID ) P6PURE;
4510 
4526  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert, P6UUID *pnewUUID ) P6PURE;
4527 
4546  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID *pUUID ) P6PURE;
4547 
4563  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob, P6UUID *pnewUUID ) P6PURE;
4564 
4584  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
4585 
4602  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
4603 
4622  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
4623 
4638  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
4639 
4656  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
4657 
4674  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
4675 
4692  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
4693 
4709  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
4710 
4726  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
4727 
4748  P6DECLCOMMETHOD(copyKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4749 
4767  P6DECLCOMMETHOD(copyKeyByUUID)(P6THIS_ P6UUID* pExistingKey, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4768 
4789  P6DECLCOMMETHOD(copyBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4790 
4807  P6DECLCOMMETHOD(copyBlobByUUID)(P6THIS_ P6UUID* pExistingBlob, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
4808 
4824  P6DECLCOMMETHOD(deleteNamespace)(P6THIS_ const P6WCHAR* pNamespace ) P6PURE;
4825 
4843  P6DECLCOMMETHOD(getKeyReference)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6KEYSTORE_KEYREF* pReference ) P6PURE;
4844 
4859  P6DECLCOMMETHOD(getKeyReferenceByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_KEYREF* pReference ) P6PURE;
4860 
4879  P6DECLCOMMETHOD(setKeyReference)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6KEYSTORE_KEYREF* pReference, P6UUID* pUUID ) P6PURE;
4880 
4897  P6DECLCOMMETHOD(deleteKeyReference)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
4898 
4918  P6DECLCOMMETHOD(replaceKeyReference)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6KEYSTORE_KEYREF* pReference, P6UUID *pUUID ) P6PURE;
4919 
4936  P6DECLCOMMETHOD(replaceKeyReferenceByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_KEYREF* pReference, P6UUID *pnewUUID ) P6PURE;
4937 };
4938 
4939 // {60B74180-2C12-4D08-BD9F-79E78B94A44C}
4940 #define IF_p6IKeystore5 {0x60b74180,0x2c12,0x4d08,{0xbd,0x9f,0x79,0xe7,0x8b,0x94,0xa4,0x4c}}
4941 
4942 
4950 #undef INTERFACE
4951 #define INTERFACE p6IKeystoreComplexQuery
4953 {
4971  P6DECLCOMMETHOD(enumByManyAttributes)(P6THIS_ P6KEYSTORE_ATTRIBUTE* pList, P6UINT32 listCount, p6IEnumKeystore** ppEnum ) P6PURE;
4972 
4973 };
4974 // {165C1E5E-340F-4d0a-B7F1-F2F52E9AF3C7}
4975 #define IF_p6IKeystoreComplexQuery {0x165c1e5e,0x340f,0x4d0a,{0xb7,0xf1,0xf2,0xf5,0x2e,0x9a,0xf3,0xc}}
4976 
4977 
4993 #undef INTERFACE
4994 #define INTERFACE p6IKeystoreSSL
4996 {
5071  P6DECLCOMMETHOD(importCredentials)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,p6ICryptoKey *pPrvKey,p6ICert *pCert,p6ICert *parChain,P6UINT32 cChain,P6UUID *pUUID) P6PURE;
5072 
5139  P6DECLCOMMETHOD(importCredentialsPKCS12)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszFilepath,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
5140 
5214  P6DECLCOMMETHOD(importCredentialsPEM)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszPrvKeyFile,const P6WCHAR *pszCertsFile,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
5215 
5232  P6DECLCOMMETHOD(importTrustedRootCert)(P6THIS_ p6ICert *pRootCert,P6UUID *puuidCert) P6PURE;
5233 
5254  P6DECLCOMMETHOD(importTrustedRootCertFromPEMFile)(P6THIS_ const P6WCHAR *pszRootCertFile,P6UUID *puuidCert) P6PURE;
5255 };
5256 
5257 // {CAFAF35E-F45D-4D4A-85D0-E323A999FC55}
5258 #define IF_p6IKeystoreSSL {0xCAFAF35E,0xF45D,0x4D4A,{0x85,0xD0,0xE3,0x23,0xA9,0x99,0xFC,0x55}}
5259 
5260 
5268 #undef INTERFACE
5269 #define INTERFACE p6IKeystoreSSL2
5271 {
5346  P6DECLCOMMETHOD(importCredentials)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,p6ICryptoKey *pPrvKey,p6ICert *pCert,p6ICert *parChain,P6UINT32 cChain,P6UUID *pUUID) P6PURE;
5347 
5414  P6DECLCOMMETHOD(importCredentialsPKCS12)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszFilepath,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
5415 
5489  P6DECLCOMMETHOD(importCredentialsPEM)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszPrvKeyFile,const P6WCHAR *pszCertsFile,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
5490 
5507  P6DECLCOMMETHOD(importTrustedRootCert)(P6THIS_ p6ICert *pRootCert,P6UUID *puuidCert) P6PURE;
5508 
5529  P6DECLCOMMETHOD(importTrustedRootCertFromPEMFile)(P6THIS_ const P6WCHAR *pszRootCertFile,const P6CHAR *pszPassPhrase,P6UUID *puuidCert) P6PURE;
5530 
5603  P6DECLCOMMETHOD(replaceCredentials)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,p6ICryptoKey *pPrvKey,p6ICert *pCert,p6ICert *parChain,P6UINT32 cChain,P6UUID *pUUID) P6PURE;
5604 
5671  P6DECLCOMMETHOD(replaceCredentialsPKCS12)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszFilepath,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
5672 
5747  P6DECLCOMMETHOD(replaceCredentialsPEM)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszPrvKeyFile,const P6WCHAR *pszCertsFile,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
5748 
5765  P6DECLCOMMETHOD(replaceTrustedRootCert)(P6THIS_ p6ICert *pRootCert,P6UUID *puuidCert) P6PURE;
5766 
5795  P6DECLCOMMETHOD(replaceTrustedRootCertFromPEMFile)(P6THIS_ const P6WCHAR *pszRootCertFile,const P6CHAR *pszPassPhrase,P6UUID *puuidCert) P6PURE;
5796 };
5797 
5798 /*{4550F136-49B3-6FA0-0B55-B797699F1539}*/
5799 #define IF_p6IKeystoreSSL2 {0x4550F136,0x49B3,0x6FA0,{0x0B,0x55,0xB7,0x97,0x69,0x9F,0x15,0x39}}
5800 
5801 
5802 
5807 #define P6_KEYSTORE_SERVICE_INTERFACE "p6r.com.p6IKeystore.Global"
5808 
5809 #ifdef __cplusplus
5810 } // extern "C"
5811 } // namespace
5812 #endif
5813 
5814 #endif
5815 
5816 
5817 
5818 
5819 
5820 
P6SIGNHMAC
Supported HMAC algorthms for signing:
Definition: p6sign.h:45
<div class="p6box"> This interface has been depricated in favor of p6IKeystore3.
Definition: p6keystore.h:689
Cryptography component definitions.
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1198
P6KEYSTORE_TYPE sourceType
Definition: p6keystore.h:120
This is an often used construct where an application needs to provide an unknown number of wide strin...
uint32_t P6UINT32
Definition: p6types.h:77
#define P6KSMAXATTRIBSTR
Definition: p6keystore.h:72
#define P6KSMAXLINKTYPE
Definition: p6keystore.h:69
#define P6DECLAREICOM
Definition: p6defs.h:191
P6UINT32 P6KEYSTOREFLAGS
P6KEYSTOREFLAGS.
Definition: p6keystore.h:37
#define P6PURE
Definition: p6defs.h:192
This interface allows the caller to find an existing key, certificate, or blob (e.g., password) by a namespace and name pair.
Definition: p6keystore.h:3331
This interface allows the user to enumerate keys or certificates based on different sets of meta data...
Definition: p6keystore.h:268
<div class="p6box"> This interface has been depricated in favor of p6IKeystore3.
Definition: p6keystore.h:2025
#define P6KSMAXNAME
Definition: p6keystore.h:68
P6CRYPTOKEYCLASS
Used to categorize keys:
Definition: p6cryptokey.h:52
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
char P6INT8
Definition: p6types.h:72
P6KEYSTORE_TYPE
Value indicates the type of data returned in a P6R::p6IEnumKeystore enumerator.
Definition: p6keystore.h:57
<div class="p6box"> This interface has been depricated in favor of p6IKeystoreSSL2.
Definition: p6keystore.h:4995
This interface allows the caller to find an existing key, certificate, or blob (e.g., password) by a namespace and name pair.
Definition: p6keystore.h:2675
P6CRYPTOCIPHER
Cipher Type.
Definition: p6crypto.h:112
P6CRYPTOKEYCLASS keyClass
Definition: p6keystore.h:143
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
#define P6KSMAXLOCATION
Definition: p6keystore.h:73
Interface definitions for symmetric key encryption.
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
#define P6KSMAXATTRIBNAME
Definition: p6keystore.h:71
P6KEYSTORE_TYPE type
Definition: p6keystore.h:92
The p6IEnumKeystore returns this type in order to distinguish between the keys, certs, blobs, and links that can all be stored in the same keystore.
Definition: p6keystore.h:90
#define P6KSMAXLABEL
Definition: p6keystore.h:74
This interface is a general purpose string enumerator.
Definition: p6enumwstr.h:29
Binary string.
Definition: p6types.h:185
P6CRYPTOKEYSTATE
The current state of the key as defined in: NIST DRAFT Special Publication 800-130, A Framework for Designing Cryptographic Key Management Systems, June 15, 2010.
Definition: p6cryptokey.h:759
Interface definition for X509 V3 Certificates.
it may not contain all the symbols used by this software If you run into undefined symbol please let us know and we can provide you a build that will be compatible with your specific value
Definition: readme.txt:85
A universally unique indentifier (UUID).
Definition: p6types.h:162
This enumerator allows the caller to get a list of all defined entries that exist in the openned keys...
Definition: p6keystore.h:187
#define P6KSMAXLINKMETA
Definition: p6keystore.h:70
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:111
This interface allows the user to enumerate keys or certificates based on different sets of meta data...
Definition: p6keystore.h:1624
Provide SSL related helper methods to make it easier to store SSL client and server certificates in t...
Definition: p6keystore.h:5270
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
This interface provides symmetric key encryption/decryption using AES, Blowfish, CAST5 DES and varian...
Definition: p6symmetric.h:62
#define P6KSMAXNAMESPACE
Definition: p6keystore.h:67
P6INT64 P6TIME
The wallclock time represented as the number of microseconds since midnight January 1 1970 UTC...
Definition: p6types.h:259
A key, certificate, and blob can have any number of associated attributes.
Definition: p6keystore.h:167
This interface allows the caller to find an existing key, certificate, or blob (e.g., password) by a namespace and name pair.
Definition: p6keystore.h:4087
The p6IKeystore interface uses the following definition for link retrival.
Definition: p6keystore.h:118
#define P6THIS_
Definition: p6defs.h:193
This enumerator allows the caller to get a list of all defined attributes associated with a specific ...
Definition: p6keystore.h:227
The purpose of key reference is to represent a remote key and potentially associate to it a set of at...
Definition: p6keystore.h:141
Interface definition for the cryptographic signature generation and verification. ...
P6KEYSTORE_TYPE targetType
Definition: p6keystore.h:121
This interface allows the user to build complex queries of multiple attributes at the same time to pe...
Definition: p6keystore.h:4952
int32_t P6INT32
Definition: p6types.h:76
This interface allows the user to enumerate keys or certificates based on different sets of meta data...
Definition: p6keystore.h:1252
#define P6THIS
Definition: p6defs.h:194
P6DIGESTS
P6DIGESTS.
Definition: p6digest.h:43
char P6CHAR
Narrow character type.
Definition: p6types.h:105
This interface is used to create/open/manage the keystore.
Definition: p6keystore.h:565
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188
P6R Cryptographic key interface definitions.