00001
00011 #ifndef _HSU_H_
00012 #define _HSU_H_
00013
00014 #include "me_mic.h"
00015
00038 void hsu_init(void);
00039
00054 uint64_t hsu_aes_cmac(uint32_t *key, int nb_elem, uint32_t addr[], int len[]);
00055
00069 bool hsu_michael_init(struct mic_calc *mic_calc, uint32_t *mic_key,
00070 uint32_t *aad);
00071
00086 bool hsu_michael_calc(struct mic_calc *mic_calc, uint32_t data,
00087 uint32_t data_len);
00088
00100 bool hsu_michael_end(struct mic_calc *mic_calc);
00101
00113 bool hsu_ip_checksum(uint32_t addr, uint16_t len, uint16_t *checksum);
00114
00131 bool hsu_sha1(int nb_elem, const uint8_t *addr[], const size_t *len, uint32_t *sha);
00132
00149 bool hsu_sha224(int nb_elem, const uint8_t *addr[], const size_t *len, uint32_t *sha);
00150
00167 bool hsu_sha256(int nb_elem, const uint8_t *addr[], const size_t *len, uint32_t *sha);
00168
00185 bool hsu_sha384(int nb_elem, const uint8_t *addr[], const size_t *len, uint32_t *sha);
00186
00203 bool hsu_sha512(int nb_elem, const uint8_t *addr[], const size_t *len, uint32_t *sha);
00204
00224 bool hsu_hmac_sha1(const uint8_t key[], const size_t key_len, int nb_elem,
00225 const uint8_t *addr[], const size_t *len, uint32_t *mac);
00226
00246 bool hsu_hmac_sha224(const uint8_t key[], const size_t key_len, int nb_elem,
00247 const uint8_t *addr[], const size_t *len, uint32_t *mac);
00248
00268 bool hsu_hmac_sha256(const uint8_t key[], const size_t key_len, int nb_elem,
00269 const uint8_t *addr[], const size_t *len, uint32_t *mac);
00270
00290 bool hsu_hmac_sha384(const uint8_t key[], const size_t key_len, int nb_elem,
00291 const uint8_t *addr[], const size_t *len, uint32_t *mac);
00292
00312 bool hsu_hmac_sha512(const uint8_t key[], const size_t key_len, int nb_elem,
00313 const uint8_t *addr[], const size_t *len, uint32_t *mac);
00314
00318 #endif