Sirikata
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Friends
Sirikata::SHA256 Class Reference

#include <Sha256.hpp>

Collaboration diagram for Sirikata::SHA256:

List of all members.

Classes

struct  Hasher
 Take the first sizeof(size_t) bytes of the SHA256 as a valid hash for an unordered_map. More...

Public Types

enum  { static_size = 32, hex_size = 64 }
typedef Array< unsigned char,
static_size > 
Digest

Public Member Functions

unsigned int size () const
std::string convertToHexString () const
 Allocates a std::string of size 64.
std::string toString () const
Array< char, hex_size > convertToHex () const
const DigestrawData () const
bool operator== (const SHA256 &other) const
bool operator!= (const SHA256 &other) const
bool operator< (const SHA256 &other) const

Static Public Member Functions

static SHA256 convertFromHex (const char *digest)
 Looks at the first 64 characters and pairs them into 32 bytes Creates a shasum with these 32 raw bytes.
static SHA256 convertFromHex (const std::string &digest)
 Looks at the first 64 characters and pairs them into 32 bytes.
static SHA256 convertFromBinary (const Digest &digest)
 Creates a shasum with these 32 raw bytes.
static SHA256 convertFromBinary (const void *digest)
 Looks at the first 32 bytes Creates a shasum with these 32 raw bytes.
static SHA256 computeDigest (const void *data, size_t length)
 Computes SHA256 digest from data.
static SHA256 computeDigest (const std::string &data)
 Computes SHA256 digest from data.
static const SHA256null ()
 Fills the SHA256 with array of entirely 0's.
static const SHA256emptyDigest ()
 Computes the digest of an empty file and returns that digest.

Private Attributes

Digest mData

Friends

class SHA256Context
std::ostream & operator<< (std::ostream &os, const SHA256 &shasum)

Member Typedef Documentation

typedef Array<unsigned char, static_size> Sirikata::SHA256::Digest

Member Enumeration Documentation

anonymous enum
Enumerator:
static_size 
hex_size 

Member Function Documentation

SHA256 Sirikata::SHA256::computeDigest ( const void *  data,
size_t  length 
) [static]
SHA256 Sirikata::SHA256::computeDigest ( const std::string &  data) [static]

Computes SHA256 digest from data.

Parameters:
datacontains data to be hashed
Returns:
SHASum digest

References Sirikata::Array< T, N, integral_type >::data(), and mData.

static SHA256 Sirikata::SHA256::convertFromBinary ( const void *  digest) [inline, static]

Looks at the first 32 bytes Creates a shasum with these 32 raw bytes.

Parameters:
digestmust be exactly 32 bytes long

References Sirikata::Array< T, N, integral_type >::data(), and mData.

static SHA256 Sirikata::SHA256::convertFromBinary ( const Digest digest) [inline, static]

Creates a shasum with these 32 raw bytes.

Parameters:
digestholds the array of bytes

References Sirikata::Array< T, N, integral_type >::data().

SHA256 Sirikata::SHA256::convertFromHex ( const char *  digest) [static]

Looks at the first 64 characters and pairs them into 32 bytes Creates a shasum with these 32 raw bytes.

Parameters:
digestmust be 64 elements of hex digest
Exceptions:
std::invalid_argumentif nonhex character encountered

References mData, and static_size.

Referenced by Sirikata::Models::ColladaSystem::addHeaderData(), convertFromHex(), Sirikata::Transfer::MeerkatNameHandler::request_finished(), and Sirikata::Transfer::DiskCacheLayer::unserialize().

SHA256 Sirikata::SHA256::convertFromHex ( const std::string &  digest) [static]

Looks at the first 64 characters and pairs them into 32 bytes.

Parameters:
digestmust be a string of length 64
Exceptions:
std::invalid_argumentif nonhex character encountered

References convertFromHex().

Array< char, SHA256::hex_size > Sirikata::SHA256::convertToHex ( ) const
Returns:
an array filled with mData converted to hex

References mData, and static_size.

std::string Sirikata::SHA256::convertToHexString ( ) const
static const SHA256& Sirikata::SHA256::emptyDigest ( ) [inline, static]

Computes the digest of an empty file and returns that digest.

static const SHA256& Sirikata::SHA256::null ( ) [inline, static]
bool Sirikata::SHA256::operator!= ( const SHA256 other) const [inline]

References mData.

bool Sirikata::SHA256::operator< ( const SHA256 other) const [inline]

References mData.

bool Sirikata::SHA256::operator== ( const SHA256 other) const [inline]

References mData.

const Digest& Sirikata::SHA256::rawData ( ) const [inline]
unsigned int Sirikata::SHA256::size ( ) const [inline]
std::string Sirikata::SHA256::toString ( ) const [inline]

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const SHA256 shasum 
) [friend]
friend class SHA256Context [friend]

Member Data Documentation


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