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 
37 static const P6CRYPTOKEYFLAGS P6CKF_NONE = 0x00000000;
38 static const P6CRYPTOKEYFLAGS P6CKF_FORCENEWIV = 0x00000001;
39 static const P6CRYPTOKEYFLAGS P6CKF_FORCENEWID = 0x00000002;
40 
52 typedef enum {
58 
59 
77 typedef enum {
85 
86 
92 #undef INTERFACE
93 #define INTERFACE p6ICryptoKeyInit
95 {
110  P6DECLCOMMETHOD(initialize)(P6THIS_ P6CRYPTOKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
111 
129  P6DECLCOMMETHOD(loadKey)(P6THIS_ const P6WCHAR* pszFilename ) P6PURE;
130 
148  P6DECLCOMMETHOD(loadKeyFromBuffer)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer ) P6PURE;
149 
166  P6DECLCOMMETHOD(loadRawSymetricKey)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
167 
185  P6DECLCOMMETHOD(loadPKCS8Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
186 
204  P6DECLCOMMETHOD(loadPublicPKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
205 
223  P6DECLCOMMETHOD(loadPrivatePKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
224 
247  P6DECLCOMMETHOD(loadRawPublicDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
248  const P6UCHAR* pQ, P6UINT32 qLength,
249  const P6UCHAR* pG, P6UINT32 gLength,
250  const P6UCHAR* pY, P6UINT32 yLength ) P6PURE;
251 
274  P6DECLCOMMETHOD(loadRawPrivateDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
275  const P6UCHAR* pQ, P6UINT32 qLength,
276  const P6UCHAR* pG, P6UINT32 gLength,
277  const P6UCHAR* pX, P6UINT32 xLength ) P6PURE;
278 
297  P6DECLCOMMETHOD(loadRawPublicRSAKey)(P6THIS_ const P6UCHAR* pE, P6UINT32 eLength, const P6UCHAR* pN, P6UINT32 nLength ) P6PURE;
298 
320  P6DECLCOMMETHOD(loadRawPublicRSAKey2)(P6THIS_ const P6UCHAR* pE, P6UINT32 eLength, const P6UCHAR* pN, P6UINT32 nLength ) P6PURE;
321 
352  P6DECLCOMMETHOD(loadRawPrivateRSAKey)(P6THIS_ const P6UCHAR* pN, P6UINT32 nLength,
353  const P6UCHAR* pD, P6UINT32 dLength,
354  const P6UCHAR* pE, P6UINT32 eLength,
355  const P6UCHAR* pP, P6UINT32 pLength,
356  const P6UCHAR* pQ, P6UINT32 qLength,
357  const P6UCHAR* pPrimeExpP, P6UINT32 epLength,
358  const P6UCHAR* pPrimeExpQ, P6UINT32 eqLength,
359  const P6UCHAR* pCRT, P6UINT32 cLength ) P6PURE;
360 };
361 
362 // {7AAB1F32-075B-4B8D-B0E6-E4CE822882B7}
363 #define IF_p6ICryptoKeyInit {0x7AAB1F32,0x075B,0x4B8D,{0xB0,0xE6,0xE4,0xCE,0x82,0x28,0x82,0xB7}}
364 
365 
371 #undef INTERFACE
372 #define INTERFACE p6ICryptoKeyInit2
374 {
389  P6DECLCOMMETHOD(initialize)(P6THIS_ P6CRYPTOKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
390 
408  P6DECLCOMMETHOD(loadKey)(P6THIS_ const P6WCHAR* pszFilename ) P6PURE;
409 
427  P6DECLCOMMETHOD(loadKeyFromBuffer)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer ) P6PURE;
428 
445  P6DECLCOMMETHOD(loadRawSymetricKey)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
446 
464  P6DECLCOMMETHOD(loadPKCS8Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
465 
483  P6DECLCOMMETHOD(loadPublicPKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
484 
502  P6DECLCOMMETHOD(loadPrivatePKCS1Key)(P6THIS_ const P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32 keySize ) P6PURE;
503 
526  P6DECLCOMMETHOD(loadRawPublicDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
527  const P6UCHAR* pQ, P6UINT32 qLength,
528  const P6UCHAR* pG, P6UINT32 gLength,
529  const P6UCHAR* pY, P6UINT32 yLength ) P6PURE;
530 
553  P6DECLCOMMETHOD(loadRawPrivateDSAKey)(P6THIS_ const P6UCHAR* pP, P6UINT32 pLength,
554  const P6UCHAR* pQ, P6UINT32 qLength,
555  const P6UCHAR* pG, P6UINT32 gLength,
556  const P6UCHAR* pX, P6UINT32 xLength ) P6PURE;
557 
576  P6DECLCOMMETHOD(loadRawPublicRSAKey)(P6THIS_ const P6UCHAR* pE, P6UINT32 eLength, const P6UCHAR* pN, P6UINT32 nLength ) P6PURE;
577 
608  P6DECLCOMMETHOD(loadRawPrivateRSAKey)(P6THIS_ const P6UCHAR* pN, P6UINT32 nLength,
609  const P6UCHAR* pD, P6UINT32 dLength,
610  const P6UCHAR* pE, P6UINT32 eLength,
611  const P6UCHAR* pP, P6UINT32 pLength,
612  const P6UCHAR* pQ, P6UINT32 qLength,
613  const P6UCHAR* pPrimeExpP, P6UINT32 epLength,
614  const P6UCHAR* pPrimeExpQ, P6UINT32 eqLength,
615  const P6UCHAR* pCRT, P6UINT32 cLength ) P6PURE;
616 
635  P6DECLCOMMETHOD(loadRawPublicECKey)(P6THIS_ P6ECCURVE curveId, const P6UCHAR* pQ, P6UINT32 qLength ) P6PURE;
636 
655  P6DECLCOMMETHOD(loadRawPrivateECKey)(P6THIS_ P6ECCURVE curveId, const P6UCHAR* pD, P6UINT32 dLength ) P6PURE;
656 
672  P6DECLCOMMETHOD(loadASN1PrivateECKey)(P6THIS_ P6BSTR* pASN1 ) P6PURE;
673 };
674 
675 // {D10AAB8D-5315-4e13-8644-09E27A1985B8}
676 #define IF_p6ICryptoKeyInit2 {0xd10aab8d,0x5315,0x4e13,{0x86,0x44,0x9,0xe2,0x7a,0x19,0x85,0xb8}}
677 
684 #undef INTERFACE
685 #define INTERFACE p6ICryptoKeyInitPEM
687 {
702  P6DECLCOMMETHOD(initialize)(P6THIS_ P6CRYPTOKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
703 
720  P6DECLCOMMETHOD(loadPEMPrivateRSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
721  P6DECLCOMMETHOD(loadPEMPrivateRSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
722  P6DECLCOMMETHOD(loadPEMPublicRSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
723  P6DECLCOMMETHOD(loadPEMPublicRSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
724  P6DECLCOMMETHOD(loadPEMPrivateDSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
725  P6DECLCOMMETHOD(loadPEMPrivateDSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
726  P6DECLCOMMETHOD(loadPEMPublicDSAKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
727  P6DECLCOMMETHOD(loadPEMPublicDSAKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
728  P6DECLCOMMETHOD(loadPEMPrivateECKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
729  P6DECLCOMMETHOD(loadPEMPrivateECKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
730  P6DECLCOMMETHOD(loadPEMPublicECKeyFromBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, const P6CHAR *pszPassPhrase) P6PURE;
731  P6DECLCOMMETHOD(loadPEMPublicECKeyFromFile)(P6THIS_ const P6WCHAR *pszFile,const P6CHAR *pszPassPhrase) P6PURE;
732 };
733 
734 /*{2E46F137-4D90-0076-F081-C6AA0CA16A6F}*/
735 #define IF_p6ICryptoKeyInitPEM {0x2E46F137,0x4D90,0x0076,{0xF0,0x81,0xC6,0xAA,0x0C,0xA1,0x6A,0x6F}}
736 
759 typedef enum {
770 
771 
777 #undef INTERFACE
778 #define INTERFACE p6ICryptoKeyGetMeta
780 {
799  P6DECLCOMMETHOD(getDescriptiveLabel)(P6THIS_ P6WCHAR* pLabel, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
800 
818  P6DECLCOMMETHOD(getUse)(P6THIS_ P6WCHAR* pUse, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
819 
832  P6DECLCOMMETHOD(getState)(P6THIS_ P6CRYPTOKEYSTATE* pState ) P6PURE;
833 
851  P6DECLCOMMETHOD(getStateAsString)(P6THIS_ P6WCHAR* pState, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
852 
865  P6DECLCOMMETHOD(getCipher)(P6THIS_ P6CRYPTOCIPHER* pCipher ) P6PURE;
866 
884  P6DECLCOMMETHOD(getCipherAsString)(P6THIS_ P6WCHAR* pCipher, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
885 
899  P6DECLCOMMETHOD(getStateDate)(P6THIS_ P6CRYPTOKEYSTATE state, P6TIME* pDate ) P6PURE;
900 
913  P6DECLCOMMETHOD(getExpiredDate)(P6THIS_ P6TIME* pExpire ) P6PURE;
914 
927  P6DECLCOMMETHOD(getRenewalDate)(P6THIS_ P6TIME* pRenewal ) P6PURE;
928 
941  P6DECLCOMMETHOD(getLastUpdated)(P6THIS_ P6TIME* pUpdated ) P6PURE;
942 
960  P6DECLCOMMETHOD(getStateString)(P6THIS_ P6CRYPTOKEYSTATE state, P6WCHAR* pState, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
961 
979  P6DECLCOMMETHOD(getCipherString)(P6THIS_ P6CRYPTOCIPHER cipher, P6WCHAR* pCipher, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
980 };
981 
982 // {8F3C646F-98B2-493d-8C10-0E71092064FF}
983 #define IF_p6ICryptoKeyGetMeta {0x8f3c646f,0x98b2,0x493d,{0x8c,0x10,0xe,0x71,0x9,0x20,0x64,0xff}}
984 
985 
991 #undef INTERFACE
992 #define INTERFACE p6ICryptoKeySetMeta
994 {
1009  P6DECLCOMMETHOD(setDescriptiveLabel)(P6THIS_ const P6WCHAR* pLabel, P6UINT32 cBuffer ) P6PURE;
1010 
1024  P6DECLCOMMETHOD(setUse)(P6THIS_ const P6WCHAR* pUse, P6UINT32 cBuffer ) P6PURE;
1025 
1036  P6DECLCOMMETHOD(setState)(P6THIS_ P6CRYPTOKEYSTATE state ) P6PURE;
1037 
1052  P6DECLCOMMETHOD(setStateAsString)(P6THIS_ const P6WCHAR* pState ) P6PURE;
1053 
1064  P6DECLCOMMETHOD(setCipher)(P6THIS_ P6CRYPTOCIPHER cipher ) P6PURE;
1065 
1080  P6DECLCOMMETHOD(setCipherAsString)(P6THIS_ const P6WCHAR* pCipher ) P6PURE;
1081 
1093  P6DECLCOMMETHOD(setStateDate)(P6THIS_ P6CRYPTOKEYSTATE state, P6TIME dateTime ) P6PURE;
1094 
1107  P6DECLCOMMETHOD(setExpiredDate)(P6THIS_ P6TIME expire ) P6PURE;
1108 
1120  P6DECLCOMMETHOD(setRenewalDate)(P6THIS_ P6TIME renewal ) P6PURE;
1121 
1132  P6DECLCOMMETHOD(setLastUpdated)(P6THIS_ P6TIME updated ) P6PURE;
1133 };
1134 
1135 // {CB3DCA8C-FA0E-41eb-8538-FC3A07D1A38A}
1136 #define IF_p6ICryptoKeySetMeta {0xcb3dca8c,0xfa0e,0x41eb,{0x85,0x38,0xfc,0x3a,0x7,0xd1,0xa3,0x8a}}
1137 
1138 
1139 
1158 static const P6CRYPTOKEYMASK P6CKM_NONE = 0x00000000;
1159 static const P6CRYPTOKEYMASK P6CKM_CLASS = 0x00000001;
1160 static const P6CRYPTOKEYMASK P6CKM_TYPE = 0x00000002;
1161 static const P6CRYPTOKEYMASK P6CKM_SIZE = 0x00000004;
1162 static const P6CRYPTOKEYMASK P6CKM_GUID = 0x00000008;
1163 static const P6CRYPTOKEYMASK P6CKM_VERSION = 0x00000010;
1164 
1181 typedef struct {
1182  P6CRYPTOKEYMASK mask;
1188 } P6CRYPTOKEYINFO;
1189 
1190 
1196 #undef INTERFACE
1197 #define INTERFACE p6ICryptoKey
1199 {
1219  P6DECLCOMMETHOD(getInfo)(P6THIS_ P6CRYPTOKEYCLASS* pClass, P6CRYPTOKEYTYPE* pType, P6UUID* pGuid, P6INT32* pKeySize, P6INT32* pVersion ) P6PURE;
1220 
1261  P6DECLCOMMETHOD(getDSAPublicKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pY ) P6PURE;
1262 
1303  P6DECLCOMMETHOD(getDSAPrivateKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pX ) P6PURE;
1304 
1332  P6DECLCOMMETHOD(getRSAPublicKey)(P6THIS_ P6BSTR* pN, P6BSTR* pE ) P6PURE;
1333 
1397  P6DECLCOMMETHOD(getRSAPrivateKey)(P6THIS_ P6BSTR* pN, P6BSTR* pD, P6BSTR* pE, P6BSTR* pP, P6BSTR* pQ, P6BSTR* pPrimeExpP, P6BSTR* pPrimeExpQ, P6BSTR* pCRT ) P6PURE;
1398 
1417  P6DECLCOMMETHOD(getKeyPKCS8)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1418 
1437  P6DECLCOMMETHOD(getKeyPKCS1)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1438 
1456  P6DECLCOMMETHOD(getSymetricKey)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1457 
1475  P6DECLCOMMETHOD(getSymetricIV)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1476 
1495  P6DECLCOMMETHOD(validateKey)(P6THIS_ P6CRYPTOKEYINFO* pKeyInfo ) P6PURE;
1496 
1508  P6DECLCOMMETHOD(serializeToFile)(P6THIS_ const P6WCHAR* pFile ) P6PURE;
1509 
1529  P6DECLCOMMETHOD(serializeToBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) P6PURE;
1530 
1543  P6DECLCOMMETHOD(isEquals)(P6THIS_ p6ICryptoKey* pOtherKey, P6BOOL* pbEqual ) P6PURE;
1544 };
1545 
1546 // {A8E297EE-8F07-4D33-AD7F-CC642B52E765}
1547 #define IF_p6ICryptoKey {0xA8E297EE,0x8F07,0x4D33,{0xAD,0x7F,0xCC,0x64,0x2B,0x52,0xE7,0x65}}
1548 
1549 
1555 #undef INTERFACE
1556 #define INTERFACE p6ICryptoKey2
1558 {
1578  P6DECLCOMMETHOD(getInfo)(P6THIS_ P6CRYPTOKEYCLASS* pClass, P6CRYPTOKEYTYPE* pType, P6UUID* pGuid, P6INT32* pKeySize, P6INT32* pVersion ) P6PURE;
1579 
1620  P6DECLCOMMETHOD(getDSAPublicKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pY ) P6PURE;
1621 
1662  P6DECLCOMMETHOD(getDSAPrivateKey)(P6THIS_ P6BSTR* pP, P6BSTR* pQ, P6BSTR* pG, P6BSTR* pX ) P6PURE;
1663 
1691  P6DECLCOMMETHOD(getRSAPublicKey)(P6THIS_ P6BSTR* pN, P6BSTR* pE ) P6PURE;
1692 
1756  P6DECLCOMMETHOD(getRSAPrivateKey)(P6THIS_ P6BSTR* pN, P6BSTR* pD, P6BSTR* pE, P6BSTR* pP, P6BSTR* pQ, P6BSTR* pPrimeExpP, P6BSTR* pPrimeExpQ, P6BSTR* pCRT ) P6PURE;
1757 
1776  P6DECLCOMMETHOD(getKeyPKCS8)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1777 
1796  P6DECLCOMMETHOD(getKeyPKCS1)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6BOOL wantPEM, P6UINT32* pWritten ) P6PURE;
1797 
1815  P6DECLCOMMETHOD(getSymetricKey)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1816 
1834  P6DECLCOMMETHOD(getSymetricIV)(P6THIS_ P6UCHAR* pBuffer, P6UINT32 cBuffer, P6UINT32* pWritten ) P6PURE;
1835 
1854  P6DECLCOMMETHOD(validateKey)(P6THIS_ P6CRYPTOKEYINFO* pKeyInfo ) P6PURE;
1855 
1867  P6DECLCOMMETHOD(serializeToFile)(P6THIS_ const P6WCHAR* pFile ) P6PURE;
1868 
1888  P6DECLCOMMETHOD(serializeToBuffer)(P6THIS_ P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) P6PURE;
1889 
1902  P6DECLCOMMETHOD(isEquals)(P6THIS_ p6ICryptoKey* pOtherKey, P6BOOL* pbEqual ) P6PURE;
1903 
1927  P6DECLCOMMETHOD(getECPublicKey)(P6THIS_ P6ECCURVE* pCurveId, P6BSTR* pQ ) P6PURE;
1928 
1952  P6DECLCOMMETHOD(getECPrivateKey)(P6THIS_ P6ECCURVE* pCurveId, P6BSTR* pD ) P6PURE;
1953 
1973  P6DECLCOMMETHOD(getECPrivateKeyASN1)(P6THIS_ P6BOOL bWithParams, P6BSTR* pASN1 ) P6PURE;
1974 };
1975 
1976 // {B3799EBF-8193-4bed-BCD3-73E7518B33E4}
1977 #define IF_p6ICryptoKey2 {0xb3799ebf,0x8193,0x4bed,{0xbc,0xd3,0x73,0xe7,0x51,0x8b,0x33,0xe4}}
1978 
1979 
1980 // {D797AD3A-1CD8-4A78-AF7E-3EE03B1AD897}
1981 #define COMP_p6CryptoKey {0xD797AD3A,0x1CD8,0x4A78,{0xAF,0x7E,0x3E,0xE0,0x3B,0x1A,0xD8,0x97}}
1982 
1983 #ifdef __cplusplus
1984 } /* extern "C" */
1985 } // namespace
1986 #endif
1987 
1988 #endif
1989 
unsigned char P6UCHAR
Definition: p6types.h:108
Cryptography component definitions.
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1198
P6UINT32 P6CRYPTOKEYFLAGS
P6CRYPTOKEYFLAGS.
Definition: p6cryptokey.h:36
uint32_t P6UINT32
Definition: p6types.h:77
#define P6DECLAREICOM
Definition: p6defs.h:191
#define P6PURE
Definition: p6defs.h:192
Used to initialize and load a crypto key from a file or buffers.
Definition: p6cryptokey.h:94
P6CRYPTOKEYCLASS
Used to categorize keys:
Definition: p6cryptokey.h:52
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
P6CRYPTOKEYTYPE
Used to categorize keys:
Definition: p6cryptokey.h:77
Used to set extended key meta data as defined in reference 1 above.
Definition: p6cryptokey.h:993
[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:1557
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
P6CRYPTOKEYMASK mask
Definition: p6cryptokey.h:1182
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
P6CRYPTOKEYTYPE keyType
Definition: p6cryptokey.h:1184
Provides a cryptographically strong random number generator.
Definition: p6random.h:99
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
P6ECCURVE
EC Curve Type.
Definition: p6crypto.h:174
A universally unique indentifier (UUID).
Definition: p6types.h:162
Used to initialize and load a crypto key from a file or buffers.
Definition: p6cryptokey.h:373
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
P6INT64 P6TIME
The wallclock time represented as the number of microseconds since midnight January 1 1970 UTC...
Definition: p6types.h:259
#define P6THIS_
Definition: p6defs.h:193
P6CRYPTOKEYCLASS keyClass
Definition: p6cryptokey.h:1183
P6UINT32 P6CRYPTOKEYMASK
P6CRYPTOKEYMASK.
Definition: p6cryptokey.h:1157
Used to obtain extended key meta data as defined in reference 1 above.
Definition: p6cryptokey.h:779
void P6VOID
Definition: p6types.h:109
When a key is written to a file it is stamped with a set of meta data that define the key...
Definition: p6cryptokey.h:1181
int32_t P6INT32
Definition: p6types.h:76
char P6CHAR
Narrow character type.
Definition: p6types.h:105
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188