Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6cryptokey.h
Go to the documentation of this file.
1 
13 #ifndef P6CRYPTOKEY_H__
14 #define P6CRYPTOKEY_H__ 1
15 
16 #include "p6random.h"
17 #include "p6crypto.h"
18 
19 
20 #ifdef __cplusplus
21 namespace P6R {
22 extern "C" {
23 #endif
24 
35 static const P6CRYPTOKEYFLAGS P6CKF_NONE = 0x00000000;
36 static const P6CRYPTOKEYFLAGS P6CKF_FORCENEWIV = 0x00000001;
37 
49 typedef enum {
55 
56 
74 typedef enum {
82 
83 
89 #undef INTERFACE
90 #define INTERFACE p6ICryptoKeyInit
92 {
107  P6DECLCOMMETHOD(initialize)(P6THIS_ P6CRYPTOKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
108 
126  P6DECLCOMMETHOD(loadKey)(P6THIS_ const P6WCHAR* pszFilename ) P6PURE;
127 
145  P6DECLCOMMETHOD(loadKeyFromBuffer)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer ) P6PURE;
146 
163  P6DECLCOMMETHOD(loadRawSymetricKey)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
164 
182  P6DECLCOMMETHOD(loadPKCS8Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
183 
201  P6DECLCOMMETHOD(loadPublicPKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
202 
220  P6DECLCOMMETHOD(loadPrivatePKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
221 
244  P6DECLCOMMETHOD(loadRawPublicDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
245  const P6UCHAR* pQ, P6UINT32 qLength,
246  const P6UCHAR* pG, P6UINT32 gLength,
247  const P6UCHAR* pY, P6UINT32 yLength ) P6PURE;
248 
271  P6DECLCOMMETHOD(loadRawPrivateDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
272  const P6UCHAR* pQ, P6UINT32 qLength,
273  const P6UCHAR* pG, P6UINT32 gLength,
274  const P6UCHAR* pX, P6UINT32 xLength ) P6PURE;
275 
294  P6DECLCOMMETHOD(loadRawPublicRSAKey)(P6THIS_ const P6UCHAR* pE, P6UINT32 eLength, const P6UCHAR* pN, P6UINT32 nLength ) P6PURE;
295 
317  P6DECLCOMMETHOD(loadRawPublicRSAKey2)(P6THIS_ const P6UCHAR* pE, P6UINT32 eLength, const P6UCHAR* pN, P6UINT32 nLength ) P6PURE;
318 
349  P6DECLCOMMETHOD(loadRawPrivateRSAKey)(P6THIS_ const P6UCHAR* pN, P6UINT32 nLength,
350  const P6UCHAR* pD, P6UINT32 dLength,
351  const P6UCHAR* pE, P6UINT32 eLength,
352  const P6UCHAR* pP, P6UINT32 pLength,
353  const P6UCHAR* pQ, P6UINT32 qLength,
354  const P6UCHAR* pPrimeExpP, P6UINT32 epLength,
355  const P6UCHAR* pPrimeExpQ, P6UINT32 eqLength,
356  const P6UCHAR* pCRT, P6UINT32 cLength ) P6PURE;
357 };
358 
359 // {7AAB1F32-075B-4B8D-B0E6-E4CE822882B7}
360 #define IF_p6ICryptoKeyInit {0x7AAB1F32,0x075B,0x4B8D,{0xB0,0xE6,0xE4,0xCE,0x82,0x28,0x82,0xB7}}
361 
362 
368 #undef INTERFACE
369 #define INTERFACE p6ICryptoKeyInit2
371 {
386  P6DECLCOMMETHOD(initialize)(P6THIS_ P6CRYPTOKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
387 
405  P6DECLCOMMETHOD(loadKey)(P6THIS_ const P6WCHAR* pszFilename ) P6PURE;
406 
424  P6DECLCOMMETHOD(loadKeyFromBuffer)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer ) P6PURE;
425 
442  P6DECLCOMMETHOD(loadRawSymetricKey)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
443 
461  P6DECLCOMMETHOD(loadPKCS8Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
462 
480  P6DECLCOMMETHOD(loadPublicPKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
481 
499  P6DECLCOMMETHOD(loadPrivatePKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
500 
523  P6DECLCOMMETHOD(loadRawPublicDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
524  const P6UCHAR* pQ, P6UINT32 qLength,
525  const P6UCHAR* pG, P6UINT32 gLength,
526  const P6UCHAR* pY, P6UINT32 yLength ) P6PURE;
527 
550  P6DECLCOMMETHOD(loadRawPrivateDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
551  const P6UCHAR* pQ, P6UINT32 qLength,
552  const P6UCHAR* pG, P6UINT32 gLength,
553  const P6UCHAR* pX, P6UINT32 xLength ) P6PURE;
554 
573  P6DECLCOMMETHOD(loadRawPublicRSAKey)(P6THIS_ const P6UCHAR* pE, P6UINT32 eLength, const P6UCHAR* pN, P6UINT32 nLength ) P6PURE;
574 
605  P6DECLCOMMETHOD(loadRawPrivateRSAKey)(P6THIS_ const P6UCHAR* pN, P6UINT32 nLength,
606  const P6UCHAR* pD, P6UINT32 dLength,
607  const P6UCHAR* pE, P6UINT32 eLength,
608  const P6UCHAR* pP, P6UINT32 pLength,
609  const P6UCHAR* pQ, P6UINT32 qLength,
610  const P6UCHAR* pPrimeExpP, P6UINT32 epLength,
611  const P6UCHAR* pPrimeExpQ, P6UINT32 eqLength,
612  const P6UCHAR* pCRT, P6UINT32 cLength ) P6PURE;
613 
632  P6DECLCOMMETHOD(loadRawPublicECKey)(P6THIS_ P6ECCURVE curveId, const P6UCHAR* pQ, P6UINT32 qLength ) P6PURE;
633 
652  P6DECLCOMMETHOD(loadRawPrivateECKey)(P6THIS_ P6ECCURVE curveId, const P6UCHAR* pD, P6UINT32 dLength ) P6PURE;
653 
669  P6DECLCOMMETHOD(loadASN1PrivateECKey)(P6THIS_ P6BSTR* pASN1 ) P6PURE;
670 };
671 
672 // {D10AAB8D-5315-4e13-8644-09E27A1985B8}
673 #define IF_p6ICryptoKeyInit2 {0xd10aab8d,0x5315,0x4e13,{0x86,0x44,0x9,0xe2,0x7a,0x19,0x85,0xb8}}
674 
681 #undef INTERFACE
682 #define INTERFACE p6ICryptoKeyInitPEM
684 {
699  P6DECLCOMMETHOD(initialize)(P6THIS_ P6CRYPTOKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
700 
717  P6DECLCOMMETHOD(loadPEMPrivateRSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
718  P6DECLCOMMETHOD(loadPEMPrivateRSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
719  P6DECLCOMMETHOD(loadPEMPublicRSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
720  P6DECLCOMMETHOD(loadPEMPublicRSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
721  P6DECLCOMMETHOD(loadPEMPrivateDSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
722  P6DECLCOMMETHOD(loadPEMPrivateDSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
723  P6DECLCOMMETHOD(loadPEMPublicDSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
724  P6DECLCOMMETHOD(loadPEMPublicDSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
725  P6DECLCOMMETHOD(loadPEMPrivateECKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
726  P6DECLCOMMETHOD(loadPEMPrivateECKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
727  P6DECLCOMMETHOD(loadPEMPublicECKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
728  P6DECLCOMMETHOD(loadPEMPublicECKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
729 };
730 
731 /*{2E46F137-4D90-0076-F081-C6AA0CA16A6F}*/
732 #define IF_p6ICryptoKeyInitPEM {0x2E46F137,0x4D90,0x0076,{0xF0,0x81,0xC6,0xAA,0x0C,0xA1,0x6A,0x6F}}
733 
756 typedef enum {
767 
768 
774 #undef INTERFACE
775 #define INTERFACE p6ICryptoKeyGetMeta
777 {
796  P6DECLCOMMETHOD(getDescriptiveLabel)(P6THIS_ P6WCHAR* pLabel, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
797 
815  P6DECLCOMMETHOD(getUse)(P6THIS_ P6WCHAR* pUse, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
816 
829  P6DECLCOMMETHOD(getState)(P6THIS_ P6CRYPTOKEYSTATE* pState ) P6PURE;
830 
848  P6DECLCOMMETHOD(getStateAsString)(P6THIS_ P6WCHAR* pState, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
849 
862  P6DECLCOMMETHOD(getCipher)(P6THIS_ P6CRYPTOCIPHER* pCipher ) P6PURE;
863 
881  P6DECLCOMMETHOD(getCipherAsString)(P6THIS_ P6WCHAR* pCipher, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
882 
896  P6DECLCOMMETHOD(getStateDate)(P6THIS_ P6CRYPTOKEYSTATE state, P6TIME* pDate ) P6PURE;
897 
910  P6DECLCOMMETHOD(getExpiredDate)(P6THIS_ P6TIME* pExpire ) P6PURE;
911 
924  P6DECLCOMMETHOD(getRenewalDate)(P6THIS_ P6TIME* pRenewal ) P6PURE;
925 
938  P6DECLCOMMETHOD(getLastUpdated)(P6THIS_ P6TIME* pUpdated ) P6PURE;
939 
957  P6DECLCOMMETHOD(getStateString)(P6THIS_ P6CRYPTOKEYSTATE state, P6WCHAR* pState, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
958 
976  P6DECLCOMMETHOD(getCipherString)(P6THIS_ P6CRYPTOCIPHER cipher, P6WCHAR* pCipher, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
977 };
978 
979 // {8F3C646F-98B2-493d-8C10-0E71092064FF}
980 #define IF_p6ICryptoKeyGetMeta {0x8f3c646f,0x98b2,0x493d,{0x8c,0x10,0xe,0x71,0x9,0x20,0x64,0xff}}
981 
982 
988 #undef INTERFACE
989 #define INTERFACE p6ICryptoKeySetMeta
991 {
1006  P6DECLCOMMETHOD(setDescriptiveLabel)(P6THIS_ const P6WCHAR* pLabel, P6UINT32 cBuffer ) P6PURE;
1007 
1021  P6DECLCOMMETHOD(setUse)(P6THIS_ const P6WCHAR* pUse, P6UINT32 cBuffer ) P6PURE;
1022 
1033  P6DECLCOMMETHOD(setState)(P6THIS_ P6CRYPTOKEYSTATE state ) P6PURE;
1034 
1049  P6DECLCOMMETHOD(setStateAsString)(P6THIS_ const P6WCHAR* pState ) P6PURE;
1050 
1061  P6DECLCOMMETHOD(setCipher)(P6THIS_ P6CRYPTOCIPHER cipher ) P6PURE;
1062 
1077  P6DECLCOMMETHOD(setCipherAsString)(P6THIS_ const P6WCHAR* pCipher ) P6PURE;
1078 
1090  P6DECLCOMMETHOD(setStateDate)(P6THIS_ P6CRYPTOKEYSTATE state, P6TIME dateTime ) P6PURE;
1091 
1104  P6DECLCOMMETHOD(setExpiredDate)(P6THIS_ P6TIME expire ) P6PURE;
1105 
1117  P6DECLCOMMETHOD(setRenewalDate)(P6THIS_ P6TIME renewal ) P6PURE;
1118 
1129  P6DECLCOMMETHOD(setLastUpdated)(P6THIS_ P6TIME updated ) P6PURE;
1130 };
1131 
1132 // {CB3DCA8C-FA0E-41eb-8538-FC3A07D1A38A}
1133 #define IF_p6ICryptoKeySetMeta {0xcb3dca8c,0xfa0e,0x41eb,{0x85,0x38,0xfc,0x3a,0x7,0xd1,0xa3,0x8a}}
1134 
1135 
1136 
1155 static const P6CRYPTOKEYMASK P6CKM_NONE = 0x00000000;
1156 static const P6CRYPTOKEYMASK P6CKM_CLASS = 0x00000001;
1157 static const P6CRYPTOKEYMASK P6CKM_TYPE = 0x00000002;
1158 static const P6CRYPTOKEYMASK P6CKM_SIZE = 0x00000004;
1159 static const P6CRYPTOKEYMASK P6CKM_GUID = 0x00000008;
1160 static const P6CRYPTOKEYMASK P6CKM_VERSION = 0x00000010;
1161 
1178 typedef struct {
1179  P6CRYPTOKEYMASK mask;
1185 } P6CRYPTOKEYINFO;
1186 
1187 
1193 #undef INTERFACE
1194 #define INTERFACE p6ICryptoKey
1196 {
1216  P6DECLCOMMETHOD(getInfo)(P6THIS_ P6CRYPTOKEYCLASS* pClass, P6CRYPTOKEYTYPE* pType, P6UUID* pGuid, P6INT32* pKeySize, P6INT32* pVersion ) P6PURE;
1217 
1258  P6DECLCOMMETHOD(getDSAPublicKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pY ) P6PURE;
1259 
1300  P6DECLCOMMETHOD(getDSAPrivateKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pX ) P6PURE;
1301 
1329  P6DECLCOMMETHOD(getRSAPublicKey)(P6THIS_ P6BSTR* pN, P6BSTR* pE ) P6PURE;
1330 
1394  P6DECLCOMMETHOD(getRSAPrivateKey)(P6THIS_ P6BSTR* pN, P6BSTR* pD, P6BSTR* pE, P6BSTR* pP, P6BSTR* pQ, P6BSTR* pPrimeExpP, P6BSTR* pPrimeExpQ, P6BSTR* pCRT ) P6PURE;
1395 
1414  P6DECLCOMMETHOD(getKeyPKCS8)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1415 
1434  P6DECLCOMMETHOD(getKeyPKCS1)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1435 
1453  P6DECLCOMMETHOD(getSymetricKey)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1454 
1472  P6DECLCOMMETHOD(getSymetricIV)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1473 
1492  P6DECLCOMMETHOD(validateKey)(P6THIS_ P6CRYPTOKEYINFO* pKeyInfo ) P6PURE;
1493 
1505  P6DECLCOMMETHOD(serializeToFile)(P6THIS_ const P6WCHAR* pFile ) P6PURE;
1506 
1526  P6DECLCOMMETHOD(serializeToBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) P6PURE;
1527 
1540  P6DECLCOMMETHOD(isEquals)(P6THIS_ p6ICryptoKey* pOtherKey, P6BOOL* pbEqual ) P6PURE;
1541 };
1542 
1543 // {A8E297EE-8F07-4D33-AD7F-CC642B52E765}
1544 #define IF_p6ICryptoKey {0xA8E297EE,0x8F07,0x4D33,{0xAD,0x7F,0xCC,0x64,0x2B,0x52,0xE7,0x65}}
1545 
1546 
1552 #undef INTERFACE
1553 #define INTERFACE p6ICryptoKey2
1555 {
1575  P6DECLCOMMETHOD(getInfo)(P6THIS_ P6CRYPTOKEYCLASS* pClass, P6CRYPTOKEYTYPE* pType, P6UUID* pGuid, P6INT32* pKeySize, P6INT32* pVersion ) P6PURE;
1576 
1617  P6DECLCOMMETHOD(getDSAPublicKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pY ) P6PURE;
1618 
1659  P6DECLCOMMETHOD(getDSAPrivateKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pX ) P6PURE;
1660 
1688  P6DECLCOMMETHOD(getRSAPublicKey)(P6THIS_ P6BSTR* pN, P6BSTR* pE ) P6PURE;
1689 
1753  P6DECLCOMMETHOD(getRSAPrivateKey)(P6THIS_ P6BSTR* pN, P6BSTR* pD, P6BSTR* pE, P6BSTR* pP, P6BSTR* pQ, P6BSTR* pPrimeExpP, P6BSTR* pPrimeExpQ, P6BSTR* pCRT ) P6PURE;
1754 
1773  P6DECLCOMMETHOD(getKeyPKCS8)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1774 
1793  P6DECLCOMMETHOD(getKeyPKCS1)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1794 
1812  P6DECLCOMMETHOD(getSymetricKey)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1813 
1831  P6DECLCOMMETHOD(getSymetricIV)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1832 
1851  P6DECLCOMMETHOD(validateKey)(P6THIS_ P6CRYPTOKEYINFO* pKeyInfo ) P6PURE;
1852 
1864  P6DECLCOMMETHOD(serializeToFile)(P6THIS_ const P6WCHAR* pFile ) P6PURE;
1865 
1885  P6DECLCOMMETHOD(serializeToBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) P6PURE;
1886 
1899  P6DECLCOMMETHOD(isEquals)(P6THIS_ p6ICryptoKey* pOtherKey, P6BOOL* pbEqual ) P6PURE;
1900 
1924  P6DECLCOMMETHOD(getECPublicKey)(P6THIS_ P6ECCURVE* pCurveId, P6BSTR* pQ ) P6PURE;
1925 
1949  P6DECLCOMMETHOD(getECPrivateKey)(P6THIS_ P6ECCURVE* pCurveId, P6BSTR* pD ) P6PURE;
1950 
1970  P6DECLCOMMETHOD(getECPrivateKeyASN1)(P6THIS_ P6BOOL bWithParams, P6BSTR* pASN1 ) P6PURE;
1971 };
1972 
1973 // {B3799EBF-8193-4bed-BCD3-73E7518B33E4}
1974 #define IF_p6ICryptoKey2 {0xb3799ebf,0x8193,0x4bed,{0xbc,0xd3,0x73,0xe7,0x51,0x8b,0x33,0xe4}}
1975 
1976 
1977 // {D797AD3A-1CD8-4A78-AF7E-3EE03B1AD897}
1978 #define COMP_p6CryptoKey {0xD797AD3A,0x1CD8,0x4A78,{0xAF,0x7E,0x3E,0xE0,0x3B,0x1A,0xD8,0x97}}
1979 
1980 #ifdef __cplusplus
1981 } /* extern "C" */
1982 } // namespace
1983 #endif
1984 
1985 #endif
1986 
unsigned char P6UCHAR
Definition: p6types.h:87
Cryptography component definitions.
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1195
P6UINT32 P6CRYPTOKEYFLAGS
P6CRYPTOKEYFLAGS.
Definition: p6cryptokey.h:34
unsigned int P6UINT32
Definition: p6types.h:46
#define P6DECLAREICOM
Definition: p6defs.h:175
#define P6PURE
Definition: p6defs.h:176
Used to initialize and load a crypto key from a file or buffers.
Definition: p6cryptokey.h:91
P6CRYPTOKEYCLASS
Used to categorize keys:
Definition: p6cryptokey.h:49
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:112
P6CRYPTOKEYTYPE
Used to categorize keys:
Definition: p6cryptokey.h:74
Used to set extended key meta data as defined in reference 1 above.
Definition: p6cryptokey.h:990
[p6]COM Cryptographic Random Number Generator.
P6CRYPTOCIPHER
Cipher Type.
Definition: p6crypto.h:112
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1554
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:90
int P6INT32
Definition: p6types.h:47
P6CRYPTOKEYMASK mask
Definition: p6cryptokey.h:1179
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
P6CRYPTOKEYTYPE keyType
Definition: p6cryptokey.h:1181
Provides a cryptographically strong random number generator.
Definition: p6random.h:99
Binary string.
Definition: p6types.h:164
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:756
P6ECCURVE
EC Curve Type.
Definition: p6crypto.h:174
A universally unique indentifier (UUID).
Definition: p6types.h:141
Used to initialize and load a crypto key from a file or buffers.
Definition: p6cryptokey.h:370
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:173
P6INT64 P6TIME
The wallclock time represented as the number of microseconds since midnight January 1 1970 UTC...
Definition: p6types.h:238
#define P6THIS_
Definition: p6defs.h:177
P6CRYPTOKEYCLASS keyClass
Definition: p6cryptokey.h:1180
P6UINT32 P6CRYPTOKEYMASK
P6CRYPTOKEYMASK.
Definition: p6cryptokey.h:1154
Used to obtain extended key meta data as defined in reference 1 above.
Definition: p6cryptokey.h:776
void P6VOID
Definition: p6types.h:88
When a key is written to a file it is stamped with a set of meta data that define the key...
Definition: p6cryptokey.h:1178
char P6CHAR
Narrow character type.
Definition: p6types.h:84
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:172