32 #ifndef PTLIB_CYPHER_H
33 #define PTLIB_CYPHER_H
84 const char * endOfLine
98 const void * dataBlock,
121 const char * endOfLine =
"\n"
125 const char * endOfLine =
"\n"
129 const char * endOfLine =
"\n"
132 const void * dataBlock,
134 const char * endOfLine =
"\n"
202 void OutputBase64(
const BYTE * data);
228 const BYTE *
GetPointer()
const {
return (
const BYTE *)value; }
237 virtual void Start() = 0;
240 const void * dataBlock,
271 const void * dataBlock,
326 const void * dataBlock,
335 const void * dataBlock,
368 const void * dataBlock,
379 const void * dataBlock,
388 void Transform(
const BYTE * block);
410 PMessageDigestSHA1();
411 ~PMessageDigestSHA1();
445 const
void * dataBlock,
454 const
void * dataBlock,
460 virtual
void InternalProcess(
461 const
void * dataBlock,
465 void InternalCompleteDigest(
486 ECB = ElectronicCodebook,
488 CBC = CypherBlockChaining,
490 OFB = OutputFeedback,
492 CFB = CypherFeedback,
589 BlockChainMode chainMode
592 const void * keyData,
595 BlockChainMode chainMode
600 virtual void Initialise(
605 virtual void EncodeBlock(
612 virtual void DecodeBlock(
668 static void GenerateKey(
675 virtual void Initialise(
680 virtual void EncodeBlock(
686 virtual void DecodeBlock(
692 DWORD k0, k1, k2, k3;
714 const char *
const * securedKeyArray,
780 ValidationState GetValidation()
const;
814 #endif // P_CONFIG_FILE
816 #endif // PTLIB_CYPHER_H
virtual void Start()=0
Begin a Message Digest operation, initialising the object instance.
const PString & GetOptionBitsKey() const
Definition: cypher.h:749
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
This class is used to encode/decode data using the MIME standard base64 encoding mechanism as defined...
Definition: cypher.h:70
friend class PMessageDigestSHA1
Definition: cypher.h:233
A class representing a configuration for the application.
Definition: config.h:67
PString optionBitsKey
Definition: cypher.h:810
const PStringArray & GetSecuredKeys() const
Definition: cypher.h:728
static PString Encode(const PString &str, const char *endOfLine="\n")
virtual void InternalProcess(const void *dataBlock, PINDEX length)=0
void StartEncoding(bool useCRLFs=true)
This is an array collection class of PString objects.
Definition: pstring.h:2024
PStringArray securedKeys
Definition: cypher.h:807
PBoolean IsDecodeOK()
Return a flag to indicate that the input was decoded without any extraneous or illegal characters in ...
Definition: cypher.h:172
PBoolean ProcessDecoding(const PString &str)
Incorporate the specified data into the base 64 decoding.
PINDEX blockSize
Size of each encryption block in bytes.
Definition: cypher.h:621
BOOL PBoolean
Definition: object.h:102
BlockChainMode
Mechanism by which sequential blocks are linked.
Definition: cypher.h:484
Array of unsigned characters.
Definition: array.h:670
PBYTEArray GetDecodedData()
const PString & GetPendingPrefix() const
Definition: cypher.h:756
static PString Encode(const PString &str)
Encode the data in memory to and MD5 hash value.
Source
Description of the standard source for configuration information.
Definition: config.h:76
virtual void InternalCompleteDigest(Result &result)
virtual void InternalProcess(const void *dataBlock, PINDEX length)
This abstract class defines an encryption/decryption algortihm.
Definition: cypher.h:478
virtual PINDEX GetSize() const
Get the current size of the container.
virtual PString Complete()
PString securityKey
Definition: cypher.h:808
PString expiryDateKey
Definition: cypher.h:809
PMessageDigest5()
Create a new message digestor.
The character string class.
Definition: pstring.h:108
PMessageDigest()
Create a new message digestor.
PBYTEArray key
Key for the encryption/decryption.
Definition: cypher.h:619
const BYTE * GetPointer() const
Definition: cypher.h:228
MD5 Message Digest.
Definition: cypher.h:286
virtual PString CompleteDigest()
Complete the message digest and return the magic number result.
const PString & GetSecurityKey() const
Definition: cypher.h:735
BlockChainMode chainMode
Mode for sequential encryption each block.
Definition: cypher.h:623
PBase64()
Construct a base 64 encoder/decoder and initialise both encode and decode members as in StartEncoding...
PINDEX GetSize() const
Definition: cypher.h:227
virtual void InternalCompleteDigest(Result &result)=0
ValidationState
Definition: cypher.h:773
void Start()
Begin a Message Digest operation, initialising the object instance.
PString pendingPrefix
Definition: cypher.h:811
PTEACypher::Key productKey
Definition: cypher.h:806
void ProcessEncoding(const PString &str)
static PString Decode(const PString &str)
Convert a printable text string to binary data using the Internet MIME standard base 64 content trans...
PString CompleteEncoding()
Complete the base 64 encoding and return the remainder of the encoded Base64 string.
PString GetEncodedString()
Get the partial Base64 string for the data encoded so far.
Ultimate parent class for all objects in the class library.
Definition: object.h:1118
const PString & GetExpiryDateKey() const
Definition: cypher.h:742
virtual void Process(const void *dataBlock, PINDEX length)
Tiny Encryption Algorithm.
Definition: cypher.h:634