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