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 
55 typedef enum {
56  ENTRY_NULL = 0x00,
57  ENTRY_KEY = 0x01,
58  ENTRY_CERT = 0x02,
59  ENTRY_BLOB = 0x03,
60  ENTRY_LINK = 0x04
62 
63 
64 #define P6KSMAXNAMESPACE 500
65 #define P6KSMAXNAME 500
66 #define P6KSMAXLINKTYPE 300
67 #define P6KSMAXLINKMETA 300
68 #define P6KSMAXATTRIBNAME 300
69 #define P6KSMAXATTRIBSTR 500
70 
85 typedef struct
86 {
88  P6WCHAR szNamespace[ P6KSMAXNAMESPACE ];
89  P6WCHAR szName[ P6KSMAXNAME ];
92 
93 
113 typedef struct
114 {
120  P6WCHAR szMetaData[ P6KSMAXLINKMETA ];
122 
123 
142 typedef struct
143 {
146  union {
147  P6WCHAR szValueStr[ P6KSMAXATTRIBSTR ];
150  } value;
151 } P6KEYSTORE_ATTRIBUTE;
152 
153 
160 #undef INTERFACE
161 #define INTERFACE p6IEnumKeystore
163 {
179  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements, P6KEYSTORE_ENTRY* parElements, P6UINT32* pcReturned ) P6PURE;
180 
189  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
190 };
191 // {2FEA7C69-C0CF-4a80-842F-01974B79EBDA}
192 #define IF_p6IEnumKeystore {0x2fea7c69,0xc0cf,0x4a80,{0x84,0x2f,0x1,0x97,0x4b,0x79,0xeb,0xda}}
193 
194 
200 #undef INTERFACE
201 #define INTERFACE p6IEnumKeystoreAttrib
203 {
219  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements, P6KEYSTORE_ATTRIBUTE* parElements, P6UINT32* pcReturned ) P6PURE;
220 
229  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
230 };
231 // {2A52D3F3-F42C-4a0b-AE85-B0AACC82B4BF}
232 #define IF_p6IEnumKeystoreAttrib {0x2a52d3f3,0xf42c,0x4a0b,{0xae,0x85,0xb0,0xaa,0xcc,0x82,0xb4,0xbf}}
233 
234 
241 #undef INTERFACE
242 #define INTERFACE p6IKeystoreQuery
244 {
265  P6DECLCOMMETHOD(enumKeyBySize)(P6THIS_ P6UINT32 size, P6INT8 comparator, p6IEnumKeystore** ppEnum ) P6PURE;
266 
282  P6DECLCOMMETHOD(enumKeyByState)(P6THIS_ P6CRYPTOKEYSTATE state, p6IEnumKeystore** ppEnum ) P6PURE;
283 
299  P6DECLCOMMETHOD(enumKeyByCipher)(P6THIS_ P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
300 
316  P6DECLCOMMETHOD(enumKeyByClass)(P6THIS_ P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
317 
333  P6DECLCOMMETHOD(enumKeyByExpired)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
334 
350  P6DECLCOMMETHOD(enumKeyByRenewal)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
351 
372  P6DECLCOMMETHOD(enumKeyBySizeByCipher)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
373 
394  P6DECLCOMMETHOD(enumKeyBySizeByClass)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
395 
415  P6DECLCOMMETHOD(enumKeyLikeCipher)(P6THIS_ const P6WCHAR* pCipher, p6IEnumKeystore** ppEnum ) P6PURE;
416 
435  P6DECLCOMMETHOD(enumKeyLikeDescriptiveLabel)(P6THIS_ const P6WCHAR* pDescription, p6IEnumKeystore** ppEnum ) P6PURE;
436 
454  P6DECLCOMMETHOD(enumKeyLikeUse)(P6THIS_ const P6WCHAR* pUse, p6IEnumKeystore** ppEnum ) P6PURE;
455 
470  P6DECLCOMMETHOD(enumCertBySubject)(P6THIS_ const P6WCHAR* pSubject, p6IEnumKeystore** ppEnum ) P6PURE;
471 
487  P6DECLCOMMETHOD(enumLinkBySource)(P6THIS_ P6UUID* pSource, p6IEnumKeystore** ppEnum ) P6PURE;
488 
504  P6DECLCOMMETHOD(enumLinkByTarget)(P6THIS_ P6UUID* pTarget, p6IEnumKeystore** ppEnum ) P6PURE;
505 
523  P6DECLCOMMETHOD(enumLinkLikeType)(P6THIS_ const P6WCHAR* pType, p6IEnumKeystore** ppEnum ) P6PURE;
524 };
525 // {B3541C2E-703E-416d-B0CD-3035A7B76098}
526 #define IF_p6IKeystoreQuery {0xb3541c2e,0x703e,0x416d,{0xb0,0xcd,0x30,0x35,0xa7,0xb7,0x60,0x98}}
527 
538 #undef INTERFACE
539 #define INTERFACE p6IKeystoreInit
541 {
563  P6DECLCOMMETHOD(initialize)(P6THIS_ P6KEYSTOREFLAGS flags,
564  p6ISymmetricCrypto* pEncryptKey,
565  P6SIGNHMAC signAlg,
566  p6ICryptoKey* pSignKey ) P6PURE;
567 
595  P6DECLCOMMETHOD(openSigned)(P6THIS_ const P6WCHAR* pPath, const P6WCHAR* pKeystoreName ) P6PURE;
596 
617  P6DECLCOMMETHOD(open)(P6THIS_ const P6WCHAR* pURI ) P6PURE;
618 
628  P6DECLCOMMETHOD(close)(P6THIS) P6PURE;
629 
640  P6DECLCOMMETHOD(resetStore)(P6THIS) P6PURE;
641 };
642 
643 /*{CE121684-4E87-63FD-BFA6-AF86BE5C6DA5}*/
644 #define IF_p6IKeystoreInit {0xCE121684,0x4E87,0x63FD,{0xBF,0xA6,0xAF,0x86,0xBE,0x5C,0x6D,0xA5}}
645 
662 #undef INTERFACE
663 #define INTERFACE p6IKeystore
665 {
684  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
685 
700  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
701 
719  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
720 
735  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
736 
754  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
755 
778  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
779 
799  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
800 
819  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
820 
835  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
836 
851  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
852 
867  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
868 
889  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
890 
909  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
910 
929  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
930 
954  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
955 
972  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
973 
990  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
991 
1008  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
1009 
1023  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
1024 
1045  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
1046 
1064  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
1065 
1083  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert ) P6PURE;
1084 
1099  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert ) P6PURE;
1100 
1118  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob ) P6PURE;
1119 
1134  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob ) P6PURE;
1135 
1155  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
1156 
1173  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
1174 
1193  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
1194 
1209  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
1210 };
1211 
1212 // {6ECB5D85-2751-49ad-99DA-2AA173FC2737}
1213 #define IF_p6IKeystore {0x6ecb5d85,0x2751,0x49ad,{0x99,0xda,0x2a,0xa1,0x73,0xfc,0x27,0x37}}
1214 
1215 // {C65CDFF1-4E4A-4bba-9E38-1273C8895E0F}
1216 #define COMP_p6Keystore {0xc65cdff1,0x4e4a,0x4bba,{0x9e,0x38,0x12,0x73,0xc8,0x89,0x5e,0xf}}
1217 
1224 #undef INTERFACE
1225 #define INTERFACE p6IKeystoreQuery2
1227 {
1248  P6DECLCOMMETHOD(enumKeyBySize)(P6THIS_ P6UINT32 size, P6INT8 comparator, p6IEnumKeystore** ppEnum ) P6PURE;
1249 
1265  P6DECLCOMMETHOD(enumKeyByState)(P6THIS_ P6CRYPTOKEYSTATE state, p6IEnumKeystore** ppEnum ) P6PURE;
1266 
1282  P6DECLCOMMETHOD(enumKeyByCipher)(P6THIS_ P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
1283 
1299  P6DECLCOMMETHOD(enumKeyByClass)(P6THIS_ P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
1300 
1316  P6DECLCOMMETHOD(enumKeyByExpired)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
1317 
1333  P6DECLCOMMETHOD(enumKeyByRenewal)(P6THIS_ P6TIME expired, p6IEnumKeystore** ppEnum ) P6PURE;
1334 
1355  P6DECLCOMMETHOD(enumKeyBySizeByCipher)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOCIPHER cipher, p6IEnumKeystore** ppEnum ) P6PURE;
1356 
1377  P6DECLCOMMETHOD(enumKeyBySizeByClass)(P6THIS_ P6UINT32 size, P6INT8 comparator, P6CRYPTOKEYCLASS keyClass, p6IEnumKeystore** ppEnum ) P6PURE;
1378 
1398  P6DECLCOMMETHOD(enumKeyLikeCipher)(P6THIS_ const P6WCHAR* pCipher, p6IEnumKeystore** ppEnum ) P6PURE;
1399 
1418  P6DECLCOMMETHOD(enumKeyLikeDescriptiveLabel)(P6THIS_ const P6WCHAR* pDescription, p6IEnumKeystore** ppEnum ) P6PURE;
1419 
1437  P6DECLCOMMETHOD(enumKeyLikeUse)(P6THIS_ const P6WCHAR* pUse, p6IEnumKeystore** ppEnum ) P6PURE;
1438 
1453  P6DECLCOMMETHOD(enumCertBySubject)(P6THIS_ const P6WCHAR* pSubject, p6IEnumKeystore** ppEnum ) P6PURE;
1454 
1470  P6DECLCOMMETHOD(enumLinkBySource)(P6THIS_ P6UUID* pSource, p6IEnumKeystore** ppEnum ) P6PURE;
1471 
1487  P6DECLCOMMETHOD(enumLinkByTarget)(P6THIS_ P6UUID* pTarget, p6IEnumKeystore** ppEnum ) P6PURE;
1488 
1506  P6DECLCOMMETHOD(enumLinkLikeType)(P6THIS_ const P6WCHAR* pType, p6IEnumKeystore** ppEnum ) P6PURE;
1507 
1524  P6DECLCOMMETHOD(enumByAttributeName)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, p6IEnumKeystore** ppEnum ) P6PURE;
1525 
1543  P6DECLCOMMETHOD(enumByAttributeString)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, const P6WCHAR* pValueStr, p6IEnumKeystore** ppEnum ) P6PURE;
1544 
1563  P6DECLCOMMETHOD(enumByAttributeInteger)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, P6INT32 valueInt, P6INT8 comparitor, p6IEnumKeystore** ppEnum ) P6PURE;
1564 
1583  P6DECLCOMMETHOD(enumByAttributeTime)(P6THIS_ P6KEYSTORE_TYPE entryType, const P6WCHAR* pName, P6TIME timeStamp, P6INT8 comparitor, p6IEnumKeystore** ppEnum ) P6PURE;
1584 };
1585 // {319939EA-C0F5-4ad1-B401-D1EF09AA182C}
1586 #define IF_p6IKeystoreQuery2 {0x319939ea,0xc0f5,0x4ad1,{0xb4,0x1,0xd1,0xef,0x9,0xaa,0x18,0x2c}}
1587 
1588 
1606 #undef INTERFACE
1607 #define INTERFACE p6IKeystore2
1609 {
1628  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
1629 
1644  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
1645 
1663  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
1664 
1679  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
1680 
1698  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
1699 
1722  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
1723 
1743  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
1744 
1763  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
1764 
1779  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
1780 
1795  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
1796 
1811  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
1812 
1833  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
1834 
1853  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
1854 
1873  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
1874 
1898  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
1899 
1916  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
1917 
1934  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
1935 
1952  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
1953 
1967  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
1968 
1989  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
1990 
2008  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain ) P6PURE;
2009 
2027  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert ) P6PURE;
2028 
2043  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert ) P6PURE;
2044 
2062  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob ) P6PURE;
2063 
2078  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob ) P6PURE;
2079 
2099  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
2100 
2117  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
2118 
2137  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
2138 
2153  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
2154 
2171  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
2172 
2189  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
2190 
2207  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
2208 
2224  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
2225 
2241  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
2242 };
2243 
2244 // {8B158122-6543-45c3-A84E-B274045BAC9C}
2245 #define IF_p6IKeystore2 {0x8b158122,0x6543,0x45c3,{0xa8,0x4e,0xb2,0x74,0x4,0x5b,0xac,0x9c}}
2246 
2256 #undef INTERFACE
2257 #define INTERFACE p6IKeystore3
2259 {
2278  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
2279 
2294  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
2295 
2313  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
2314 
2329  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
2330 
2348  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
2349 
2372  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
2373 
2393  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
2394 
2413  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
2414 
2429  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
2430 
2445  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
2446 
2461  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
2462 
2483  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
2484 
2503  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
2504 
2523  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
2524 
2548  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
2549 
2566  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2567 
2584  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2585 
2602  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
2603 
2617  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
2618 
2640  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pUUID ) P6PURE;
2641 
2660  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pnewUUID ) P6PURE;
2679  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID *pUUID ) P6PURE;
2680 
2696  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert, P6UUID *pnewUUID ) P6PURE;
2697 
2716  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID *pUUID ) P6PURE;
2717 
2733  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob, P6UUID *pnewUUID ) P6PURE;
2734 
2754  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
2755 
2772  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
2773 
2792  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
2793 
2808  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
2809 
2826  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
2827 
2844  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
2845 
2862  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
2863 
2879  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
2880 
2896  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
2897 };
2898 
2899 /*{0FF257BE-43BD-41D2-7EC5-51621C8CC48D}*/
2900 #define IF_p6IKeystore3 {0x0FF257BE,0x43BD,0x41D2,{0x7E,0xC5,0x51,0x62,0x1C,0x8C,0xC4,0x8D}}
2901 
2912 #undef INTERFACE
2913 #define INTERFACE p6IKeystore4
2915 {
2934  P6DECLCOMMETHOD(getKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey** pKey ) P6PURE;
2935 
2950  P6DECLCOMMETHOD(getKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey** pKey ) P6PURE;
2951 
2969  P6DECLCOMMETHOD(getCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCert ) P6PURE;
2970 
2985  P6DECLCOMMETHOD(getCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCert ) P6PURE;
2986 
3004  P6DECLCOMMETHOD(getCertificateByFingerprint)(P6THIS_ P6WCHAR* pFingerprint, P6DIGESTS digest, p6ICert** pCert ) P6PURE;
3005 
3028  P6DECLCOMMETHOD(getCertificateChain)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
3029 
3049  P6DECLCOMMETHOD(getCertificateChainByUUID)(P6THIS_ P6UUID* pUUID, p6ICert** pCertChain, P6UINT32 numChain, P6UINT32* pNumWritten ) P6PURE;
3050 
3069  P6DECLCOMMETHOD(getBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR* pBlob ) P6PURE;
3070 
3085  P6DECLCOMMETHOD(getBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR* pBlob ) P6PURE;
3086 
3101  P6DECLCOMMETHOD(getLinkByUUID)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_LINK* pLink ) P6PURE;
3102 
3117  P6DECLCOMMETHOD(getType)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ENTRY* pType ) P6PURE;
3118 
3139  P6DECLCOMMETHOD(setKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID* pUUID ) P6PURE;
3140 
3159  P6DECLCOMMETHOD(setCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID* pUUID ) P6PURE;
3160 
3179  P6DECLCOMMETHOD(setBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID* pUUID ) P6PURE;
3180 
3204  P6DECLCOMMETHOD(createLink)(P6THIS_ P6UUID* pSourceUUID, P6UUID* pTargetUUID, const P6WCHAR* pLinkType, const P6WCHAR* pMetaData, P6UUID* pUUID ) P6PURE;
3205 
3222  P6DECLCOMMETHOD(deleteKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3223 
3240  P6DECLCOMMETHOD(deleteCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3241 
3258  P6DECLCOMMETHOD(deleteBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName ) P6PURE;
3259 
3273  P6DECLCOMMETHOD(deleteItem)(P6THIS_ P6UUID* pUUID ) P6PURE;
3274 
3296  P6DECLCOMMETHOD(replaceKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pUUID ) P6PURE;
3297 
3316  P6DECLCOMMETHOD(replaceKeyByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey, p6ICert** pCertChain, P6UINT32 numChain, P6UUID *pnewUUID ) P6PURE;
3335  P6DECLCOMMETHOD(replaceCertificate)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICert* pCert, P6UUID *pUUID ) P6PURE;
3336 
3352  P6DECLCOMMETHOD(replaceCertificateByUUID)(P6THIS_ P6UUID* pUUID, p6ICert* pCert, P6UUID *pnewUUID ) P6PURE;
3353 
3372  P6DECLCOMMETHOD(replaceBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, P6BSTR blob, P6UUID *pUUID ) P6PURE;
3373 
3389  P6DECLCOMMETHOD(replaceBlobByUUID)(P6THIS_ P6UUID* pUUID, P6BSTR blob, P6UUID *pnewUUID ) P6PURE;
3390 
3410  P6DECLCOMMETHOD(updateKeyMetaData)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, p6ICryptoKey* pKey ) P6PURE;
3411 
3428  P6DECLCOMMETHOD(updateKeyMetaDataByUUID)(P6THIS_ P6UUID* pUUID, p6ICryptoKey* pKey ) P6PURE;
3429 
3448  P6DECLCOMMETHOD(enumEntries)(P6THIS_ P6KEYSTORE_TYPE byType, const P6WCHAR* pNamespace, p6IEnumKeystore** ppEnum ) P6PURE;
3449 
3464  P6DECLCOMMETHOD(enumNamespaces)(P6THIS_ p6IEnumWStr** ppEnum ) P6PURE;
3465 
3482  P6DECLCOMMETHOD(addAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE newAttrib ) P6PURE;
3483 
3500  P6DECLCOMMETHOD(updateAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE changeAttrib ) P6PURE;
3501 
3518  P6DECLCOMMETHOD(getAttribute)(P6THIS_ P6UUID* pUUID, P6KEYSTORE_ATTRIBUTE* pAttrib ) P6PURE;
3519 
3535  P6DECLCOMMETHOD(deleteAttribute)(P6THIS_ P6UUID* pUUID, const P6WCHAR* pName ) P6PURE;
3536 
3552  P6DECLCOMMETHOD(enumAttributes)(P6THIS_ P6UUID* pUUID, p6IEnumKeystoreAttrib** ppEnum ) P6PURE;
3553 
3574  P6DECLCOMMETHOD(copyKey)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
3575 
3593  P6DECLCOMMETHOD(copyKeyByUUID)(P6THIS_ P6UUID* pExistingKey, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
3594 
3615  P6DECLCOMMETHOD(copyBlob)(P6THIS_ const P6WCHAR* pNamespace, const P6WCHAR* pName, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
3616 
3633  P6DECLCOMMETHOD(copyBlobByUUID)(P6THIS_ P6UUID* pExistingBlob, const P6WCHAR* pCopyName, P6UUID* pCopy ) P6PURE;
3634 
3650  P6DECLCOMMETHOD(deleteNamespace)(P6THIS_ const P6WCHAR* pNamespace ) P6PURE;
3651 };
3652 
3653 /*{7DD7BC7F-6EC3-4e26-B8F4-1B1688644AC0}*/
3654 #define IF_p6IKeystore4 {0x7dd7bc7f,0x6ec3,0x4e26,{0xb8,0xf4,0x1b,0x16,0x88,0x64,0x4a,0xc0}}
3655 
3663 #undef INTERFACE
3664 #define INTERFACE p6IKeystoreComplexQuery
3666 {
3684  P6DECLCOMMETHOD(enumByManyAttributes)(P6THIS_ P6KEYSTORE_ATTRIBUTE* pList, P6UINT32 listCount, p6IEnumKeystore** ppEnum ) P6PURE;
3685 
3686 };
3687 // {165C1E5E-340F-4d0a-B7F1-F2F52E9AF3C7}
3688 #define IF_p6IKeystoreComplexQuery {0x165c1e5e,0x340f,0x4d0a,{0xb7,0xf1,0xf2,0xf5,0x2e,0x9a,0xf3,0xc}}
3689 
3705 #undef INTERFACE
3706 #define INTERFACE p6IKeystoreSSL
3708 {
3783  P6DECLCOMMETHOD(importCredentials)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,p6ICryptoKey *pPrvKey,p6ICert *pCert,p6ICert *parChain,P6UINT32 cChain,P6UUID *pUUID) P6PURE;
3784 
3851  P6DECLCOMMETHOD(importCredentialsPKCS12)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszFilepath,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
3852 
3926  P6DECLCOMMETHOD(importCredentialsPEM)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszPrvKeyFile,const P6WCHAR *pszCertsFile,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
3927 
3944  P6DECLCOMMETHOD(importTrustedRootCert)(P6THIS_ p6ICert *pRootCert,P6UUID *puuidCert) P6PURE;
3945 
3966  P6DECLCOMMETHOD(importTrustedRootCertFromPEMFile)(P6THIS_ const P6WCHAR *pszRootCertFile,P6UUID *puuidCert) P6PURE;
3967 };
3968 
3969 // {CAFAF35E-F45D-4D4A-85D0-E323A999FC55}
3970 #define IF_p6IKeystoreSSL {0xCAFAF35E,0xF45D,0x4D4A,{0x85,0xD0,0xE3,0x23,0xA9,0x99,0xFC,0x55}}
3971 
3972 
3980 #undef INTERFACE
3981 #define INTERFACE p6IKeystoreSSL2
3983 {
4058  P6DECLCOMMETHOD(importCredentials)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,p6ICryptoKey *pPrvKey,p6ICert *pCert,p6ICert *parChain,P6UINT32 cChain,P6UUID *pUUID) P6PURE;
4059 
4126  P6DECLCOMMETHOD(importCredentialsPKCS12)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszFilepath,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
4127 
4201  P6DECLCOMMETHOD(importCredentialsPEM)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszPrvKeyFile,const P6WCHAR *pszCertsFile,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
4202 
4219  P6DECLCOMMETHOD(importTrustedRootCert)(P6THIS_ p6ICert *pRootCert,P6UUID *puuidCert) P6PURE;
4220 
4241  P6DECLCOMMETHOD(importTrustedRootCertFromPEMFile)(P6THIS_ const P6WCHAR *pszRootCertFile,const P6CHAR *pszPassPhrase,P6UUID *puuidCert) P6PURE;
4242 
4315  P6DECLCOMMETHOD(replaceCredentials)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,p6ICryptoKey *pPrvKey,p6ICert *pCert,p6ICert *parChain,P6UINT32 cChain,P6UUID *pUUID) P6PURE;
4316 
4383  P6DECLCOMMETHOD(replaceCredentialsPKCS12)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszFilepath,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
4384 
4459  P6DECLCOMMETHOD(replaceCredentialsPEM)(P6THIS_ P6BOOL bClient,const P6WCHAR *pszID,const P6WCHAR *pszPrvKeyFile,const P6WCHAR *pszCertsFile,const P6CHAR *pszPassPhrase,P6UUID *pUUID) P6PURE;
4460 
4477  P6DECLCOMMETHOD(replaceTrustedRootCert)(P6THIS_ p6ICert *pRootCert,P6UUID *puuidCert) P6PURE;
4478 
4507  P6DECLCOMMETHOD(replaceTrustedRootCertFromPEMFile)(P6THIS_ const P6WCHAR *pszRootCertFile,const P6CHAR *pszPassPhrase,P6UUID *puuidCert) P6PURE;
4508 };
4509 
4510 /*{4550F136-49B3-6FA0-0B55-B797699F1539}*/
4511 #define IF_p6IKeystoreSSL2 {0x4550F136,0x49B3,0x6FA0,{0x0B,0x55,0xB7,0x97,0x69,0x9F,0x15,0x39}}
4512 
4513 
4514 
4519 #define P6_KEYSTORE_SERVICE_INTERFACE "p6r.com.p6IKeystore.Global"
4520 
4521 #ifdef __cplusplus
4522 } // extern "C"
4523 } // namespace
4524 #endif
4525 
4526 #endif
4527 
4528 
4529 
4530 
4531 
4532 
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:664
Cryptography component definitions.
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1198
P6KEYSTORE_TYPE sourceType
Definition: p6keystore.h:115
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:69
#define P6KSMAXLINKTYPE
Definition: p6keystore.h:66
#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:2914
This interface allows the user to enumerate keys or certificates based on different sets of meta data...
Definition: p6keystore.h:243
<div class="p6box"> This interface has been depricated in favor of p6IKeystore3.
Definition: p6keystore.h:1608
#define P6KSMAXNAME
Definition: p6keystore.h:65
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:55
<div class="p6box"> This interface has been depricated in favor of p6IKeystoreSSL2.
Definition: p6keystore.h:3707
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:2258
P6CRYPTOCIPHER
Cipher Type.
Definition: p6crypto.h:112
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
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:68
P6KEYSTORE_TYPE type
Definition: p6keystore.h:87
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:85
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.
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:162
#define P6KSMAXLINKMETA
Definition: p6keystore.h:67
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:111
Provide SSL related helper methods to make it easier to store SSL client and server certificates in t...
Definition: p6keystore.h:3982
#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:64
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:142
The p6IKeystore interface uses the following definition for link retrival.
Definition: p6keystore.h:113
#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:202
Interface definition for the cryptographic signature generation and verification. ...
P6KEYSTORE_TYPE targetType
Definition: p6keystore.h:116
This interface allows the user to build complex queries of multiple attributes at the same time to pe...
Definition: p6keystore.h:3665
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:1226
#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:540
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188
P6R Cryptographic key interface definitions.