fintp_base
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FinTP::SSLFilter Class Reference

Implement AbstractFilter methods for SSL format. More...

#include <SSLFilter.h>

Inheritance diagram for FinTP::SSLFilter:

Public Member Functions

 SSLFilter ()
 Constructor. More...
 
 ~SSLFilter ()
 Destructor. More...
 
bool isMethodSupported (FilterMethod method, bool asClient)
 Return TRUE if the filter can execute the requested operation in client/server context. More...
 
AbstractFilter::FilterResult ProcessMessage (AbstractFilter::buffer_type inputData, AbstractFilter::buffer_type outputData, NameValueCollection &transportHeaders, bool asClient)
 Process message from Buffer to Buffer , de-sign if as client , sign if as server, using options from transportHeaders. More...
 
AbstractFilter::FilterResult ProcessMessage (AbstractFilter::buffer_type inputData, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *outputData, NameValueCollection &transportHeaders, bool asClient)
 Process message from Buffer to XML , de-sign if as client , sign if as server, using options from transportHeaders. More...
 
AbstractFilter::FilterResult ProcessMessage (const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *inputData, AbstractFilter::buffer_type outputData, NameValueCollection &transportHeaders, bool asClient)
 Process message from Buffer to Buffer , de-sign if as client , sign if as server, using options from transportHeaders. More...
 
AbstractFilter::FilterResult ProcessMessage (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *inputOutputData, NameValueCollection &transportHeaders, bool asClient)
 
AbstractFilter::FilterResult ProcessMessage (const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *inputData, unsigned char **outputData, NameValueCollection &transportHeaders, bool asClient)
 
AbstractFilter::FilterResult ProcessMessage (AbstractFilter::buffer_type inputData, unsigned char **outputData, NameValueCollection &transportHeaders, bool asClient)
 
- Public Member Functions inherited from FinTP::AbstractFilter
virtual ~AbstractFilter ()
 Destructor. More...
 
virtual bool canLogPayload ()
 
const NameValueCollection & getProperties () const
 
void setLogFile (const string &filename)
 sets the name of the file where the payload will be logged More...
 
string getLogFile () const
 gets the name of the file where the payload will be logged More...
 
virtual bool isTransportType ()
 
void addProperty (const string &name, const string &value)
 
FilterType::FilterTypeEnum getFilterType () const
 
virtual void Init ()
 
virtual void Rollback ()
 
virtual void Commit ()
 
virtual void Abort ()
 
virtual bool isBatch () const
 
virtual string getQueueManagerName () const
 
virtual string getTransportURI () const
 
virtual string getQueueName () const
 

Static Public Member Functions

static void Terminate ()
 
static bool IsSigned (const string &signedString)
 
static void Hack64bLines (string &unhackString)
 
- Static Public Member Functions inherited from FinTP::AbstractFilter
static string ToString (const FilterMethod type)
 

Static Public Attributes

static const string SSLCERTFILENAME = "SSLCertFileName"
 Certificate file name. More...
 
static const string SSLCERTPASSWD = "SSLCertPasswd"
 Certificate password. More...
 

Private Member Functions

void ValidateProperties ()
 Validates required properties. More...
 
string ReadDataFromBIO (BIO *bp)
 

Static Private Member Functions

static int Verify_Callback (int ok, X509_STORE_CTX *ctx)
 
static void SSLSetLock_Callback (int mode, int n, const char *file, int line)
 
static unsigned long SSLSetId_Callback ()
 
static void Initialize ()
 

Private Attributes

string m_CertFileName
 Certificate file name. More...
 
string m_CertPasswd
 Certificate password. More...
 

Static Private Attributes

static pthread_mutex_t * SSLSyncMutex = NULL
 
static pthread_once_t OnceInitControl = PTHREAD_ONCE_INIT
 

Additional Inherited Members

- Public Types inherited from FinTP::AbstractFilter
enum  FilterResult { Completed = 1, Fail = 2 }
 Return completed if the filter has successfully processed the message. More...
 
enum  FilterMethod { XmlToXml = 0, XmlToBuffer = 1, BufferToXml = 2, BufferToBuffer = 3 }
 Methods for filters. More...
 
typedef WorkItem< ManagedBuffer > buffer_type
 
- Protected Member Functions inherited from FinTP::AbstractFilter
 AbstractFilter (FilterType::FilterTypeEnum type)
 Constructor. More...
 
- Protected Attributes inherited from FinTP::AbstractFilter
NameValueCollection m_Properties
 Collection of name-value pairs = additional properties for the filter e.g. More...
 
FilterType::FilterTypeEnum m_FilterType
 
string m_LogPayloadFile
 

Detailed Description

Implement AbstractFilter methods for SSL format.

Author
Sebastian Gansca

Constructor & Destructor Documentation

