• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

KDECore

KMD5 Class Reference

An adapted C++ implementation of RSA Data Securities MD5 algorithm. More...

#include <kmdcodec.h>

List of all members.


Public Types

typedef unsigned char Digest [16]

Public Member Functions

QCString base64Digest ()
void hexDigest (QCString &)
QCString hexDigest ()
 KMD5 (const QCString &a)
 KMD5 (const QByteArray &a)
 KMD5 (const char *in, int len=-1)
 KMD5 ()
void rawDigest (KMD5::Digest &bin)
const Digest & rawDigest ()
void reset ()
bool update (QIODevice &file)
void update (const QCString &in)
void update (const QByteArray &in)
void update (const unsigned char *in, int len=-1)
void update (const char *in, int len=-1)
bool verify (const QCString &)
bool verify (const KMD5::Digest &digest)

Protected Member Functions

void finalize ()
void transform (const unsigned char buffer[64])

Detailed Description

An adapted C++ implementation of RSA Data Securities MD5 algorithm.

The default constructor is designed to provide much the same functionality as the most commonly used C-implementation, while the other three constructors are meant to further simplify the process of obtaining a digest by calculating the result in a single step.

KMD5 is state-based, that means you can add new contents with update() as long as you didn't request the digest value yet. After the digest value was requested, the object is "finalized" and you have to call reset() to be able to do another calculation with it. The reason for this behavior is that upon requesting the message digest KMD5 has to pad the received contents up to a 64 byte boundary to calculate its value. After this operation it is not possible to resume consuming data.

Usage:

A common usage of this class:

 const char* test1;
 KMD5::Digest rawResult;

 test1 = "This is a simple test.";
 KMD5 context (test1);
 cout << "Hex Digest output: " << context.hexDigest().data() << endl;

To cut down on the unnecessary overhead of creating multiple KMD5 objects, you can simply invoke reset() to reuse the same object in making another calculation:

 context.reset ();
 context.update ("TWO");
 context.update ("THREE");
 cout << "Hex Digest output: " << context.hexDigest().data() << endl;

Author:
Dirk Mueller <mueller@kde.org>, Dawit Alemayehu <adawit@kde.org>

Definition at line 402 of file kmdcodec.h.


Member Typedef Documentation

typedef unsigned char KMD5::Digest[16]

Definition at line 406 of file kmdcodec.h.


Constructor & Destructor Documentation

KMD5::KMD5 (  ) 

Definition at line 754 of file kmdcodec.cpp.

KMD5::KMD5 ( const char *  in,
int  len = -1 
)

Constructor that updates the digest for the given string.

Parameters:
in C string or binary data
len if negative, calculates the length by using strlen on the first parameter, otherwise it trusts the given length (does not stop on NUL byte).

Definition at line 759 of file kmdcodec.cpp.

KMD5::KMD5 ( const QByteArray &  a  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Same as above except it accepts a QByteArray as its argument.

Definition at line 765 of file kmdcodec.cpp.

KMD5::KMD5 ( const QCString &  a  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Same as above except it accepts a QCString as its argument.

Definition at line 771 of file kmdcodec.cpp.


Member Function Documentation

QCString KMD5::base64Digest (  ) 

Returns the value of the calculated message digest in a base64-encoded representation.

Definition at line 925 of file kmdcodec.cpp.

void KMD5::finalize (  )  [protected]

finalizes the digest

Definition at line 841 of file kmdcodec.cpp.

void KMD5::hexDigest ( QCString &  s  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 915 of file kmdcodec.cpp.

QCString KMD5::hexDigest (  ) 

Returns the value of the calculated message digest in a hexadecimal representation.

Definition at line 902 of file kmdcodec.cpp.

void KMD5::rawDigest ( KMD5::Digest &  bin  ) 

Fills the given array with the binary representation of the message digest.

Use this method if you do not want to worry about making copy of the digest once you obtain it.

Parameters:
bin an array of 16 characters ( char[16] )

Definition at line 895 of file kmdcodec.cpp.

const KMD5::Digest & KMD5::rawDigest (  ) 

Returns:
the raw representation of the digest

Definition at line 889 of file kmdcodec.cpp.

void KMD5::reset (  ) 

Calling this function will reset the calculated message digest.

Use this method to perform another message digest calculation without recreating the KMD5 object.

Definition at line 941 of file kmdcodec.cpp.

void KMD5::transform ( const unsigned char  buffer[64]  )  [protected]

Performs the real update work.

Note that length is implied to be 64.

Definition at line 957 of file kmdcodec.cpp.

bool KMD5::update ( QIODevice &  file  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. reads the data from an I/O device, i.e.

from a file (QFile).

NOTE that the file must be open for reading.

Parameters:
file a pointer to FILE as returned by calls like f{d,re}open
Returns:
false if an error occurred during reading.

Definition at line 830 of file kmdcodec.cpp.

void KMD5::update ( const QCString &  in  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
in message to be added to the digest (QCString).

Definition at line 782 of file kmdcodec.cpp.

void KMD5::update ( const QByteArray &  in  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
in message to be added to the digest (QByteArray).

Definition at line 777 of file kmdcodec.cpp.

void KMD5::update ( const unsigned char *  in,
int  len = -1 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 787 of file kmdcodec.cpp.

void KMD5::update ( const char *  in,
int  len = -1 
) [inline]

Updates the message to be digested.

Be sure to add all data before you read the digest. After reading the digest, you can not add more data!

Parameters:
in message to be added to digest
len the length of the given message.

Definition at line 442 of file kmdcodec.h.

bool KMD5::verify ( const QCString &  hexdigest  ) 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 883 of file kmdcodec.cpp.

bool KMD5::verify ( const KMD5::Digest &  digest  ) 

returns true if the calculated digest for the given message matches the given one.

Definition at line 877 of file kmdcodec.cpp.


The documentation for this class was generated from the following files:
  • kmdcodec.h
  • kmdcodec.cpp

KDECore

Skip menu "KDECore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal