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 namespace P6R {
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
49 //interface p6ISSLEngine : p6ICom
50 //{
51 // P6COMMETHOD initialize(P6R::p6IKeystore* pKeystore,P6R::p6IIoBufferFactory *pBufferFactory,const P6R::P6WCHAR *pszHostname,const P6R::P6WCHAR *pszCiphers,P6R::P6SECURESOCKETFLAGS fFlags) = 0;
52 // P6COMMETHOD haveEncryptedData(P6R::P6SIZE *pcPending) = 0;
53 // P6COMMETHOD needEncryptedData(P6R::P6SIZE *pcPending) = 0;
54 // P6COMMETHOD connect() = 0;
55 // P6COMMETHOD verifyCert() = 0;
56 // P6COMMETHOD getNegotiatedCipher(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer) = 0;
57 // P6COMMETHOD readEncrypted(P6R::P6UINT8 *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcBytesRead) = 0;
58 // P6COMMETHOD writeEncrypted(P6R::P6UINT8 *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcBytesWritten) = 0;
59 // P6COMMETHOD readCleartext(P6R::P6UINT8 *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcBytesRead) = 0;
60 // P6COMMETHOD writeCleartext(P6R::P6UINT8 *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcBytesWritten) = 0;
61 //
62 //};
63 
64 // {77C3B93D-EA50-4D9C-9C98-ACC9BC21DF69}
65 #define IF_p6ISSLEngine {0x77C3B93D,0xEA50,0x4D9C,{0x9C,0x98,0xAC,0xC9,0xBC,0x21,0xDF,0x69}}
66 
67 // {587FA5DF-8A3B-4978-B98D-85025EE679B3}
68 #define COMP_p6SSLEngine {0x587FA5DF,0x8A3B,0x4978,{0xB9,0x8D,0x85,0x02,0x5E,0xE6,0x79,0xB3}}
69 
70 interface p6ISSLEngine : p6ICom
71 {
72  P6COMMETHOD initialize(P6R::p6IKeystore* pKeystore,P6R::p6IIoBufferFactory *pBufferFactory,const P6R::P6WCHAR *pszHostname,const P6R::P6WCHAR *pszCiphers,P6R::P6SECURESOCKETFLAGS fFlags) = 0;
73 // P6COMMETHOD connect() = 0;
74  P6COMMETHOD process() = 0;
76  P6COMMETHOD verifyCert() = 0;
78  P6COMMETHOD readEncrypted(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesRead) = 0;
80  P6COMMETHOD writeEncrypted(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesWritten) = 0;
82  P6COMMETHOD readCleartext(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesRead) = 0;
83  P6COMMETHOD readCleartextIoBuffer(P6R::p6IIoBuffer **ppIoBuffer,P6R::P6UINT32 *pcBytesRead) = 0;
84  P6COMMETHOD writeCleartext(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesWritten) = 0;
86 };
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 
92 }
93 
94 #endif
95 
This interface allows the caller to find an existing key, certificate, or blob (e.g., password) by a namespace and name pair.
Definition: p6keystore.h:646
unsigned int P6UINT32
Definition: p6types.h:40
virtual P6R::P6ERR initialize(P6R::p6IKeystore *pKeystore, P6R::p6IIoBufferFactory *pBufferFactory, const P6R::P6WCHAR *pszHostname, const P6R::P6WCHAR *pszCiphers, P6R::P6SECURESOCKETFLAGS fFlags)=0
P6R's keystore component to manage keys, certificates, and blobs.
I/O Buffer Interfaces.
virtual P6R::P6ERR writeEncrypted(P6R::P6UINT8 *pBuffer, P6R::P6UINT32 cBuffer, P6R::P6UINT32 *pcBytesWritten)=0
virtual P6R::P6ERR process()=0
bool P6BOOL
Boolean type.
Definition: p6types.h:101
virtual P6R::P6ERR writeCleartext(P6R::P6UINT8 *pBuffer, P6R::P6UINT32 cBuffer, P6R::P6UINT32 *pcBytesWritten)=0
This factory interface is responsible for creating and managing memory pooled Io Buffers (p6IIoBuffer...
Definition: p6iobuffer.h:595
unsigned char P6UINT8
Definition: p6types.h:30
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:96
P6R::P6UINT32 P6SECURESOCKETFLAGS
Definition: p6net.h:538
virtual P6R::P6ERR writeEncryptedIoBuffer(P6R::p6IIoBuffer *pIoBuffer, P6R::P6BOOL bAppend)=0
virtual P6R::P6ERR readCleartext(P6R::P6UINT8 *pBuffer, P6R::P6UINT32 cBuffer, P6R::P6UINT32 *pcBytesRead)=0
virtual P6R::P6ERR readCleartextIoBuffer(P6R::p6IIoBuffer **ppIoBuffer, P6R::P6UINT32 *pcBytesRead)=0
Network interfaces and definitions.
#define P6COMMETHOD
Definition: p6types.h:872
virtual P6R::P6ERR readEncrypted(P6R::P6UINT8 *pBuffer, P6R::P6UINT32 cBuffer, P6R::P6UINT32 *pcBytesRead)=0
virtual P6R::P6ERR initialized()=0
virtual P6R::P6ERR getNegotiatedCipher(P6R::P6WCHAR *pBuffer, P6R::P6UINT32 cBuffer)=0
virtual P6R::P6ERR readEncryptedIoBuffer(P6R::p6IIoBuffer **ppBuffer)=0
virtual P6R::P6ERR writeCleartextIoBuffer(P6R::p6IIoBuffer *pIoBuffer)=0
P6COM definitions and interfaces.
virtual P6R::P6ERR verifyCert()=0