1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (c) 2023 Huawei Device Co., Ltd.
4 */
5
6#ifndef _CODE_SIGN_EXT_H
7#define _CODE_SIGN_EXT_H
8
9#include <linux/xpm_types.h>
10
11#define OWNERID_SYSTEM_TAG "SYSTEM_LIB_ID"
12#define OWNERID_DEBUG_TAG  "DEBUG_LIB_ID"
13#define OWNERID_SHARED_TAG "SHARED_LIB_ID"
14#define OWNERID_COMPAT_TAG "COMPAT_LIB_ID"
15
16enum file_ownerid_type {
17	FILE_OWNERID_UNINT = 0,
18	FILE_OWNERID_SYSTEM,
19	FILE_OWNERID_APP,
20	FILE_OWNERID_DEBUG,
21	FILE_OWNERID_SHARED,
22	FILE_OWNERID_COMPAT,
23	FILE_OWNERID_MAX
24};
25
26/* process and file ownerid types need to correspond to each other */
27enum process_ownerid_type {
28	PROCESS_OWNERID_UNINIT = FILE_OWNERID_UNINT,
29	PROCESS_OWNERID_SYSTEM = FILE_OWNERID_SYSTEM,
30	PROCESS_OWNERID_APP    = FILE_OWNERID_APP,
31	PROCESS_OWNERID_DEBUG  = FILE_OWNERID_DEBUG,
32	PROCESS_OWNERID_COMPAT = FILE_OWNERID_COMPAT,
33	PROCESS_OWNERID_EXTEND,
34	PROCESS_OWNERID_MAX
35};
36
37/*
38 * code_sign_ext.c
39 */
40void code_sign_check_descriptor(const struct inode *inode,
41    const void *desc, int *ret);
42
43void code_sign_before_measurement(void *_desc, int *ret);
44
45void code_sign_after_measurement(void *_desc, int version);
46
47void code_sign_init_salt(void);
48
49void code_sign_set_ownerid(struct cs_info *cs_info, uint32_t id_type,
50	const char *id_str, uint32_t id_len);
51
52#endif /* _CODE_SIGN_H */
53