Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6pkcs12.h
Go to the documentation of this file.
1 
10 #ifndef P6PKCS12_H__
11 #define P6PKCS12_H__ 1
12 
13 #include "p6cert.h"
14 #include "p6cryptokey.h"
15 
16 namespace P6R {
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 interface p6IEnumCACerts : public p6ICom
23 {
24  P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::p6ComPtr<P6R::p6ICert> *parElements,P6R::P6UINT32 *pcReturned) = 0;
25  P6COMMETHOD reset() = 0;
26 };
27 // {D3810A32-2F26-4F44-A103-D9AA21610C3D}
28 #define IF_p6IEnumCACerts {0xD3810A32,0x2F26,0x4F44,{0xA1,0x03,0xD9,0xAA,0x21,0x61,0x0C,0x3D}}
29 
31 static const P6PKCS12FLAGS P6PK12F_NONE = 0x00000000;
32 
33 
51 typedef enum {
62 } P6PBEMETHOD;
63 
64 
78 typedef struct {
86 
111 interface p6IPkcs12 : public p6ICom
112 {
114 
115  P6COMMETHOD import(const P6R::P6WCHAR *pszFilename,const P6R::P6CHAR *pszPassword) = 0;
116 
117  P6COMMETHOD getPrivateKey(P6R::p6ICryptoKey **ppPrivateKey) = 0;
118 
119  P6COMMETHOD getCertificate(P6R::p6ICert **ppCertificate) = 0;
120 
122 
142  P6COMMETHOD exportAsP12(const P6R::P6WCHAR *pszFilename,const P6R::P6CHAR *pszPassword,P6R::p6ICryptoKey *pPrivateKey,P6R::p6ICert *pClientCert,P6R::p6ICert **ppCACertsArray,P6R::P6UINT32 caCount,P6R::P6PKCS12_OPTIONS* pOptions) = 0;
143 };
144 // {930A32BE-1080-43CF-9825-A47C46EF6968}
145 #define IF_p6IPkcs12 {0x930A32BE,0x1080,0x43CF,{0x98,0x25,0xA4,0x7C,0x46,0xEF,0x69,0x68}}
146 
147 // {386668E1-A176-4D8E-8693-36FC2FE2B2A9}
148 #define COMP_p6Pkcs12 {0x386668E1,0xA176,0x4D8E,{0x86,0x93,0x36,0xFC,0x2F,0xE2,0xB2,0xA9}}
149 
150 #ifdef __cplusplus
151 }
152 #endif
153 
154 }
155 
156 #endif
virtual P6R::P6ERR getPrivateKey(P6R::p6ICryptoKey **ppPrivateKey)=0
P6PBEMETHOD
Password based encryption (PBE) functions.
Definition: p6pkcs12.h:51
A smart pointer implementation to help manage and use [p6]COM based interfaces.
Definition: p6comptr.h:214
This interface provides key metadata infrormation and key access.
Definition: p6cryptokey.h:787
unsigned int P6UINT32
Definition: p6types.h:40
virtual P6R::P6ERR initialize(P6R::P6PKCS12FLAGS fFlags)=0
P6CHAR * pFriendlyName
Definition: p6pkcs12.h:79
virtual P6R::P6ERR enumCACerts(P6R::p6IEnumCACerts **ppEnum)=0
P6PKCS12_OPTIONS.
Definition: p6pkcs12.h:78
P6CHAR ** pCANameArray
Definition: p6pkcs12.h:80
unsigned char P6UINT8
Definition: p6types.h:30
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
P6PBEMETHOD certPBE
Definition: p6pkcs12.h:84
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:96
P6PBEMETHOD keyPBE
Definition: p6pkcs12.h:83
virtual P6R::P6ERR reset()=0
virtual P6R::P6ERR exportAsP12(const P6R::P6WCHAR *pszFilename, const P6R::P6CHAR *pszPassword, P6R::p6ICryptoKey *pPrivateKey, P6R::p6ICert *pClientCert, P6R::p6ICert **ppCACertsArray, P6R::P6UINT32 caCount, P6R::P6PKCS12_OPTIONS *pOptions)=0
Generate an PKCS #12 file given the following components: private key, certificate for the private ke...
virtual P6R::P6ERR getCertificate(P6R::p6ICert **ppCertificate)=0
Interface definition for X509 V3 Certificates.
P6UINT32 P6PKCS12FLAGS
Definition: p6pkcs12.h:30
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:180
#define P6COMMETHOD
Definition: p6types.h:872
This component allows importing from and exporting to PKCS12 format files.
Definition: p6pkcs12.h:111
virtual P6R::P6ERR next(P6R::P6UINT32 cElements, P6R::p6ComPtr< P6R::p6ICert > *parElements, P6R::P6UINT32 *pcReturned)=0
char P6CHAR
Narrow character type.
Definition: p6types.h:71
P6R Cryptographic key interface definitions.