593 lines
13 KiB
C
593 lines
13 KiB
C
#include <string.h>
|
||
#include "wm_include.h"
|
||
#include "wm_crypto_hard.h"
|
||
#include "wm_demo.h"
|
||
|
||
|
||
#if DEMO_ENCRYPT
|
||
|
||
void RNG_hard_demo(void)
|
||
{
|
||
u8 *out = NULL;
|
||
u16 i;
|
||
|
||
out = tls_mem_alloc(1000);
|
||
|
||
tls_crypto_random_init(0xFDA3C97A, CRYPTO_RNG_SWITCH_16);
|
||
tls_crypto_random_bytes(out, 10);
|
||
|
||
printf("RNG out:\n");
|
||
for(i=0; i<10; i++)
|
||
{
|
||
printf("%X ", out[i]);
|
||
}
|
||
printf("\n");
|
||
|
||
tls_crypto_random_bytes(out, 20);
|
||
|
||
printf("RNG out:\n");
|
||
for(i=0; i<20; i++)
|
||
{
|
||
printf("%X ", out[i]);
|
||
}
|
||
printf("\n");
|
||
|
||
tls_crypto_random_stop();
|
||
|
||
tls_mem_free(out);
|
||
}
|
||
|
||
int rc4_hard_demo(void)
|
||
{
|
||
psCipherContext_t ctx;
|
||
u8 *in = NULL;
|
||
u8 *out1 = NULL;
|
||
u8 *out2 = NULL;
|
||
u8 *key = NULL;
|
||
int i;
|
||
|
||
tls_crypto_init();
|
||
in = tls_mem_alloc(1000);
|
||
out1 = tls_mem_alloc(1000);
|
||
out2 = tls_mem_alloc(1000);
|
||
key = tls_mem_alloc(16);
|
||
|
||
if((in==NULL) || (out1==NULL) || (out2==NULL) || (key==NULL))
|
||
{
|
||
printf("malloc err\n");
|
||
goto OUT;
|
||
}
|
||
|
||
for(i=0; i<1000; i++)
|
||
{
|
||
in[i] = rand();
|
||
}
|
||
|
||
for(i=0; i<16; i++)
|
||
{
|
||
key[i] = rand();
|
||
}
|
||
|
||
memset(out1, 0, 1000);
|
||
memset(out2, 0, 1000);
|
||
|
||
if(ERR_OK != tls_crypto_rc4_init(&ctx, key, 16))
|
||
{
|
||
printf("rc4 init err\n");
|
||
goto OUT;
|
||
}
|
||
tls_crypto_rc4(&ctx, in, out1, 1000);
|
||
tls_crypto_rc4(&ctx, out1, out2, 1000);
|
||
|
||
if(memcmp(in, out2, 1000))
|
||
{
|
||
printf("rc4 test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("rc4 test success\n");
|
||
}
|
||
|
||
OUT:
|
||
if(in != NULL)
|
||
tls_mem_free(in);
|
||
if(out1 != NULL)
|
||
tls_mem_free(out1);
|
||
if(out2 != NULL)
|
||
tls_mem_free(out2);
|
||
if(key != NULL)
|
||
tls_mem_free(key);
|
||
|
||
return 0;
|
||
}
|
||
|
||
|
||
int aes_hard_demo(void)
|
||
{
|
||
psCipherContext_t ctx;
|
||
u8 *in = NULL;
|
||
u8 *out1 = NULL;
|
||
u8 *out2 = NULL;
|
||
u8 *key = NULL;
|
||
u8 *iv = NULL;
|
||
int i;
|
||
|
||
tls_crypto_init();
|
||
|
||
in = tls_mem_alloc(1024); //AES 必须是16的整数倍,否则会出错
|
||
out1 = tls_mem_alloc(1024);
|
||
out2 = tls_mem_alloc(1024);
|
||
key = tls_mem_alloc(16);
|
||
iv = tls_mem_alloc(16);
|
||
|
||
if((in==NULL) || (out1==NULL) || (out2==NULL) || (key==NULL) || (iv==NULL))
|
||
{
|
||
printf("malloc err\n");
|
||
goto OUT;
|
||
}
|
||
|
||
for(i=0; i<1024; i++)
|
||
{
|
||
in[i] = rand();
|
||
}
|
||
|
||
for(i=0; i<16; i++)
|
||
{
|
||
key[i] = rand();
|
||
iv[i] = rand();
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_aes_init(&ctx, iv, key, 16, CRYPTO_MODE_ECB);
|
||
tls_crypto_aes_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_aes_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("aes ecb test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("aes ecb test success\n");
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_aes_init(&ctx, iv, key, 16, CRYPTO_MODE_CBC);
|
||
tls_crypto_aes_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_aes_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("aes cbc test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("aes cbc test success\n");
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_aes_init(&ctx, iv, key, 16, CRYPTO_MODE_CTR);
|
||
tls_crypto_aes_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_aes_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("aes ctr test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("aes ctr test success\n");
|
||
}
|
||
|
||
OUT:
|
||
if(in != NULL)
|
||
tls_mem_free(in);
|
||
if(out1 != NULL)
|
||
tls_mem_free(out1);
|
||
if(out2 != NULL)
|
||
tls_mem_free(out2);
|
||
if(key != NULL)
|
||
tls_mem_free(key);
|
||
if(iv != NULL)
|
||
tls_mem_free(iv);
|
||
|
||
return 0;
|
||
|
||
}
|
||
|
||
|
||
int des_hard_demo(void)
|
||
{
|
||
psCipherContext_t ctx;
|
||
u8 *in = NULL;
|
||
u8 *out1 = NULL;
|
||
u8 *out2 = NULL;
|
||
u8 *key = NULL;
|
||
u8 *iv = NULL;
|
||
int i;
|
||
|
||
tls_crypto_init();
|
||
|
||
in = tls_mem_alloc(1024);
|
||
out1 = tls_mem_alloc(1024);
|
||
out2 = tls_mem_alloc(1024);
|
||
key = tls_mem_alloc(8);
|
||
iv = tls_mem_alloc(8);
|
||
|
||
if((in==NULL) || (out1==NULL) || (out2==NULL) || (key==NULL) || (iv==NULL))
|
||
{
|
||
printf("malloc err\n");
|
||
goto OUT;
|
||
}
|
||
|
||
for(i=0; i<1024; i++)
|
||
{
|
||
in[i] = rand();
|
||
}
|
||
|
||
for(i=0; i<8; i++)
|
||
{
|
||
key[i] = rand();
|
||
iv[i] = rand();
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_des_init(&ctx, iv, key, 8, CRYPTO_MODE_ECB);
|
||
tls_crypto_des_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_des_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("des ecb test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("des ecb test success\n");
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_des_init(&ctx, iv, key, 8, CRYPTO_MODE_CBC);
|
||
tls_crypto_des_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_des_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("des cbc test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("des cbc test success\n");
|
||
}
|
||
|
||
OUT:
|
||
if(in != NULL)
|
||
tls_mem_free(in);
|
||
if(out1 != NULL)
|
||
tls_mem_free(out1);
|
||
if(out2 != NULL)
|
||
tls_mem_free(out2);
|
||
if(key != NULL)
|
||
tls_mem_free(key);
|
||
if(iv != NULL)
|
||
tls_mem_free(iv);
|
||
|
||
return 0;
|
||
|
||
}
|
||
|
||
|
||
int des3_hard_demo(void)
|
||
{
|
||
psCipherContext_t ctx;
|
||
u8 *in = NULL;
|
||
u8 *out1 = NULL;
|
||
u8 *out2 = NULL;
|
||
u8 *key = NULL;
|
||
u8 *iv = NULL;
|
||
int i;
|
||
|
||
tls_crypto_init();
|
||
|
||
in = tls_mem_alloc(1024);
|
||
out1 = tls_mem_alloc(1024);
|
||
out2 = tls_mem_alloc(1024);
|
||
key = tls_mem_alloc(24);
|
||
iv = tls_mem_alloc(8);
|
||
|
||
if((in==NULL) || (out1==NULL) || (out2==NULL) || (key==NULL) || (iv==NULL))
|
||
{
|
||
printf("malloc err\n");
|
||
goto OUT;
|
||
}
|
||
|
||
for(i=0; i<1024; i++)
|
||
{
|
||
in[i] = rand();
|
||
}
|
||
|
||
for(i=0; i<24; i++)
|
||
{
|
||
key[i] = rand();
|
||
}
|
||
|
||
for(i=0; i<8; i++)
|
||
{
|
||
iv[i] = rand();
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_3des_init(&ctx, iv, key, 24, CRYPTO_MODE_ECB);
|
||
tls_crypto_3des_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_3des_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("3des ecb test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("3des ecb test success\n");
|
||
}
|
||
|
||
memset(out1, 0, 1024);
|
||
memset(out2, 0, 1024);
|
||
tls_crypto_3des_init(&ctx, iv, key, 24, CRYPTO_MODE_CBC);
|
||
tls_crypto_3des_encrypt_decrypt(&ctx, in, out1, 1024, CRYPTO_WAY_ENCRYPT);
|
||
tls_crypto_3des_encrypt_decrypt(&ctx, out1, out2, 1024, CRYPTO_WAY_DECRYPT);
|
||
if(memcmp(in, out2, 1024))
|
||
{
|
||
printf("3des cbc test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("3des cbc test success\n");
|
||
}
|
||
|
||
OUT:
|
||
if(in != NULL)
|
||
tls_mem_free(in);
|
||
if(out1 != NULL)
|
||
tls_mem_free(out1);
|
||
if(out2 != NULL)
|
||
tls_mem_free(out2);
|
||
if(key != NULL)
|
||
tls_mem_free(key);
|
||
if(iv != NULL)
|
||
tls_mem_free(iv);
|
||
|
||
return 0;
|
||
|
||
}
|
||
|
||
|
||
int crc_hard_demo(void)
|
||
{
|
||
u32 crckey = 0xFFFFFFFF;
|
||
psCrcContext_t ctx;
|
||
u8 *in = NULL;
|
||
int i;
|
||
u32 crcvalue = 0;
|
||
|
||
tls_crypto_init();
|
||
|
||
in = tls_mem_alloc(1024);
|
||
if(in==NULL)
|
||
{
|
||
printf("malloc err\n");
|
||
goto OUT;
|
||
}
|
||
|
||
for(i=0; i<1024; i++)
|
||
{
|
||
in[i] = rand();
|
||
}
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_8, 0);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_8 normal value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_8, INPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_8 INPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_8, OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_8 OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_8, INPUT_REFLECT | OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_8 INPUT_REFLECT | OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_MODBUS, 0);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_MODBUS normal value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_MODBUS, INPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_MODBUS INPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_MODBUS, OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_MODBUS OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_MODBUS, INPUT_REFLECT | OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_MODBUS INPUT_REFLECT | OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_CCITT, 0);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_CCITT normal value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_CCITT, INPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_CCITT INPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_CCITT, OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_CCITT OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_16_CCITT, INPUT_REFLECT | OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_16_CCITT INPUT_REFLECT | OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_32, 0);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_32 normal value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_32, INPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_32 INPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_32, OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_32 OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
tls_crypto_crc_init(&ctx, crckey, CRYPTO_CRC_TYPE_32, INPUT_REFLECT | OUTPUT_REFLECT);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_update(&ctx, in, 1024);
|
||
tls_crypto_crc_final(&ctx, &crcvalue);
|
||
printf("CRYPTO_CRC_TYPE_32 INPUT_REFLECT | OUTPUT_REFLECT value:0x%08X\n", crcvalue);
|
||
|
||
OUT:
|
||
if(in != NULL)
|
||
tls_mem_free(in);
|
||
|
||
return 0;
|
||
}
|
||
|
||
int md5_hard_demo(void)
|
||
{
|
||
psDigestContext_t ctx;
|
||
u8 md5hash[16];
|
||
u8 *md5in1 = (u8 *)"abacdefghgjklmno1234";
|
||
u8 *md5in2 = (u8 *)"1234567890123456abcd";
|
||
u8 md5real[16]={0xD6, 0xEB, 0xD1, 0x1B, 0x0D, 0x42, 0x84, 0xE8,
|
||
0x52, 0x74, 0xA6, 0xA8, 0x2A, 0x3B, 0x2A, 0x12,};
|
||
|
||
tls_crypto_init();
|
||
|
||
tls_crypto_md5_init(&ctx);
|
||
tls_crypto_md5_update(&ctx, md5in1, 20);
|
||
tls_crypto_md5_update(&ctx, md5in2, 20);
|
||
tls_crypto_md5_final(&ctx, md5hash);
|
||
|
||
if(memcmp(md5hash, md5real, 16))
|
||
{
|
||
printf("md5 test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("md5 test success\n");
|
||
}
|
||
|
||
// printf("md5 hash:");
|
||
// for(int i=0; i<16; i++)
|
||
// {
|
||
// printf("0x%02X, ", md5hash[i]);
|
||
// }
|
||
// printf("\n");
|
||
|
||
return 0;
|
||
}
|
||
|
||
int sha1_hard_demo(void)
|
||
{
|
||
psDigestContext_t ctx;
|
||
u8 sha1hash[20];
|
||
u8 *sha1in1 = (u8 *)"abacdefghgjklmno1234";
|
||
u8 *sha1in2 = (u8 *)"1234567890123456abcd";
|
||
u8 sha1real[20]={0xA9, 0xED, 0x29, 0x56, 0x83, 0x6A, 0x59, 0x22, 0x27, 0x70,
|
||
0x87, 0x52, 0xDC, 0xB5, 0x1D, 0x2B, 0xBA, 0x93, 0x40, 0xA6,};
|
||
|
||
tls_crypto_init();
|
||
|
||
tls_crypto_sha1_init(&ctx);
|
||
tls_crypto_sha1_update(&ctx, sha1in1, 20);
|
||
tls_crypto_sha1_update(&ctx, sha1in2, 20);
|
||
tls_crypto_sha1_final(&ctx, sha1hash);
|
||
|
||
if(memcmp(sha1hash, sha1real, 16))
|
||
{
|
||
printf("sha1 test fail\n");
|
||
}
|
||
else
|
||
{
|
||
printf("sha1 test success\n");
|
||
}
|
||
|
||
// printf("sha1 hash:");
|
||
// for(int i=0; i<20; i++)
|
||
// {
|
||
// printf("0x%02X, ", sha1hash[i]);
|
||
// }
|
||
// printf("\n");
|
||
return 0;
|
||
}
|
||
|
||
|
||
int crypt_hard_demo(void)
|
||
{
|
||
RNG_hard_demo();
|
||
rc4_hard_demo();
|
||
aes_hard_demo();
|
||
des_hard_demo();
|
||
des3_hard_demo();
|
||
crc_hard_demo();
|
||
md5_hard_demo();
|
||
sha1_hard_demo();
|
||
return 0;
|
||
}
|
||
|
||
#endif
|
||
|
||
|