// MakeRIPEMD256.h: CMakeRIPEMD256 クラスのインターフェイス
//
//////////////////////////////////////////////////////////////////////

#pragma once

#include "MakeHashAlgorithm.h"

class CMakeRIPEMD256 : public CMakeHashAlgorithm
{
public:
    CMakeRIPEMD256();
    ~CMakeRIPEMD256();

    virtual char* GetHashName(char *pBuffer=NULL) { return (pBuffer) ? strcpy(pBuffer,"RIPEMD256") : "RIPEMD256"; }
    virtual DWORD GetHashValueSize() { return 32; }
    virtual DWORD GetHashBlockSize() { return 64; }
    virtual void Initialize();

    virtual BOOL Test();

private:
    virtual DWORD ComputeHashHelper(const void *pBuffer, DWORD len)
            { return ComputeHashHelper(pBuffer, m_pHash, len); }
    virtual DWORD ComputeHashHelper(const void *pBuffer, void *msg_digest, DWORD len);
    virtual void ComputeHashFinalHelper(void *msg_digest);

private:
    DWORD m_pHash[8];
};

