PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PSSLCipherContext Class Reference

Encryption/decryption context. More...

#include <pssl.h>

Inheritance diagram for PSSLCipherContext:
Collaboration diagram for PSSLCipherContext:

Public Types

enum  PadMode { NoPadding, PadPKCS, PadLoosePKCS, PadCipherStealing }
 
- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 

Public Member Functions

 PSSLCipherContext (bool encrypt)
 
 ~PSSLCipherContext ()
 
 operator evp_cipher_ctx_st * () const
 Get internal OpenSSL cipher context structure. More...
 
bool IsEncrypt () const
 Indicate we are encrypting data. More...
 
PString GetAlgorithm () const
 Get selected algorithm. More...
 
bool SetAlgorithm (const PString &name)
 Set encryption/decryption algorithm. More...
 
bool SetKey (const PBYTEArray &key)
 Set encryption/decryption key. More...
 
bool SetKey (const BYTE *keyPtr, PINDEX keyLen)
 
bool SetIV (const PBYTEArray &iv)
 Set encryption/decryption initial vector. More...
 
bool SetIV (const BYTE *ivPtr, PINDEX ivLen)
 
bool SetPadding (PadMode pad)
 Set padding mode. More...
 
PadMode GetPadding () const
 Get padding mode. More...
 
bool Process (const PBYTEArray &in, PBYTEArray &out)
 Encrypt/Decrypt a block of data. More...
 
bool Process (const BYTE *inPtr, PINDEX inLen, BYTE *outPtr, PINDEX &outLen, bool partial=false)
 
PINDEX GetKeyLength () const
 Get the cipher key length. More...
 
PINDEX GetIVLength () const
 Get the cipher initial vector length. More...
 
PINDEX GetBlockSize () const
 Get the cipher block size. More...
 
PINDEX GetBlockedDataSize (PINDEX size) const
 Calculate the rounded up size for encrypted data. More...
 
- Public Member Functions inherited from PObject
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
__inline const PObjectPTraceObjectInstance () const
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Attributes

PadMode m_padMode
 
evp_cipher_ctx_st * m_context
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Static Public Member Functions inherited from PObject
static const char * Class ()
 Get the name of the class as a C string. More...
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 
- Friends inherited from PObject

Detailed Description

Encryption/decryption context.

Member Enumeration Documentation

Enumerator
NoPadding 
PadPKCS 
PadLoosePKCS 
PadCipherStealing 

Constructor & Destructor Documentation

PSSLCipherContext::PSSLCipherContext ( bool  encrypt)
PSSLCipherContext::~PSSLCipherContext ( )

Member Function Documentation

PString PSSLCipherContext::GetAlgorithm ( ) const

Get selected algorithm.

PINDEX PSSLCipherContext::GetBlockedDataSize ( PINDEX  size) const

Calculate the rounded up size for encrypted data.

PINDEX PSSLCipherContext::GetBlockSize ( ) const

Get the cipher block size.

PINDEX PSSLCipherContext::GetIVLength ( ) const

Get the cipher initial vector length.

PINDEX PSSLCipherContext::GetKeyLength ( ) const

Get the cipher key length.

PadMode PSSLCipherContext::GetPadding ( ) const
inline

Get padding mode.

If NoPadding, then buffers supplied to Process() must be exact multiple of the block size.

References m_padMode.

bool PSSLCipherContext::IsEncrypt ( ) const

Indicate we are encrypting data.

PSSLCipherContext::operator evp_cipher_ctx_st * ( ) const
inline

Get internal OpenSSL cipher context structure.

References m_context.

bool PSSLCipherContext::Process ( const PBYTEArray in,
PBYTEArray out 
)

Encrypt/Decrypt a block of data.

Parameters
inData to be encrypted
outEncrypted data
bool PSSLCipherContext::Process ( const BYTE *  inPtr,
PINDEX  inLen,
BYTE *  outPtr,
PINDEX &  outLen,
bool  partial = false 
)
Parameters
inPtrData to be encrypted
inLenLength of data to be encrypted
outPtrEncrypted data
outLenMax output space on input, then actual output data size
partialPartial data, more to come
bool PSSLCipherContext::SetAlgorithm ( const PString name)

Set encryption/decryption algorithm.

The

Parameters
nameName or OID for the algorithm.
bool PSSLCipherContext::SetIV ( const PBYTEArray iv)
inline

Set encryption/decryption initial vector.

References PContainer::GetSize(), and SetIV().

Referenced by SetIV().

bool PSSLCipherContext::SetIV ( const BYTE *  ivPtr,
PINDEX  ivLen 
)
bool PSSLCipherContext::SetKey ( const PBYTEArray key)
inline

Set encryption/decryption key.

References PContainer::GetSize(), and SetKey().

Referenced by SetKey().

bool PSSLCipherContext::SetKey ( const BYTE *  keyPtr,
PINDEX  keyLen 
)
bool PSSLCipherContext::SetPadding ( PadMode  pad)

Set padding mode.

If NoPadding, then buffers supplied to Process() must be exact multiple of the block size.

Member Data Documentation

evp_cipher_ctx_st* PSSLCipherContext::m_context
protected
PadMode PSSLCipherContext::m_padMode
protected

Referenced by GetPadding().


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