www.pudn.com > 基于SHA-256的HMAC文件校验器.rar > Sha256.h


// Sha256.h: interface for the CSha256 class. 
// Programmed by Gamsn 2005.10.22 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_SHA256_H__63B9CDF2_E75F_4101_B410_BD3DF2B8DA7B__INCLUDED_) 
#define AFX_SHA256_H__63B9CDF2_E75F_4101_B410_BD3DF2B8DA7B__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CSha256   
{ 
public: 
	CSha256(); 
	virtual ~CSha256(); 
	void Init(DWORD dwFullLen); 
	void Steps(); 
	void GenW(BYTE buffer[],int nlen); 
	DWORD OA,OB,OC,OD,OE,OF,OG,OH; 
	DWORD dwA,dwB,dwC,dwD,dwE,dwF,dwG,dwH,dwW[80],dwLen; 
protected: 
	DWORD f(BYTE t,DWORD B,DWORD C,DWORD D); 
	DWORD K(BYTE t); 
	DWORD Maj(DWORD x,DWORD y,DWORD z); 
	DWORD Ch(DWORD x,DWORD y,DWORD z); 
	DWORD Sum1to256(DWORD x); 
	DWORD Sum0to256(DWORD x); 
	BYTE *pText; 
	bool bOneMore; 
	DWORD mod32(DWORD A,DWORD B); 
 
}; 
 
#endif // !defined(AFX_SHA256_H__63B9CDF2_E75F_4101_B410_BD3DF2B8DA7B__INCLUDED_)