?? shaex.cpp
字號:
/********************************************************************
Copyright 2006-2008 ZHANG Luduo. All Rights Reserved.
Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose is hereby granted without fee,
provided that the above copyright notice appear in all copies and
that both that copyright notice and this permission notice appear
in supporting documentation.
********************************************************************/
/*
代碼說明 :
SHA算法, 160, 224, 256, 384, 512位
聯系方式:
作者 - 張魯奪
MSN - zhangluduo@msn.com
Email - zhangluduo@163.com
QQ群 - 34064264, 56918155
為所有愛我的人和我愛的人努力!
*/
#include "StdAfx.h"
#include "SHAEx.h"
SHAEx::SHAEx()
{
}
SHAEx::SHAEx(SHAEx::SHA_BITS ShaBits)
{
m_ShaBits = ShaBits;
}
SHAEx::~SHAEx()
{
}
void SHAEx::Init()
{
switch(m_ShaBits)
{
case BITS160:
m_SHA1.SHA1Reset(&m_Context1);
break;
case BITS224:
sha2_starts(&m_Context2, 1);
break;
case BITS256:
sha2_starts(&m_Context2, 0);
break;
case BITS384:
sha4_starts(&m_Context4, 1);
break;
case BITS512:
sha4_starts(&m_Context4, 0);
break;
}
}
void SHAEx::Init(SHA_BITS ShaBits)
{
m_ShaBits = ShaBits;
Init();
}
void SHAEx::Update(unsigned char pData[], int Len)
{
switch(m_ShaBits)
{
case BITS160:
m_SHA1.SHA1Input(&m_Context1, pData, Len);
break;
case BITS224:
sha2_update(&m_Context2, pData, Len);
break;
case BITS256:
sha2_update(&m_Context2, pData, Len);
break;
case BITS384:
sha4_update(&m_Context4, pData, Len);
break;
case BITS512:
sha4_update(&m_Context4, pData, Len);
break;
}
}
void SHAEx::Finish(unsigned char result[])
{
switch(m_ShaBits)
{
case BITS160:
m_SHA1.SHA1Result(&m_Context1, result);
break;
case BITS224:
sha2_finish(&m_Context2, result);
break;
case BITS256:
sha2_finish(&m_Context2, result);
break;
case BITS384:
sha4_finish(&m_Context4, result);
break;
case BITS512:
sha4_finish(&m_Context4, result);
break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -