Update sm3test.c

This commit is contained in:
Zhi Guan
2022-07-26 22:33:02 +08:00
parent 924b6c4317
commit bbd9d01e49

View File

@@ -53,8 +53,12 @@
#include <stdint.h>
#include <gmssl/sm3.h>
#include <gmssl/hex.h>
#include <gmssl/error.h>
static char *testhex[] = {
static int test_sm3(void)
{
const char *testhex[] = {
/* 0 "abc" */
"616263",
/* 1 "abcd" 16 times */
@@ -159,9 +163,9 @@ static char *testhex[] = {
"7B563B64300B0603551D0F0404030201"
"06301106096086480186F84201010404"
"03020057",
};
};
static char *dgsthex[] = {
const char *dgsthex[] = {
"66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0",
"debe9ff92275b8a138604889c18e5a4d6fdb70e5387e5765293dcba39c0c5732",
"F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A",
@@ -173,10 +177,8 @@ static char *dgsthex[] = {
"557BAD30E183559AEEC3B2256E1C7C11F870D22B165D015ACF9465B09B87B527",
"4D38D2958CA7FD2CFAE3AF04486959CF92C8EF48E8B83A05C112E739D5F181D0",
"C3B02E500A8B60B77DEDCF6F4C11BEF8D56E5CDE708C72065654FD7B2167915A",
};
};
int main(int argc, char **argv)
{
int err = 0;
char *p;
uint8_t testbuf[sizeof(testhex)/2 + 1000];
@@ -193,18 +195,29 @@ int main(int argc, char **argv)
if (memcmp(dgstbuf, dgst, sizeof(dgst)) != 0) {
int n;
printf("error calculating SM3 on %s\n", testhex[i]);
printf(" digest(corret) = ");
fprintf(stderr, "sm3 test %lu failed\n", i+1);
fprintf(stderr, "error calculating SM3 on %s\n", testhex[i]);
fprintf(stderr, " digest(corret) = ");
for (n = 0; n < sizeof(dgst); n++) {
printf("%02X", dgst[n]);
fprintf(stderr, "%02X", dgst[n]);
}
printf("\n");
printf(" digest(error) = %s\n", dgsthex[i]);
err++;
} else {
printf("sm3 test %lu ok\n", i+1);
fprintf(stderr, "\n");
fprintf(stderr, " digest(error) = %s\n", dgsthex[i]);
return -1;
}
}
return err;
printf("%s() ok\n", __FUNCTION__);
return 1;
}
int main(void)
{
if (test_sm3() != 1) goto err;
printf("%s all tests passed\n", __FILE__);
return 0;
err:
error_print();
return 1;
}