Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6sslengine.h
Go to the documentation of this file.
1 
9 #ifndef P6SSLENGING_H__
10 #define P6SSLENGING_H__ 1
11 
12 #include "p6com.h"
13 #include "p6keystore.h"
14 #include "p6net.h"
15 #include "p6iobuffer.h"
16 
17 
18 #ifdef __cplusplus
19 namespace P6R {
20 extern "C" {
21 #endif
22 
23 #undef INTERFACE
24 #define INTERFACE p6ISSLEngine
26 {
54  P6DECLCOMMETHOD(initialize)(P6THIS_ P6R::p6IKeystore* pKeystore,P6R::p6IIoBufferFactory *pBufferFactory,const P6R::P6WCHAR *pszHostname,const P6R::P6WCHAR *pszCiphers,P6R::P6SECURESOCKETFLAGS fFlags,P6R::P6SIZE socketID) P6PURE;
55  P6DECLCOMMETHOD(process)(P6THIS) P6PURE;
56  P6DECLCOMMETHOD(initialized)(P6THIS) P6PURE;
57  P6DECLCOMMETHOD(verifyCert)(P6THIS) P6PURE;
58  P6DECLCOMMETHOD(getNegotiatedCipher)(P6THIS_ P6R::P6WCHAR *pBuffer,P6R::P6UINT32 cBuffer) P6PURE;
59  P6DECLCOMMETHOD(readEncrypted)(P6THIS_ P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesRead) P6PURE;
60  P6DECLCOMMETHOD(readEncryptedIoBuffer)(P6THIS_ P6R::p6IIoBuffer **ppBuffer) P6PURE;
61  P6DECLCOMMETHOD(writeEncrypted)(P6THIS_ P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesWritten) P6PURE;
62  P6DECLCOMMETHOD(writeEncryptedIoBuffer)(P6THIS_ P6R::p6IIoBuffer *pIoBuffer,P6R::P6BOOL bAppend) P6PURE;
63  P6DECLCOMMETHOD(readCleartext)(P6THIS_ P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesRead) P6PURE;
64  P6DECLCOMMETHOD(readCleartextIoBuffer)(P6THIS_ P6R::p6IIoBuffer **ppIoBuffer,P6R::P6UINT32 *pcBytesRead) P6PURE;
65  P6DECLCOMMETHOD(writeCleartext)(P6THIS_ P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesWritten) P6PURE;
66  P6DECLCOMMETHOD(writeCleartextIoBuffer)(P6THIS_ P6R::p6IIoBuffer *pIoBuffer) P6PURE;
67  P6DECLCOMMETHOD(getPeerCertificate)(P6THIS_ P6R::p6ICert **ppCert) P6PURE;
68  P6DECLCOMMETHOD(getPeerCertificateChain)(P6THIS_ P6R::p6IEnumCerts **ppEnum) P6PURE;
69  P6DECLCOMMETHOD(getPeerRootCertificate)(P6THIS_ P6R::p6ICert **ppCert) P6PURE;
70  P6DECLCOMMETHOD(populateSSLCredentials)(P6THIS_ P6R::p6IKeystore *pKeystore) P6PURE;
71  P6DECLCOMMETHOD(enableCertificateLogging)(P6THIS_ P6R::P6BOOL bEnable) P6PURE;
72 };
73 
74 // {77C3B93D-EA50-4D9C-9C98-ACC9BC21DF69}
75 #define IF_p6ISSLEngine {0x77C3B93D,0xEA50,0x4D9C,{0x9C,0x98,0xAC,0xC9,0xBC,0x21,0xDF,0x69}}
76 
77 // {587FA5DF-8A3B-4978-B98D-85025EE679B3}
78 #define COMP_p6SSLEngine {0x587FA5DF,0x8A3B,0x4978,{0xB9,0x8D,0x85,0x02,0x5E,0xE6,0x79,0xB3}}
79 
80 #ifdef __cplusplus
81 } // extern "C"
82 } // namespace
83 #endif
84 
85 #endif
86 
size_t P6SIZE
Definition: p6types.h:90
<div class="p6box"> This interface has been depricated in favor of p6IKeystore3.
Definition: p6keystore.h:689
This interface is used to enumerate a set of certificates.
Definition: p6cert.h:806
uint32_t P6UINT32
Definition: p6types.h:77
#define P6DECLAREICOM
Definition: p6defs.h:191
P6R's keystore component to manage keys, certificates, and blobs.
I/O Buffer Interfaces.
#define P6PURE
Definition: p6defs.h:192
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
This factory interface is responsible for creating and managing memory pooled Io Buffers (p6IIoBuffer...
Definition: p6iobuffer.h:605
unsigned char P6UINT8
Definition: p6types.h:71
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:111
P6UINT32 P6SECURESOCKETFLAGS
Definition: p6net.h:563
Network interfaces and definitions.
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
#define P6THIS_
Definition: p6defs.h:193
P6COM definitions and interfaces.
#define P6THIS
Definition: p6defs.h:194
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188