Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00020 #include "lib_crypt.h"
00021 #include "hal_aes.h"
00022 #include "memdefs.h"
00023
00037 static uint8_t aes_counter[16];
00038
00039 void lib_crypt_init(uint8_t * key, const uint8_t * init_counter)
00040 {
00041 hal_aes_setup(false, ECB, key, NULL);
00042
00043 if(init_counter)
00044 {
00045 lib_crypt_set_counter(init_counter);
00046 }
00047 }
00048
00049 void lib_crypt_set_counter(const uint8_t * counter)
00050 {
00051 uint8_t i;
00052 for(i=0;i<16;i++)
00053 {
00054 aes_counter[i] = counter[i];
00055 }
00056 }
00057
00058 void lib_crypt(uint8_t * dest_buf, const uint8_t * src_buf, uint8_t length,const uint8_t * ls5b_value)
00059 {
00060 uint8_t i;
00061 uint8_t encr_buffer[16];
00062
00063
00064 for(i=0;i<5;i++)
00065 {
00066 aes_counter[i] = ls5b_value[i];
00067 }
00068
00069
00070 hal_aes_crypt(encr_buffer,aes_counter);
00071
00072
00073 for(i=0;i<length; i++)
00074 {
00075 dest_buf[i] = src_buf[i] ^ encr_buffer[i];
00076 }
00077 }