blob: 1a808224e954cb1eb143e47be8ab3b5d73032c95 [file] [log] [blame]
Harald Welte8bd9d5d2023-05-28 09:36:50 +02001#pragma once
2#include <stdint.h>
3
4/* low-level functions */
5
6int 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
10int 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
14int 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
19int 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
24void tuak_set_keccak_iterations(unsigned int i);
25
26void 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
30int 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
33int tuak_opc_gen(uint8_t *opc, const uint8_t *k, uint8_t k_len_bytes, const uint8_t *op);