SSLFilter::SSLFilter ( )

Constructor.

SSLFilter::~SSLFilter ( )

Destructor.

Member Function Documentation

void SSLFilter::Hack64bLines ( string &  unhackString)
static
void SSLFilter::Initialize ( )
staticprivate
bool SSLFilter::isMethodSupported ( AbstractFilter::FilterMethod  method,
bool  asClient 
)
virtual

Return TRUE if the filter can execute the requested operation in client/server context.

Parameters
[in]methodMethod to test if supported
[in]asClientTRUE if run as client , FALSE if run as server
Returns
TRUE if the filter can execute the requested operation in client/server context

Reimplemented from FinTP::AbstractFilter.

bool SSLFilter::IsSigned ( const string &  signedString)
static
Returns
TRUE if input document is signed
Parameters
[in]signedStringInput string to verify
AbstractFilter::FilterResult SSLFilter::ProcessMessage ( AbstractFilter::buffer_type  inputData,
AbstractFilter::buffer_type  outputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
virtual

Process message from Buffer to Buffer , de-sign if as client , sign if as server, using options from transportHeaders.

Parameters
[in]inputDataData to be transform in a buffer
[out]outputDataData transformed in a buffer
[in]transportHeadersCollection of options and parameters for transform
[in]asClientTRUE if run as client , FALSE if run as server
Returns
AbstractFilter::Completed if successful

PKCS#7 data in PEM format

PKCS#7 signer information

I/O abstraction

Stack of PKCS#7 signer information

Private key

X.509 certificate handling

PKCS#12 data

Implements FinTP::AbstractFilter.

AbstractFilter::FilterResult SSLFilter::ProcessMessage ( AbstractFilter::buffer_type  inputData,
XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  outputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
virtual

Process message from Buffer to XML , de-sign if as client , sign if as server, using options from transportHeaders.

Parameters
[in]inputDataData to be transform in a buffer
[out]outputDataData transformed in Xerces DOMDocument format
[in]transportHeadersCollection of options and parameters for transform
[in]asClientTRUE if run as client , FALSE if run as server
Returns
AbstractFilter::Completed if successful

Implements FinTP::AbstractFilter.

AbstractFilter::FilterResult SSLFilter::ProcessMessage ( const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  inputData,
AbstractFilter::buffer_type  outputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
virtual

Process message from Buffer to Buffer , de-sign if as client , sign if as server, using options from transportHeaders.

Parameters
[in]inputDataData to be transform in Xerces DOMDocument format
[out]outputDataData transformed in a buffer
[in]transportHeadersCollection of options and parameters for transform
[in]asClientTRUE if run as client , FALSE if run as server
Returns
AbstractFilter::Completed if successful

Implements FinTP::AbstractFilter.

AbstractFilter::FilterResult FinTP::SSLFilter::ProcessMessage ( XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  inputOutputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
inlinevirtual
Attention
Method XML to XML not supported by this filter

Implements FinTP::AbstractFilter.

AbstractFilter::FilterResult FinTP::SSLFilter::ProcessMessage ( const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  inputData,
unsigned char **  outputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
inlinevirtual
Attention
Method XML to Buffer in char * format not supported by this filter

Implements FinTP::AbstractFilter.

AbstractFilter::FilterResult FinTP::SSLFilter::ProcessMessage ( AbstractFilter::buffer_type  inputData,
unsigned char **  outputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
inlinevirtual
Attention
Method Buffer to Buffer in char * format not supported by this filter

Implements FinTP::AbstractFilter.

string SSLFilter::ReadDataFromBIO ( BIO *  bp)
private
Returns
Data in std::string format, converted from BIO format
Parameters
[in]bpInput data in BIO format
unsigned long SSLFilter::SSLSetId_Callback ( )
staticprivate
void SSLFilter::SSLSetLock_Callback ( int  mode,
int  n,
const char *  file,
int  line 
)
staticprivate
void SSLFilter::Terminate ( )
static
void SSLFilter::ValidateProperties ( )
private

Validates required properties.

int SSLFilter::Verify_Callback ( int  ok,
X509_STORE_CTX *  ctx 
)
staticprivate
Deprecated:
Not use
Todo:
see if necesary

Member Data Documentation

string FinTP::SSLFilter::m_CertFileName
private

Certificate file name.

string FinTP::SSLFilter::m_CertPasswd
private

Certificate password.

pthread_once_t SSLFilter::OnceInitControl = PTHREAD_ONCE_INIT
staticprivate
const string SSLFilter::SSLCERTFILENAME = "SSLCertFileName"
static

Certificate file name.

const string SSLFilter::SSLCERTPASSWD = "SSLCertPasswd"
static

Certificate password.

pthread_mutex_t * SSLFilter::SSLSyncMutex = NULL
staticprivate

The documentation for this class was generated from the following files: