1d9f0492fSopenharmony_ci/*
2d9f0492fSopenharmony_ci* Copyright (c) 2020-2022 Huawei Device Co., Ltd.
3d9f0492fSopenharmony_ci* Licensed under the Apache License, Version 2.0 (the "License");
4d9f0492fSopenharmony_ci* you may not use this file except in compliance with the License.
5d9f0492fSopenharmony_ci* You may obtain a copy of the License at
6d9f0492fSopenharmony_ci*
7d9f0492fSopenharmony_ci*    http://www.apache.org/licenses/LICENSE-2.0
8d9f0492fSopenharmony_ci*
9d9f0492fSopenharmony_ci* Unless required by applicable law or agreed to in writing, software
10d9f0492fSopenharmony_ci* distributed under the License is distributed on an "AS IS" BASIS,
11d9f0492fSopenharmony_ci* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12d9f0492fSopenharmony_ci* See the License for the specific language governing permissions and
13d9f0492fSopenharmony_ci* limitations under the License.
14d9f0492fSopenharmony_ci*/
15d9f0492fSopenharmony_ci
16d9f0492fSopenharmony_ci#ifndef HAL_TOKEN_H
17d9f0492fSopenharmony_ci#define HAL_TOKEN_H
18d9f0492fSopenharmony_ci
19d9f0492fSopenharmony_ci#include <stdio.h>
20d9f0492fSopenharmony_ci
21d9f0492fSopenharmony_ci#ifdef __cplusplus
22d9f0492fSopenharmony_ci#if __cplusplus
23d9f0492fSopenharmony_ciextern "C" {
24d9f0492fSopenharmony_ci#endif
25d9f0492fSopenharmony_ci#endif /* __cplusplus */
26d9f0492fSopenharmony_ci
27d9f0492fSopenharmony_ci#define KIT_FRAMEWORK_UID_MAX 1000
28d9f0492fSopenharmony_ci
29d9f0492fSopenharmony_ci/**
30d9f0492fSopenharmony_ci * @brief Read token value from device.
31d9f0492fSopenharmony_ci *
32d9f0492fSopenharmony_ci * @param token the result token value, if read successfully.
33d9f0492fSopenharmony_ci * @param len length of the token.
34d9f0492fSopenharmony_ci * @returns 0 if success and get the update area token,
35d9f0492fSopenharmony_ci *          1 if success and get the pre-made token,
36d9f0492fSopenharmony_ci *         -1 if failed,
37d9f0492fSopenharmony_ci *         -2 if no pre-made token.
38d9f0492fSopenharmony_ci */
39d9f0492fSopenharmony_ciint HalReadToken(char *token, unsigned int len);
40d9f0492fSopenharmony_ci
41d9f0492fSopenharmony_ci/**
42d9f0492fSopenharmony_ci * @brief Write token value to device.
43d9f0492fSopenharmony_ci *
44d9f0492fSopenharmony_ci * @param token the token to write.
45d9f0492fSopenharmony_ci * @param len length of the token.
46d9f0492fSopenharmony_ci * @returns 0 if success, otherwise -1.
47d9f0492fSopenharmony_ci */
48d9f0492fSopenharmony_ciint HalWriteToken(const char *token, unsigned int len);
49d9f0492fSopenharmony_ci
50d9f0492fSopenharmony_ci/**
51d9f0492fSopenharmony_ci * @brief Get AcKey value from device.
52d9f0492fSopenharmony_ci *
53d9f0492fSopenharmony_ci * @param acKey the result acKey, if get successfully.
54d9f0492fSopenharmony_ci * @param len length of the acKey.
55d9f0492fSopenharmony_ci * @returns 0 if success, otherwise -1.
56d9f0492fSopenharmony_ci */
57d9f0492fSopenharmony_ciint HalGetAcKey(char *acKey, unsigned int len);
58d9f0492fSopenharmony_ci
59d9f0492fSopenharmony_ci/**
60d9f0492fSopenharmony_ci * @brief Get ProdId value from device.
61d9f0492fSopenharmony_ci *
62d9f0492fSopenharmony_ci * @param productId product IDs to be populated with.
63d9f0492fSopenharmony_ci * @param len length of the productId.
64d9f0492fSopenharmony_ci * @returns 0 if success, otherwise -1.
65d9f0492fSopenharmony_ci */
66d9f0492fSopenharmony_ciint HalGetProdId(char *productId, unsigned int len);
67d9f0492fSopenharmony_ci
68d9f0492fSopenharmony_ci/**
69d9f0492fSopenharmony_ci * @brief Get ProdKey value from device.
70d9f0492fSopenharmony_ci *
71d9f0492fSopenharmony_ci * @param productKey The productKey value
72d9f0492fSopenharmony_ci * @param len The productKey len.
73d9f0492fSopenharmony_ci * @returns 0 if success, otherwise -1.
74d9f0492fSopenharmony_ci */
75d9f0492fSopenharmony_ciint HalGetProdKey(char *productKey, unsigned int len);
76d9f0492fSopenharmony_ci
77d9f0492fSopenharmony_ci#ifdef __cplusplus
78d9f0492fSopenharmony_ci#if __cplusplus
79d9f0492fSopenharmony_ci}
80d9f0492fSopenharmony_ci#endif
81d9f0492fSopenharmony_ci#endif /* __cplusplus */
82d9f0492fSopenharmony_ci
83d9f0492fSopenharmony_ci#endif // HAL_TOKEN_H
84