密码算法测试向量——SHA系列
目录
//杂凑算法的测试向量, 如数据杂凑, HMAC等
typedef struct hash_test_vector_st
{
char * inf; //测试向量的附加信息说明
int alg; //杂凑算法
int mod; //模式, 如数据杂凑, HMAC
int klen; //密钥字节长度
char * key; //密钥
int mlen; //消息字节长度
char * msg; //消息
int mdlen; //MAC 字节长度
char * md; //MAC
}HashTV;//杂凑算法的测试向量
SHA1测试向量
HashTV sha1hashtv[] =
{
{/*测试向量0 */
/*inf*/ (char*)"NIST提供的测试向量", SHA1, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 3, (char*)"616263",
/*md */ 20, (char*)"A9993E364706816A BA3E25717850C26C 9CD0D89D",
},
{/*测试向量1 */
/*inf*/ (char*)"NIST提供的测试向量", SHA1, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 56, (char*)"6162636462636465 6364656664656667 6566676866676869 6768696A68696A6B"
/* */ "696A6B6C6A6B6C6D 6B6C6D6E6C6D6E6F 6D6E6F706E6F7071",
/*md */ 20, (char*)"84983E441C3BD26E BAAE4AA1F95129E5 E54670F1",
},
};
SHA224测试向量
HashTV sha224hashtv[] =
{
{/*测试向量2 */
/*inf*/ (char*)"NIST提供的测试向量", SHA224, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 3, (char*)"616263",
/*md */ 28, (char*)"23097D223405D822 8642A477BDA255B3 2AADBCE4BDA0B3F7 E36C9DA7",
},
{/*测试向量3 */
/*inf*/ (char*)"NIST提供的测试向量", SHA224, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 56, (char*)"6162636462636465 6364656664656667 6566676866676869 6768696A68696A6B"
/* */ "696A6B6C6A6B6C6D 6B6C6D6E6C6D6E6F 6D6E6F706E6F7071",
/*md */ 28, (char*)"75388B16512776CC 5DBA5DA1FD890150 B0C6455CB4F58B19 52522525",
},
};
SHA256测试向量
HashTV sha256hashtv[] =
{
{/*测试向量4 */
/*inf*/ (char*)"NIST提供的测试向量", SHA256, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 3, (char*)"616263",
/*md */ 32, (char*)"BA7816BF8F01CFEA 414140DE5DAE2223 B00361A396177A9C B410FF61F20015AD",
},
{/*测试向量5 */
/*inf*/ (char*)"NIST提供的测试向量", SHA256, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 56, (char*)"6162636462636465 6364656664656667 6566676866676869 6768696A68696A6B"
/* */ "696A6B6C6A6B6C6D 6B6C6D6E6C6D6E6F 6D6E6F706E6F7071",
/*md */ 32, (char*)"248D6A61D20638B8 E5C026930C3E6039 A33CE45964FF2167 F6ECEDD419DB06C1",
},
};
SHA384测试向量
HashTV sha384hashtv[] =
{
{/*测试向量6 */
/*inf*/ (char*)"NIST提供的测试向量", SHA384, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 3, (char*)"616263",
/*md */ 48, (char*)"CB00753F45A35E8B B5A03D699AC65007 272C32AB0EDED163 1A8B605A43FF5BED"
/* */ "8086072BA1E7CC23 58BAECA134C825A7",
},
{/*测试向量7 */
/*inf*/ (char*)"NIST提供的测试向量", SHA384, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/112, (char*)"6162636465666768 6263646566676869 636465666768696A 6465666768696A6B"
/* */ "65666768696A6B6C 666768696A6B6C6D 6768696A6B6C6D6E 68696A6B6C6D6E6F"
/* */ "696A6B6C6D6E6F70 6A6B6C6D6E6F7071 6B6C6D6E6F707172 6C6D6E6F70717273"
/* */ "6D6E6F7071727374 6E6F707172737475",
/*md */ 48, (char*)"09330C33F71147E8 3D192FC782CD1B47 53111B173B3B05D2 2FA08086E3B0F712"
/* */ "FCC7C71A557E2DB9 66C3E9FA91746039",
},
};
SHA512测试向量
HashTV sha512hashtv[] =
{
{/*测试向量8 */
/*inf*/ (char*)"NIST提供的测试向量", SHA512, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/ 3, (char*)"616263",
/*md */ 64, (char*)"DDAF35A193617ABA CC417349AE204131 12E6FA4E89A97EA2 0A9EEEE64B55D39A"
/* */ "2192992A274FC1A8 36BA3C23A3FEEBBD 454D4423643CE80E 2A9AC94FA54CA49F",
},
{/*测试向量9 */
/*inf*/ (char*)"NIST提供的测试向量", SHA512, 0,
/*Key*/ 0, (char*)NULL,
/*msg*/112, (char*)"6162636465666768 6263646566676869 636465666768696A 6465666768696A6B"
/* */ "65666768696A6B6C 666768696A6B6C6D 6768696A6B6C6D6E 68696A6B6C6D6E6F"
/* */ "696A6B6C6D6E6F70 6A6B6C6D6E6F7071 6B6C6D6E6F707172 6C6D6E6F70717273"
/* */ "6D6E6F7071727374 6E6F707172737475",
/*md */ 64, (char*)"8E959B75DAE313DA 8CF4F72814FC143F 8F7779C6EB9F7FA1 7299AEADB6889018"
/* */ "501D289E4900F7E4 331B99DEC4B5433A C7D329EEB6DD2654 5E96E55B874BE909",
},
};

浙公网安备 33010602011771号