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

#include <P7MFilter.h>

Inheritance diagram for FinTP::P7MFilter:

Public Member Functions

 P7MFilter ()
 Constructor. More...
 
 ~P7MFilter ()
 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 bool IsSigned (const string &signedString)
 
- Static Public Member Functions inherited from FinTP::AbstractFilter
static string ToString (const FilterMethod type)
 

Static Public Attributes

static const string P7MCERTFILENAME = "P7MCertFileName"
 Certificate file name. More...
 
static const string P7MCERTPASSWD = "P7MCertPasswd"
 Certificate password. More...
 

Private Member Functions

 STACK_OF (PKCS7_SIGNER_INFO)*m_sk
 Stack of PKCS#7 signer information. More...
 
void ValidateProperties ()
 Validates required properties. More...
 

Static Private Member Functions

static string ReadDataFromBIO (BIO *bp)
 
static PKCS7 * B64_read_PKCS7 (BIO *bio)
 
static int B64_write_PKCS7 (BIO *bio, PKCS7 *p7)
 
static int Verify_Callback (int ok, X509_STORE_CTX *ctx)
 

Private Attributes

PKCS7 * m_P7
 PKCS#7 data in PEM format. More...
 
PKCS7_SIGNER_INFO * m_SI
 PKCS#7 signer information. More...
 
BIO * m_Data
 I/O abstraction. More...
 
BIO * m_P7bio
 
EVP_PKEY * m_PKey
 Private key. More...
 
X509 * m_X509
 X.509 certificate handling. More...
 
PKCS12 * m_Pkcs12
 PKCS#12 data. More...
 
string m_CertFileName
 Certificate file name. More...
 
string m_CertPasswd
 Certificate password. More...
 

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
 

Constructor & Destructor Documentation

P7MFilter::P7MFilter ( )

Constructor.

P7MFilter::~P7MFilter ( )

Destructor.

Member Function Documentation

PKCS7 * P7MFilter::B64_read_PKCS7 ( BIO *  bio)
staticprivate
int P7MFilter::B64_write_PKCS7 ( BIO *  bio,
PKCS7 *  p7 
)
staticprivate
bool P7MFilter::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 P7MFilter::IsSigned ( const string &  signedString)
static
Returns
TRUE if input document is signed
Parameters
[in]signedStringInput string to verify
AbstractFilter::FilterResult P7MFilter::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

Implements FinTP::AbstractFilter.

AbstractFilter::FilterResult P7MFilter::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 FinTP::P7MFilter::ProcessMessage ( const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  inputData,
AbstractFilter::buffer_type  outputData,
NameValueCollection &  transportHeaders,
bool  asClient 
)
inlinevirtual

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::P7MFilter::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::P7MFilter::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::P7MFilter::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 P7MFilter::ReadDataFromBIO ( BIO *  bp)
staticprivate
Returns
Data in std::string format, converted from BIO format
Parameters
[in]bpInput data in BIO format
FinTP::P7MFilter::STACK_OF ( PKCS7_SIGNER_INFO  )
private

Stack of PKCS#7 signer information.

void P7MFilter::ValidateProperties ( )
private

Validates required properties.

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

Member Data Documentation

string FinTP::P7MFilter::m_CertFileName
private

Certificate file name.

string FinTP::P7MFilter::m_CertPasswd
private

Certificate password.

BIO* FinTP::P7MFilter::m_Data
private

I/O abstraction.

PKCS7* FinTP::P7MFilter::m_P7
private

PKCS#7 data in PEM format.

BIO * FinTP::P7MFilter::m_P7bio
private
PKCS12* FinTP::P7MFilter::m_Pkcs12
private

PKCS#12 data.

EVP_PKEY* FinTP::P7MFilter::m_PKey
private

Private key.

PKCS7_SIGNER_INFO* FinTP::P7MFilter::m_SI
private

PKCS#7 signer information.

X509* FinTP::P7MFilter::m_X509
private

X.509 certificate handling.

const string P7MFilter::P7MCERTFILENAME = "P7MCertFileName"
static

Certificate file name.

const string P7MFilter::P7MCERTPASSWD = "P7MCertPasswd"
static

Certificate password.


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