1/*
2 * Copyright (c) 2023 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/**
17 * @addtogroup HdfHuks
18 * @{
19 *
20 * @brief Provides standard driver APIs for the OpenHarmony Universal KeyStore (HUKS).
21 *
22 * The HUKS driver APIs define standard interfaces of the HUKS Core and provide
23 * a unified driver interface for the HUKS service.
24 * You can use these APIs to implement key lifecycle management, including key
25 * generation, key import and export, key operations, key access control, and
26 * key attestation.
27 *
28 * @since 4.0
29 */
30
31 /**
32 * @file IHuksTypes.idl
33 *
34 * @brief Defines the structs used in HUKS driver interfaces.
35 *
36 * @since 4.0
37 */
38
39package ohos.hdi.huks.v1_0;
40
41/**
42 * @brief Defines the HUKS binary data struct, which encapsulates parameters
43 * such as the key material and key properties.
44 *
45 * @since 4.0
46 * @version 1.0
47 */
48struct HuksBlob {
49    /**
50     * Binary data
51     */
52    unsigned char[] data;
53};
54
55/**
56 * @brief Defines the struct for the parameter set of HUKS key management interfaces.
57 *
58 * @since 4.0
59 * @version 1.0
60 */
61struct HuksParamSet {
62    /**
63     * Serialized parameter set. For details about the property set struct,
64     * see the HUKS Device Development.
65     */
66    unsigned char[] data;
67};
68
69/**
70 * @brief Enumerates the decryption scenarios using the chipset key.
71 *
72 * @since 4.0
73 * @version 1.0
74 */
75enum HuksChipsetPlatformDecryptScene {
76    /**
77     * Chipset key decryption for trusted applications in a Trusted Execution
78     * Environment (TEE).
79     */
80    HUKS_CHIPSET_PLATFORM_DECRYPT_SCENCE_TA_TO_TA = 1,
81};
82/** @} */