Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6genkeys.h
Go to the documentation of this file.
1 
11 #ifndef P6GENKEYS_H__
12 #define P6GENKEYS_H__ 1
13 
14 #include "p6random.h"
15 #include "p6cryptokey.h"
16 
17 #ifdef __cplusplus
18 namespace P6R {
19 extern "C" {
20 #endif
21 
32 static const P6GENKEYFLAGS P6GENKEY_NOFLAGS = 0x00000000;
33 static const P6GENKEYFLAGS P6GENKEY_TRACEON = 0x00000001;
34 
40 #undef INTERFACE
41 #define INTERFACE p6IGenKeys
43 {
60  P6DECLCOMMETHOD(initialize)(P6THIS_ P6GENKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
61 
81  P6DECLCOMMETHOD(genDSAKeyPair)(P6THIS_ p6ICryptoKey** ppPubKey, p6ICryptoKey** ppPrvKey, P6UINT32 keySize ) P6PURE;
82 
101  P6DECLCOMMETHOD(genRSAKeyPair)(P6THIS_ p6ICryptoKey** ppPubKey, p6ICryptoKey** ppPrvKey, P6UINT32 keySize ) P6PURE;
102 
123  P6DECLCOMMETHOD(genSymmetricKeyRaw)(P6THIS_ P6UCHAR* pKeyBuffer, P6INT32 cKeyBuffer, P6UINT32 keySize, P6BOOL bReseed ) P6PURE;
124 
146  P6DECLCOMMETHOD(genSymmetricKey)(P6THIS_ p6ICryptoKey** ppKey, P6UINT32 keySize, P6BOOL bReseed ) P6PURE;
147 
166  P6DECLCOMMETHOD(genSymmetricKeyFromData)(P6THIS_ p6ICryptoKey** ppKey, P6CHAR *pData, P6UINT32 cData ) P6PURE;
167 
191  P6DECLCOMMETHOD(localizeSnmpKey)(P6THIS_ p6ICryptoKey* pInKey, p6ICryptoKey** ppOutKey, const P6CHAR* pEngineID, P6UINT32 idSize, p6IEntropySource* pEntropy ) P6PURE;
192 };
193 
194 // {18150F93-5C77-426b-9C47-671203BC808C}
195 #define IF_p6IGenKeys {0x18150f93,0x5c77,0x426b,{0x9c,0x47,0x67,0x12,0x3,0xbc,0x80,0x8c}}
196 
197 
203 #undef INTERFACE
204 #define INTERFACE p6IGenKeys2
206 {
223  P6DECLCOMMETHOD(initialize)(P6THIS_ P6GENKEYFLAGS flags, p6IRandom* pRandom ) P6PURE;
224 
244  P6DECLCOMMETHOD(genDSAKeyPair)(P6THIS_ p6ICryptoKey** ppPubKey, p6ICryptoKey** ppPrvKey, P6UINT32 keySize ) P6PURE;
245 
264  P6DECLCOMMETHOD(genRSAKeyPair)(P6THIS_ p6ICryptoKey** ppPubKey, p6ICryptoKey** ppPrvKey, P6UINT32 keySize ) P6PURE;
265 
286  P6DECLCOMMETHOD(genSymmetricKeyRaw)(P6THIS_ P6UCHAR* pKeyBuffer, P6INT32 cKeyBuffer, P6UINT32 keySize, P6BOOL bReseed ) P6PURE;
287 
309  P6DECLCOMMETHOD(genSymmetricKey)(P6THIS_ p6ICryptoKey** ppKey, P6UINT32 keySize, P6BOOL bReseed ) P6PURE;
310 
329  P6DECLCOMMETHOD(genSymmetricKeyFromData)(P6THIS_ p6ICryptoKey** ppKey, P6CHAR* pData, P6UINT32 cData ) P6PURE;
330 
354  P6DECLCOMMETHOD(localizeSnmpKey)(P6THIS_ p6ICryptoKey* pInKey, p6ICryptoKey** ppOutKey, const P6CHAR* pEngineID, P6UINT32 idSize, p6IEntropySource* pEntropy ) P6PURE;
355 
374  P6DECLCOMMETHOD(genECKeyPair)(P6THIS_ P6ECCURVE curveId, P6CRYPTOCIPHER cipher, p6ICryptoKey** ppPubKey, p6ICryptoKey** ppPrvKey ) P6PURE;
375 };
376 
377 // {64CF2209-655B-4b81-959C-C5FB3170312D}
378 #define IF_p6IGenKeys2 {0x64cf2209,0x655b,0x4b81,{0x95,0x9c,0xc5,0xfb,0x31,0x70,0x31,0x2d}}
379 
380 
381 // {2F884654-A993-4901-97C3-8881BFA15F9C}
382 #define COMP_p6GenKeys {0x2f884654,0xa993,0x4901,{0x97,0xc3,0x88,0x81,0xbf,0xa1,0x5f,0x9c}}
383 
384 #ifdef __cplusplus
385 } /* extern "C" */
386 } // namespace
387 #endif
388 
389 #endif
390 
391 
unsigned char P6UCHAR
Definition: p6types.h:108
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:1198
uint32_t P6UINT32
Definition: p6types.h:77
#define P6DECLAREICOM
Definition: p6defs.h:191
#define P6PURE
Definition: p6defs.h:192
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
This interface provides key generation methods for all p6Crypto supported ciphers.
Definition: p6genkeys.h:205
[p6]COM Cryptographic Random Number Generator.
P6UINT32 P6GENKEYFLAGS
P6GENKEYFLAGS.
Definition: p6genkeys.h:31
P6CRYPTOCIPHER
Cipher Type.
Definition: p6crypto.h:112
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
This interface provides key generation methods for all p6Crypto supported ciphers.
Definition: p6genkeys.h:42
Provides a cryptographically strong random number generator.
Definition: p6random.h:99
P6ECCURVE
EC Curve Type.
Definition: p6crypto.h:174
This is a plugin interface for the customer of the ICrypto interface to enhance the built in entropy ...
Definition: p6entropy.h:59
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
#define P6THIS_
Definition: p6defs.h:193
int32_t P6INT32
Definition: p6types.h:76
char P6CHAR
Narrow character type.
Definition: p6types.h:105
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188
P6R Cryptographic key interface definitions.