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 
23 interface p6ISSLEngine : p6ICom
24 {
51  P6COMMETHOD initialize(P6R::p6IKeystore* pKeystore,P6R::p6IIoBufferFactory *pBufferFactory,const P6R::P6WCHAR *pszHostname,const P6R::P6WCHAR *pszCiphers,P6R::P6SECURESOCKETFLAGS fFlags,P6R::P6SIZE socketID) = 0;
52  P6COMMETHOD process() = 0;
54  P6COMMETHOD verifyCert() = 0;
56  P6COMMETHOD readEncrypted(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesRead) = 0;
58  P6COMMETHOD writeEncrypted(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesWritten) = 0;
60  P6COMMETHOD readCleartext(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesRead) = 0;
61  P6COMMETHOD readCleartextIoBuffer(P6R::p6IIoBuffer **ppIoBuffer,P6R::P6UINT32 *pcBytesRead) = 0;
62  P6COMMETHOD writeCleartext(P6R::P6UINT8 *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBytesWritten) = 0;
69 };
70 
71 // {77C3B93D-EA50-4D9C-9C98-ACC9BC21DF69}
72 #define IF_p6ISSLEngine {0x77C3B93D,0xEA50,0x4D9C,{0x9C,0x98,0xAC,0xC9,0xBC,0x21,0xDF,0x69}}
73 
74 // {587FA5DF-8A3B-4978-B98D-85025EE679B3}
75 #define COMP_p6SSLEngine {0x587FA5DF,0x8A3B,0x4978,{0xB9,0x8D,0x85,0x02,0x5E,0xE6,0x79,0xB3}}
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 
81 }
82 
83 #endif
84 
size_t P6SIZE
Definition: p6types.h:62
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
This interface is used to enumerate a set of certificates.
Definition: p6cert.h:792
unsigned int P6UINT32
Definition: p6types.h:40
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 getPeerCertificateChain(P6R::p6IEnumCerts **ppEnum)=0
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
virtual P6R::P6ERR getPeerCertificate(P6R::p6ICert **ppCert)=0
virtual P6R::P6ERR initialize(P6R::p6IKeystore *pKeystore, P6R::p6IIoBufferFactory *pBufferFactory, const P6R::P6WCHAR *pszHostname, const P6R::P6WCHAR *pszCiphers, P6R::P6SECURESOCKETFLAGS fFlags, P6R::P6SIZE socketID)=0
Used to initialize a secure socket and must be called successfully before using the socket via the st...
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
virtual P6R::P6ERR enableCertificateLogging(P6R::P6BOOL bEnable)=0
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 getPeerRootCertificate(P6R::p6ICert **ppCert)=0
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:180
virtual P6R::P6ERR populateSSLCredentials(P6R::p6IKeystore *pKeystore)=0
virtual P6R::P6ERR readCleartextIoBuffer(P6R::p6IIoBuffer **ppIoBuffer, P6R::P6UINT32 *pcBytesRead)=0
Network interfaces and definitions.
#define P6COMMETHOD
Definition: p6types.h:917
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