• 大小: 969KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: sm3  

资源简介

实现了sm3并已经调试成功,还有各个测试程序!十分全面!!

资源截图

代码片段和文件信息

/*
 * SM3 Hash alogrith 
 * thanks to Xyssl
 * author:goldboar
 * email:goldboar@163.com
 * 2011-10-26
 */

//Testing data from SM3 Standards
//http://www.oscca.gov.cn/News/201012/News_1199.htm 
// Sample 1
// Input:“abc“  
// Output:66c7f0f4 62eeedd9 d1f2d46b dc10e4e2 4167c487 5cf2f7a2 297da02b 8f4ba8e0

// Sample 2 
// Input:“abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd“
// Outpuf:debe9ff9 2275b8a1 38604889 c18e5a4d 6fdb70e5 387e5765 293dcba3 9c0c5732

#include “sm3.h“
#include 
#include 

/*
 * 32-bit integer manipulation macros (big endian)
 */
#ifndef GET_ULONG_BE
#define GET_ULONG_BE(nbi)                             \
{                                                       \
    (n) = ( (unsigned long) (b)[(i)    ] << 24 )        \
        | ( (unsigned long) (b)[(i) + 1] << 16 )        \
        | ( (unsigned long) (b)[(i) + 2] <<  8 )        \
        | ( (unsigned long) (b)[(i) + 3]       );       \
}
#endif

#ifndef PUT_ULONG_BE
#define PUT_ULONG_BE(nbi)                             \
{                                                       \
    (b)[(i)    ] = (unsigned char) ( (n) >> 24 );       \
    (b)[(i) + 1] = (unsigned char) ( (n) >> 16 );       \
    (b)[(i) + 2] = (unsigned char) ( (n) >>  8 );       \
    (b)[(i) + 3] = (unsigned char) ( (n)       );       \
}
#endif

/*
 * SM3 context setup
 */
void sm3_starts( sm3_context *ctx )
{
    ctx->total[0] = 0;
    ctx->total[1] = 0;

    ctx->state[0] = 0x7380166F;
    ctx->state[1] = 0x4914B2B9;
    ctx->state[2] = 0x172442D7;
    ctx->state[3] = 0xDA8A0600;
    ctx->state[4] = 0xA96F30BC;
    ctx->state[5] = 0x163138AA;
    ctx->state[6] = 0xE38DEE4D;
    ctx->state[7] = 0xB0FB0E4E;

}

static void sm3_process( sm3_context *ctx unsigned char data[64] )
{
    unsigned long SS1 SS2 TT1 TT2 W[68]W1[64];
    unsigned long A B C D E F G H;
unsigned long T[64];
unsigned long Temp1Temp2Temp3Temp4Temp5;
int j;
#ifdef _DEBUG
int i;
#endif

//  for(j=0; j < 68; j++)
//  W[j] = 0;
//  for(j=0; j < 64; j++)
//  W1[j] = 0;

for(j = 0; j < 16; j++)
T[j] = 0x79CC4519;
for(j =16; j < 64; j++)
T[j] = 0x7A879D8A;

    GET_ULONG_BE( W[ 0] data  0 );
    GET_ULONG_BE( W[ 1] data  4 );
    GET_ULONG_BE( W[ 2] data  8 );
    GET_ULONG_BE( W[ 3] data 12 );
    GET_ULONG_BE( W[ 4] data 16 );
    GET_ULONG_BE( W[ 5] data 20 );
    GET_ULONG_BE( W[ 6] data 24 );
    GET_ULONG_BE( W[ 7] data 28 );
    GET_ULONG_BE( W[ 8] data 32 );
    GET_ULONG_BE( W[ 9] data 36 );
    GET_ULONG_BE( W[10] data 40 );
    GET_ULONG_BE( W[11] data 44 );
    GET_ULONG_BE( W[12] data 48 );
    GET_ULONG_BE( W[13] data 52 );
    GET_ULONG_BE( W[14] data 56 );
    GET_ULONG_BE( W[15] data 60 );

#ifdef _DEBUG 
printf(“Message with padding:\n“);
for(i=0; i< 8; i++)
printf(“%08x “W[i]);
printf(“\n“);
for(i=8; i< 16;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-11-19 14:03  sm3\
     目录           0  2012-11-19 15:21  sm3\Debug\
     文件        5432  2012-11-19 15:21  sm3\Debug\BuildLog.htm
     文件          65  2012-11-19 15:21  sm3\Debug\mt.dep
     文件       16311  2012-11-18 22:21  sm3\Debug\sm3.obj
     文件      474112  2012-11-19 15:21  sm3\Debug\sm3test.exe
     文件         406  2012-11-18 21:37  sm3\Debug\sm3test.exe.embed.manifest
     文件         472  2012-11-18 21:37  sm3\Debug\sm3test.exe.embed.manifest.res
     文件         381  2012-11-19 15:21  sm3\Debug\sm3test.exe.intermediate.manifest
     文件     1054956  2012-11-19 15:21  sm3\Debug\sm3test.ilk
     文件        6954  2012-11-18 21:37  sm3\Debug\sm3test.obj
     文件      182796  2012-11-18 21:38  sm3\Debug\sm3test.pch
     文件     2149376  2012-11-19 15:21  sm3\Debug\sm3test.pdb
     文件       33792  2012-11-18 22:21  sm3\Debug\vc60.idb
     文件       53248  2012-11-18 22:21  sm3\Debug\vc60.pdb
     文件       35840  2012-11-18 21:37  sm3\Debug\vc90.idb
     文件       61440  2012-11-18 21:37  sm3\Debug\vc90.pdb
     文件       10652  2012-11-18 21:37  sm3\sm3.c
     文件        3017  2012-11-18 21:37  sm3\sm3.h
     文件         846  2012-11-18 21:37  sm3\sm3test.c
     文件        3581  2012-11-18 21:37  sm3\sm3test.dsp
     文件         539  2012-11-18 21:37  sm3\sm3test.dsw
     文件      494592  2012-11-19 23:27  sm3\sm3test.ncb
     文件       53760  2012-11-18 22:21  sm3\sm3test.opt
     文件        1161  2012-11-18 22:21  sm3\sm3test.plg
     文件         879  2012-11-19 16:51  sm3\sm3test.sln
     文件       12800  2012-11-19 23:27  sm3\sm3test.suo
     文件        5346  2012-11-19 15:21  sm3\sm3test.vcproj
     文件        1423  2012-11-18 21:37  sm3\sm3test.vcproj.Mounty_FSC-PC.Mounty_FSC.user
     文件        1419  2012-11-19 23:27  sm3\sm3test.vcproj.xiaodong-PC.xiaodong.user

评论

共有 条评论