|
PTLib
Version 2.18.8
|
Encryption/decryption context. More...
#include <pssl.h>


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 | |
| __inline unsigned | GetTraceContextIdentifier () const |
| Get PTRACE context identifier. More... | |
| __inline void | SetTraceContextIdentifier (unsigned id) |
| __inline void | SetTraceContextIdentifier (const PObject &obj) |
| __inline void | SetTraceContextIdentifier (const PObject *obj) |
| __inline void | CopyTraceContextIdentifier (PObject &obj) const |
| __inline void | CopyTraceContextIdentifier (PObject *obj) const |
| virtual | ~PObject () |
| __inline const char * | GetClass () const |
| __inline bool | IsClass (const char *name) const |
| __inline const PObject * | PTraceObjectInstance () const |
| virtual PObject * | Clone () 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 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 Member Functions | |
| bool | UpdateCTS (unsigned char *out, int *outl, const unsigned char *in, int inl) |
| bool | EncryptFinalCTS (unsigned char *out, int *outl) |
| bool | DecryptFinalCTS (unsigned char *out, int *outl) |
| bool | UpdateLoose (unsigned char *out, int *outl, const unsigned char *in, int inl) |
| bool | DecryptUpdateLoose (unsigned char *out, int *outl, const unsigned char *in, int inl) |
| bool | DecryptFinalLoose (unsigned char *out, int *outl) |
Protected Member Functions inherited from PObject | |
| PObject () | |
| Constructor for PObject, made protected so cannot ever create one on its own. More... | |
Protected Attributes | |
| PadMode | m_padMode |
| bool | m_encrypt |
| evp_cipher_ctx_st * | m_context |
| unsigned char | m_pad_buf [32] |
| unsigned char | m_pad_final_buf [32] |
| int | m_pad_buf_len |
| bool | m_pad_final_used |
Protected Attributes inherited from PObject | |
| unsigned | m_traceContextIdentifier |
Additional Inherited Members | |
Static Public Member Functions inherited from PObject | |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject &from) |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject *from) |
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject &from) |
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject *from) |
| static __inline const char * | Class () |
| static __inline const PObject * | PTraceObjectInstance (const char *) |
| static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
| template<typename T > | |
| static Comparison | Compare2 (T v1, T v2) |
| Compare two types, returning Comparison type. More... | |
| static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
| Internal function caled from CompareObjectMemoryDirect() More... | |
Encryption/decryption context.
| PSSLCipherContext::PSSLCipherContext | ( | bool | encrypt | ) |
| PSSLCipherContext::~PSSLCipherContext | ( | ) |
|
protected |
|
protected |
|
protected |
|
protected |
| 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.
|
inline |
| bool PSSLCipherContext::IsEncrypt | ( | ) | const |
Indicate we are encrypting data.
|
inline |
Get internal OpenSSL cipher context structure.
References m_context.
| bool PSSLCipherContext::Process | ( | const PBYTEArray & | in, |
| PBYTEArray & | out | ||
| ) |
Encrypt/Decrypt a block of data.
| in | Data to be encrypted |
| out | Encrypted data |
| bool PSSLCipherContext::Process | ( | const BYTE * | inPtr, |
| PINDEX | inLen, | ||
| BYTE * | outPtr, | ||
| PINDEX & | outLen, | ||
| bool | partial = false |
||
| ) |
| inPtr | Data to be encrypted |
| inLen | Length of data to be encrypted |
| outPtr | Encrypted data |
| outLen | Max output space on input, then actual output data size |
| partial | Partial data, more to come |
| bool PSSLCipherContext::SetAlgorithm | ( | const PString & | name | ) |
Set encryption/decryption algorithm.
The
| name | Name or OID for the algorithm. |
|
inline |
Set encryption/decryption initial vector.
References PContainer::GetSize(), and SetIV().
Referenced by SetIV().
| bool PSSLCipherContext::SetIV | ( | const BYTE * | ivPtr, |
| PINDEX | ivLen | ||
| ) |
|
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.
|
protected |
|
protected |
|
protected |
Referenced by operator evp_cipher_ctx_st *().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by GetPadding().