1/*
2 * client_hash_auth.h
3 *
4 * function definition for CA code hash auth
5 *
6 * Copyright (C) 2022 Huawei Technologies Co., Ltd.
7 *
8 * This software is licensed under the terms of the GNU General Public
9 * License version 2, as published by the Free Software Foundation, and
10 * may be copied, distributed, and modified under those terms.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 */
17
18#ifndef CLIENT_HASH_CALC_H
19#define CLIENT_HASH_CALC_H
20
21#include "tc_ns_client.h"
22#include "teek_ns_client.h"
23
24#ifdef CONFIG_CLIENT_AUTH
25#include "auth_base_impl.h"
26
27int calc_client_auth_hash(struct tc_ns_dev_file *dev_file,
28	struct tc_ns_client_context *context, struct tc_ns_session *session);
29
30#else
31
32static inline int calc_client_auth_hash(struct tc_ns_dev_file *dev_file,
33	struct tc_ns_client_context *context, struct tc_ns_session *session)
34{
35	(void)dev_file;
36	(void)context;
37	(void)session;
38	return 0;
39}
40
41#endif
42
43#ifdef CONFIG_AUTH_SUPPORT_UNAME
44#define MAX_NAME_LENGTH 256
45
46int tc_ns_get_uname(uint32_t uid, char *username, int buffer_len, uint32_t *out_len);
47#endif
48
49#ifdef CONFIG_AUTH_HASH
50int set_login_information_hash(struct tc_ns_dev_file *hash_dev_file);
51#endif
52
53#endif
54