#ifndef _SHA2_OBJECT_H_
#define _SHA2_OBJECT_H_
#include <security_cdsa_utilities/digestobject.h>
#include <CommonCrypto/CommonDigest.h>
class SHA224Object : public DigestObject
{
public:
SHA224Object() { }
virtual ~SHA224Object() { };
virtual void digestInit();
virtual void digestUpdate(
const void *data,
size_t len);
virtual void digestFinal(
void *digest);
virtual DigestObject *digestClone() const;
virtual size_t digestSizeInBytes() const;
private:
CC_SHA256_CTX mCtx;
};
class SHA256Object : public DigestObject
{
public:
SHA256Object() { }
virtual ~SHA256Object() { };
virtual void digestInit();
virtual void digestUpdate(
const void *data,
size_t len);
virtual void digestFinal(
void *digest);
virtual DigestObject *digestClone() const;
virtual size_t digestSizeInBytes() const;
private:
CC_SHA256_CTX mCtx;
};
class SHA384Object : public DigestObject
{
public:
SHA384Object() { }
virtual ~SHA384Object() { };
virtual void digestInit();
virtual void digestUpdate(
const void *data,
size_t len);
virtual void digestFinal(
void *digest);
virtual DigestObject *digestClone() const;
virtual size_t digestSizeInBytes() const;
private:
CC_SHA512_CTX mCtx;
};
class SHA512Object : public DigestObject
{
public:
SHA512Object() { }
virtual ~SHA512Object() { };
virtual void digestInit();
virtual void digestUpdate(
const void *data,
size_t len);
virtual void digestFinal(
void *digest);
virtual DigestObject *digestClone() const;
virtual size_t digestSizeInBytes() const;
private:
CC_SHA512_CTX mCtx;
};
#endif