W801_SDK_dev_env/demo/wm_crypt_demo.c
2023-03-08 08:23:45 +01:00

100 lines
2.2 KiB
C

/*****************************************************************************
*
* File Name : wm_crypt_demo.c
*
* Description: crypt demo function
*
* Copyright (c) 2014 Winner Micro Electronic Design Co., Ltd.
* All rights reserved.
*
* Author : wangmin
*
* Date : 2014-6-2
*****************************************************************************/
#include <string.h>
#include "wm_include.h"
#include "wm_crypto.h"
#if DEMO_ENCRYPT
int crypt_demo(char *buf)
{
u8 iv[16];
u8 dat[24];
u8 key[16]="abcdefghijklmnop";
u8 plain[16]="0123456789ABCDEF";
int i;
int len = 16;
for(i=0;i<16;i++) iv[i]=i;
memset(dat, 0, 16);
MEMCPY(dat, plain, sizeof(plain));
/******start AES 128 En/Decrypt********/
printf("---start AES128:\n");
if (aes_128_cbc_encrypt(key, iv, dat, sizeof(plain))){
printf("Encrypted Failed\n");
return WM_FAILED;
}
else{
printf("Encrypted OK:\n");
for(i=0; i<len; i++) printf("%x", dat[i]);
printf("\n");
}
if(aes_128_cbc_decrypt(key, iv, dat, sizeof(plain))){
printf("Decrypt failed\n");
return WM_FAILED;
}else{
printf("Decrypted OK:\n");
for(i=0; i<len; i++) printf("%x", dat[i]);
printf("\n");
}
/******start RC4********/
printf("\n----start RC4:\n");
rc4(key, sizeof(key), plain, sizeof(plain));
printf("Encrypted OK:\n");
for(i=0; i<sizeof(plain); i++) printf("%x", plain[i]);
printf("\n");
rc4(key, sizeof(key),plain, sizeof(plain));
printf("Decrypted OK:\n");
for(i=0; i<sizeof(plain); i++) printf("%x", plain[i]);
printf("\n");
/******start HMAC MD5********/
printf("\n---start HMAC MD5:\n");
memset(dat, 0, sizeof(dat));
if(hmac_md5(key, sizeof(key), plain, sizeof(plain), dat)){
printf("Caculated failed\n");
return WM_FAILED;
}else{
printf("HMAC MD5: \n");
for(i=0; i<len; i++) printf("%x", dat[i]);
printf("\n");
}
/******start MD5********/
printf("\n----start MD5:\n");
memset(dat, 0, sizeof(dat));
md5(plain, sizeof(plain),dat);
printf("MD5: \n");
for(i=0; i<len; i++) printf("%x", dat[i]);
printf("\n");
/******start SHA1********/
printf("\n---start SHA1:\n");
len = 20;
memset(dat, 0, sizeof(dat));
sha1(plain, sizeof(plain),dat);
printf("SHA1: \n");
for(i=0; i<len; i++) printf("%x", dat[i]);
printf("\n");
return WM_SUCCESS;;
}
#endif