Harald Welte | 8bd9d5d | 2023-05-28 09:36:50 +0200 | [diff] [blame] | 1 | #pragma once |
| 2 | #include <stdint.h> |
| 3 | |
| 4 | /* low-level functions */ |
| 5 | |
| 6 | int tuak_f1(const uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, const uint8_t *_rand, |
| 7 | const uint8_t *sqn, const uint8_t *amf, uint8_t *mac_a, uint8_t mac_a_len_bytes, |
| 8 | unsigned int keccac_iterations); |
| 9 | |
| 10 | int tuak_f1star(const uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, const uint8_t *_rand, |
| 11 | const uint8_t *sqn, const uint8_t *amf, uint8_t *mac_s, uint8_t mac_s_len_bytes, |
| 12 | unsigned int keccac_iterations); |
| 13 | |
| 14 | int tuak_f2345(const uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, |
| 15 | const uint8_t *_rand, uint8_t *res, uint8_t res_len_bytes, |
| 16 | uint8_t *ck, uint8_t ck_len_bytes, |
| 17 | uint8_t *ik, uint8_t ik_len_bytes, uint8_t *ak, unsigned int keccac_iterations); |
| 18 | |
| 19 | int tuak_f5star(const uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, |
| 20 | const uint8_t *_rand, uint8_t *ak, unsigned int keccac_iterations); |
| 21 | |
| 22 | /* high-level API */ |
| 23 | |
| 24 | void tuak_set_keccak_iterations(unsigned int i); |
| 25 | |
| 26 | void tuak_generate(const uint8_t *opc, const uint8_t *amf, const uint8_t *k, uint8_t k_len_bytes, |
| 27 | const uint8_t *sqn, const uint8_t *_rand, uint8_t *autn, uint8_t *ik, |
| 28 | uint8_t *ck, uint8_t *res, size_t *res_len); |
| 29 | |
| 30 | int tuak_auts(const uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, |
| 31 | const uint8_t *_rand, const uint8_t *auts, uint8_t *sqn); |
| 32 | |
| 33 | int tuak_opc_gen(uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, const uint8_t *op); |