1e41f4b71Sopenharmony_ci# Basic Concepts of HUKS
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ciFamiliarity with the following concepts is helpful because they are used throughout your development process.
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## TEE
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciTrusted Execution Environment (TEE) is a secure area of a main processor of a smartphone, tablet, or a mobile device. Any date in the TEE cannot be read or tampered with by any code outside it. The TEE provides a secure execution environment for trusted applications (TAs) to ensure end-to-end security by features, such as isolated execution, integrity of applications, confidentiality of their assets, and data access permissions.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci## Key Material Format
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ciHUKS defines a set of key material formats for key pairs, public keys, and private keys of different cryptographic algorithms. The key material formats are used when a key is imported or exported.
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci### Key Pair Material Format
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciKey pair material = Key pair material header + Key pair material content
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ciFor example, an application needs an RSA key in Uint8Array format, the variables are assigned with values based on the structure of the RSA key pair material in the memory.
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ciThe following figure illustrates the structure of the RSA key material. For details about the key material formats of other algorithms, see the tables below.
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci![keyt](figures/keyt.png)
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ciThe key algorithm is a value of [HuksKeyAlg](../../reference/apis-universal-keystore-kit/js-apis-huks.md#hukskeyalg).
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci```
30e41f4b71Sopenharmony_cilet rsa2048KeyPairMaterial = new Uint8Array([
31e41f4b71Sopenharmony_ci    0x01, 0x00, 0x00, 0x00, // Key algorithm: huks.HuksKeyAlg.HUKS_ALG_RSA = 1
32e41f4b71Sopenharmony_ci    0x00, 0x08, 0x00, 0x00, // Key size (bit): 2048
33e41f4b71Sopenharmony_ci    0x00, 0x01, 0x00, 0x00, // Length of modulus n (byte): 256
34e41f4b71Sopenharmony_ci    0x03, 0x00, 0x00, 0x00, // Length of the public key exponent e (byte): 3
35e41f4b71Sopenharmony_ci    0x00, 0x01, 0x00, 0x00, // Length of the private key exponent d (byte): 256
36e41f4b71Sopenharmony_ci    // Modulus n
37e41f4b71Sopenharmony_ci    0xc5, 0x35, 0x62, 0x48, 0xc4, 0x92, 0x87, 0x73, 0x0d, 0x42, 0x96, 0xfc, 0x7b, 0x11, 0x05, 0x06,
38e41f4b71Sopenharmony_ci    0x0f, 0x8d, 0x66, 0xc1, 0x0e, 0xad, 0x37, 0x44, 0x92, 0x95, 0x2f, 0x6a, 0x55, 0xba, 0xec, 0x1d,
39e41f4b71Sopenharmony_ci    0x54, 0x62, 0x0a, 0x4b, 0xd3, 0xc7, 0x05, 0xe4, 0x07, 0x40, 0xd9, 0xb7, 0xc2, 0x12, 0xcb, 0x9a,
40e41f4b71Sopenharmony_ci    0x90, 0xad, 0xe3, 0x24, 0xe8, 0x5e, 0xa6, 0xf8, 0xd0, 0x6e, 0xbc, 0xd1, 0x69, 0x7f, 0x6b, 0xe4,
41e41f4b71Sopenharmony_ci    0x2b, 0x4e, 0x1a, 0x65, 0xbb, 0x73, 0x88, 0x6b, 0x7c, 0xaf, 0x7e, 0xd0, 0x47, 0x26, 0xeb, 0xa5,
42e41f4b71Sopenharmony_ci    0xbe, 0xd6, 0xe8, 0xee, 0x9c, 0xa5, 0x66, 0xa5, 0xc9, 0xd3, 0x25, 0x13, 0xc4, 0x0e, 0x6c, 0xab,
43e41f4b71Sopenharmony_ci    0x50, 0xb6, 0x50, 0xc9, 0xce, 0x8f, 0x0a, 0x0b, 0xc6, 0x28, 0x69, 0xe9, 0x83, 0x69, 0xde, 0x42,
44e41f4b71Sopenharmony_ci    0x56, 0x79, 0x7f, 0xde, 0x86, 0x24, 0xca, 0xfc, 0xaa, 0xc0, 0xf3, 0xf3, 0x7f, 0x92, 0x8e, 0x8a,
45e41f4b71Sopenharmony_ci    0x12, 0x52, 0xfe, 0x50, 0xb1, 0x5e, 0x8c, 0x01, 0xce, 0xfc, 0x7e, 0xf2, 0x4f, 0x5f, 0x03, 0xfe,
46e41f4b71Sopenharmony_ci    0xa7, 0xcd, 0xa1, 0xfc, 0x94, 0x52, 0x00, 0x8b, 0x9b, 0x7f, 0x09, 0xab, 0xa8, 0xa4, 0xf5, 0xb4,
47e41f4b71Sopenharmony_ci    0xa5, 0xaa, 0xfc, 0x72, 0xeb, 0x17, 0x40, 0xa9, 0xee, 0xbe, 0x8f, 0xc2, 0xd1, 0x80, 0xc2, 0x0d,
48e41f4b71Sopenharmony_ci    0x44, 0xa9, 0x59, 0x44, 0x59, 0x81, 0x3b, 0x5d, 0x4a, 0xde, 0xfb, 0xae, 0x24, 0xfc, 0xa3, 0xd9,
49e41f4b71Sopenharmony_ci    0xbc, 0x57, 0x55, 0xc2, 0x26, 0xbc, 0x19, 0xa7, 0x9a, 0xc5, 0x59, 0xa3, 0xee, 0x5a, 0xef, 0x41,
50e41f4b71Sopenharmony_ci    0x80, 0x7d, 0xf8, 0x5e, 0xc1, 0x1d, 0x32, 0x38, 0x41, 0x5b, 0xb6, 0x92, 0xb8, 0xb7, 0x03, 0x0d,
51e41f4b71Sopenharmony_ci    0x3e, 0x59, 0x0f, 0x1c, 0xb3, 0xe1, 0x2a, 0x95, 0x1a, 0x3b, 0x50, 0x4f, 0xc4, 0x1d, 0xcf, 0x73,
52e41f4b71Sopenharmony_ci    0x7c, 0x14, 0xca, 0xe3, 0x0b, 0xa7, 0xc7, 0x1a, 0x41, 0x4a, 0xee, 0xbe, 0x1f, 0x43, 0xdd, 0xf9,
53e41f4b71Sopenharmony_ci    // Public key exponent e
54e41f4b71Sopenharmony_ci    0x01, 0x00, 0x01,
55e41f4b71Sopenharmony_ci    // Private key exponent d
56e41f4b71Sopenharmony_ci    0x88, 0x4b, 0x82, 0xe7, 0xe3, 0xe3, 0x99, 0x75, 0x6c, 0x9e, 0xaf, 0x17, 0x44, 0x3e, 0xd9, 0x07,
57e41f4b71Sopenharmony_ci    0xfd, 0x4b, 0xae, 0xce, 0x92, 0xc4, 0x28, 0x44, 0x5e, 0x42, 0x79, 0x08, 0xb6, 0xc3, 0x7f, 0x58,
58e41f4b71Sopenharmony_ci    0x2d, 0xef, 0xac, 0x4a, 0x07, 0xcd, 0xaf, 0x46, 0x8f, 0xb4, 0xc4, 0x43, 0xf9, 0xff, 0x5f, 0x74,
59e41f4b71Sopenharmony_ci    0x2d, 0xb5, 0xe0, 0x1c, 0xab, 0xf4, 0x6e, 0xd5, 0xdb, 0xc8, 0x0c, 0xfb, 0x76, 0x3c, 0x38, 0x66,
60e41f4b71Sopenharmony_ci    0xf3, 0x7f, 0x01, 0x43, 0x7a, 0x30, 0x39, 0x02, 0x80, 0xa4, 0x11, 0xb3, 0x04, 0xd9, 0xe3, 0x57,
61e41f4b71Sopenharmony_ci    0x23, 0xf4, 0x07, 0xfc, 0x91, 0x8a, 0xc6, 0xcc, 0xa2, 0x16, 0x29, 0xb3, 0xe5, 0x76, 0x4a, 0xa8,
62e41f4b71Sopenharmony_ci    0x84, 0x19, 0xdc, 0xef, 0xfc, 0xb0, 0x63, 0x33, 0x0b, 0xfa, 0xf6, 0x68, 0x0b, 0x08, 0xea, 0x31,
63e41f4b71Sopenharmony_ci    0x52, 0xee, 0x99, 0xef, 0x43, 0x2a, 0xbe, 0x97, 0xad, 0xb3, 0xb9, 0x66, 0x7a, 0xae, 0xe1, 0x8f,
64e41f4b71Sopenharmony_ci    0x57, 0x86, 0xe5, 0xfe, 0x14, 0x3c, 0x81, 0xd0, 0x64, 0xf8, 0x86, 0x1a, 0x0b, 0x40, 0x58, 0xc9,
65e41f4b71Sopenharmony_ci    0x33, 0x49, 0xb8, 0x99, 0xc6, 0x2e, 0x94, 0x70, 0xee, 0x09, 0x88, 0xe1, 0x5c, 0x4e, 0x6c, 0x22,
66e41f4b71Sopenharmony_ci    0x72, 0xa7, 0x2a, 0x21, 0xdd, 0xd7, 0x1d, 0xfc, 0x63, 0x15, 0x0b, 0xde, 0x06, 0x9c, 0xf3, 0x28,
67e41f4b71Sopenharmony_ci    0xf3, 0xac, 0x4a, 0xa8, 0xb5, 0x50, 0xca, 0x9b, 0xcc, 0x0a, 0x04, 0xfe, 0x3f, 0x98, 0x68, 0x81,
68e41f4b71Sopenharmony_ci    0xac, 0x24, 0x53, 0xea, 0x1f, 0x1c, 0x6e, 0x5e, 0xca, 0xe8, 0x31, 0x0d, 0x08, 0x12, 0xf3, 0x26,
69e41f4b71Sopenharmony_ci    0xf8, 0x5e, 0xeb, 0x10, 0x27, 0xae, 0xaa, 0xc3, 0xad, 0x6c, 0xc1, 0x89, 0xdb, 0x7d, 0x5a, 0x12,
70e41f4b71Sopenharmony_ci    0x55, 0xad, 0x11, 0x19, 0xa1, 0xa9, 0x8f, 0x0b, 0x6d, 0x78, 0x8d, 0x1c, 0xdf, 0xe5, 0x63, 0x82,
71e41f4b71Sopenharmony_ci    0x0b, 0x7d, 0x23, 0x04, 0xb4, 0x75, 0x8c, 0xed, 0x77, 0xfc, 0x1a, 0x85, 0x29, 0x11, 0xe0, 0x61,
72e41f4b71Sopenharmony_ci]);
73e41f4b71Sopenharmony_ci```
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci- RSA key pair material format
77e41f4b71Sopenharmony_ci  | Key Algorithm| Key Size| Modulus n Length (L<sub>n</sub>)| Public Key Exponent Length (L<sub>e</sub>)| Private Key Exponent d Length (L<sub>d</sub>)| n | e | d |
78e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
79e41f4b71Sopenharmony_ci  | 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| L<sub>n</sub> bytes| L<sub>e</sub> bytes| L<sub>d</sub> bytes|
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci- ECC key pair material format
82e41f4b71Sopenharmony_ci  | Key Algorithm| Key Size| Coordinate x Length (L<sub>x</sub>)| Coordinate y Length (L<sub>y</sub>)| Coordinate z Length (L<sub>z</sub>)| x | y | z |
83e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
84e41f4b71Sopenharmony_ci  | 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| L<sub>x</sub> bytes| L<sub>y</sub> bytes| L<sub>z</sub> bytes|
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci- DSA key pair material format
87e41f4b71Sopenharmony_ci  | Key Algorithm| Key Size| Private Key x Length (L<sub>x</sub>)| Public Key y Length (L<sub>y</sub>)| Prime p Length (L<sub>p</sub>)| Prime Factor q Length (L<sub>q</sub>)| g length (L<sub>g</sub>)| x | y | p | q | g |
88e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
89e41f4b71Sopenharmony_ci  | 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| L<sub>x</sub> bytes| L<sub>y</sub> bytes| L<sub>p</sub> bytes| L<sub>q</sub> bytes| L<sub>g</sub> bytes|
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci- DH key pair material format
92e41f4b71Sopenharmony_ci  | Key Algorithm| Key Size| Public Key pk Length (L<sub>pk</sub>)| Private Key sk Length (L<sub>sk</sub>)| Reserved Field| pk | sk |
93e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
94e41f4b71Sopenharmony_ci  | 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| L<sub>pk</sub> bytes| L<sub>sk</sub> bytes|
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci- Curve25519 key pair material format
97e41f4b71Sopenharmony_ci  | Key Algorithm| Key Size| Public Key pk Length (L<sub>pk</sub>)| Private Key sk Length (L<sub>sk</sub>)| Reserved Field| pk | sk |
98e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
99e41f4b71Sopenharmony_ci  | 4 bytes| 4 bytes| 4 bytes| 4 bytes| 4 bytes| L<sub>pk</sub> bytes| L<sub>sk</sub> bytes|
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci### Public Key Material Format
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ciWhen a public key is exported or imported, the key material is encapsulated in the DER format defined in X.509.
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ciThe following is ECC public key in EDR format:
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci```
109e41f4b71Sopenharmony_cilet eccP256PubKey = new Uint8Array([
110e41f4b71Sopenharmony_ci    0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a,
111e41f4b71Sopenharmony_ci    0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xc0, 0xfe, 0x1c, 0x67, 0xde,
112e41f4b71Sopenharmony_ci    0x86, 0x0e, 0xfb, 0xaf, 0xb5, 0x85, 0x52, 0xb4, 0x0e, 0x1f, 0x6c, 0x6c, 0xaa, 0xc5, 0xd9, 0xd2,
113e41f4b71Sopenharmony_ci    0x4d, 0xb0, 0x8a, 0x72, 0x24, 0xa1, 0x99, 0xaf, 0xfc, 0x3e, 0x55, 0x5a, 0xac, 0x99, 0x3d, 0xe8,
114e41f4b71Sopenharmony_ci    0x34, 0x72, 0xb9, 0x47, 0x9c, 0xa6, 0xd8, 0xfb, 0x00, 0xa0, 0x1f, 0x9f, 0x7a, 0x41, 0xe5, 0x44,
115e41f4b71Sopenharmony_ci    0x3e, 0xb2, 0x76, 0x08, 0xa2, 0xbd, 0xe9, 0x41, 0xd5, 0x2b, 0x9e
116e41f4b71Sopenharmony_ci]);
117e41f4b71Sopenharmony_ci```
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci### Private Key Material Format
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ciThe private key material is in the same format as the key pair material. When the private key material is encapsulated, the public key length in the header of the key pair material is set to 0 and key pair material content and the private key material content are combined.
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ciPrivate key material = Key pair material header + Private key material content
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ciThe following is an example of the RSA private key material.
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci![priKey](figures/priKey.png)
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci```
131e41f4b71Sopenharmony_cilet rsa2048PrivateKeyMaterial = new Uint8Array([
132e41f4b71Sopenharmony_ci    0x01, 0x00, 0x00, 0x00, // Key algorithm: huks.HuksKeyAlg.HUKS_ALG_RSA = 1
133e41f4b71Sopenharmony_ci    0x00, 0x08, 0x00, 0x00, // Key size (bit): 2048
134e41f4b71Sopenharmony_ci    0x00, 0x01, 0x00, 0x00, // Length of modulus n (byte): 256
135e41f4b71Sopenharmony_ci    0x00, 0x00, 0x00, 0x00, // Length of the public key exponent e (byte): 0
136e41f4b71Sopenharmony_ci    0x00, 0x01, 0x00, 0x00, // Length of the private key exponent d (byte): 256
137e41f4b71Sopenharmony_ci    // Modulus n
138e41f4b71Sopenharmony_ci    0xc5, 0x35, 0x62, 0x48, 0xc4, 0x92, 0x87, 0x73, 0x0d, 0x42, 0x96, 0xfc, 0x7b, 0x11, 0x05, 0x06,
139e41f4b71Sopenharmony_ci    0x0f, 0x8d, 0x66, 0xc1, 0x0e, 0xad, 0x37, 0x44, 0x92, 0x95, 0x2f, 0x6a, 0x55, 0xba, 0xec, 0x1d,
140e41f4b71Sopenharmony_ci    0x54, 0x62, 0x0a, 0x4b, 0xd3, 0xc7, 0x05, 0xe4, 0x07, 0x40, 0xd9, 0xb7, 0xc2, 0x12, 0xcb, 0x9a,
141e41f4b71Sopenharmony_ci    0x90, 0xad, 0xe3, 0x24, 0xe8, 0x5e, 0xa6, 0xf8, 0xd0, 0x6e, 0xbc, 0xd1, 0x69, 0x7f, 0x6b, 0xe4,
142e41f4b71Sopenharmony_ci    0x2b, 0x4e, 0x1a, 0x65, 0xbb, 0x73, 0x88, 0x6b, 0x7c, 0xaf, 0x7e, 0xd0, 0x47, 0x26, 0xeb, 0xa5,
143e41f4b71Sopenharmony_ci    0xbe, 0xd6, 0xe8, 0xee, 0x9c, 0xa5, 0x66, 0xa5, 0xc9, 0xd3, 0x25, 0x13, 0xc4, 0x0e, 0x6c, 0xab,
144e41f4b71Sopenharmony_ci    0x50, 0xb6, 0x50, 0xc9, 0xce, 0x8f, 0x0a, 0x0b, 0xc6, 0x28, 0x69, 0xe9, 0x83, 0x69, 0xde, 0x42,
145e41f4b71Sopenharmony_ci    0x56, 0x79, 0x7f, 0xde, 0x86, 0x24, 0xca, 0xfc, 0xaa, 0xc0, 0xf3, 0xf3, 0x7f, 0x92, 0x8e, 0x8a,
146e41f4b71Sopenharmony_ci    0x12, 0x52, 0xfe, 0x50, 0xb1, 0x5e, 0x8c, 0x01, 0xce, 0xfc, 0x7e, 0xf2, 0x4f, 0x5f, 0x03, 0xfe,
147e41f4b71Sopenharmony_ci    0xa7, 0xcd, 0xa1, 0xfc, 0x94, 0x52, 0x00, 0x8b, 0x9b, 0x7f, 0x09, 0xab, 0xa8, 0xa4, 0xf5, 0xb4,
148e41f4b71Sopenharmony_ci    0xa5, 0xaa, 0xfc, 0x72, 0xeb, 0x17, 0x40, 0xa9, 0xee, 0xbe, 0x8f, 0xc2, 0xd1, 0x80, 0xc2, 0x0d,
149e41f4b71Sopenharmony_ci    0x44, 0xa9, 0x59, 0x44, 0x59, 0x81, 0x3b, 0x5d, 0x4a, 0xde, 0xfb, 0xae, 0x24, 0xfc, 0xa3, 0xd9,
150e41f4b71Sopenharmony_ci    0xbc, 0x57, 0x55, 0xc2, 0x26, 0xbc, 0x19, 0xa7, 0x9a, 0xc5, 0x59, 0xa3, 0xee, 0x5a, 0xef, 0x41,
151e41f4b71Sopenharmony_ci    0x80, 0x7d, 0xf8, 0x5e, 0xc1, 0x1d, 0x32, 0x38, 0x41, 0x5b, 0xb6, 0x92, 0xb8, 0xb7, 0x03, 0x0d,
152e41f4b71Sopenharmony_ci    0x3e, 0x59, 0x0f, 0x1c, 0xb3, 0xe1, 0x2a, 0x95, 0x1a, 0x3b, 0x50, 0x4f, 0xc4, 0x1d, 0xcf, 0x73,
153e41f4b71Sopenharmony_ci    0x7c, 0x14, 0xca, 0xe3, 0x0b, 0xa7, 0xc7, 0x1a, 0x41, 0x4a, 0xee, 0xbe, 0x1f, 0x43, 0xdd, 0xf9,
154e41f4b71Sopenharmony_ci    // Private key exponent d
155e41f4b71Sopenharmony_ci    0x88, 0x4b, 0x82, 0xe7, 0xe3, 0xe3, 0x99, 0x75, 0x6c, 0x9e, 0xaf, 0x17, 0x44, 0x3e, 0xd9, 0x07,
156e41f4b71Sopenharmony_ci    0xfd, 0x4b, 0xae, 0xce, 0x92, 0xc4, 0x28, 0x44, 0x5e, 0x42, 0x79, 0x08, 0xb6, 0xc3, 0x7f, 0x58,
157e41f4b71Sopenharmony_ci    0x2d, 0xef, 0xac, 0x4a, 0x07, 0xcd, 0xaf, 0x46, 0x8f, 0xb4, 0xc4, 0x43, 0xf9, 0xff, 0x5f, 0x74,
158e41f4b71Sopenharmony_ci    0x2d, 0xb5, 0xe0, 0x1c, 0xab, 0xf4, 0x6e, 0xd5, 0xdb, 0xc8, 0x0c, 0xfb, 0x76, 0x3c, 0x38, 0x66,
159e41f4b71Sopenharmony_ci    0xf3, 0x7f, 0x01, 0x43, 0x7a, 0x30, 0x39, 0x02, 0x80, 0xa4, 0x11, 0xb3, 0x04, 0xd9, 0xe3, 0x57,
160e41f4b71Sopenharmony_ci    0x23, 0xf4, 0x07, 0xfc, 0x91, 0x8a, 0xc6, 0xcc, 0xa2, 0x16, 0x29, 0xb3, 0xe5, 0x76, 0x4a, 0xa8,
161e41f4b71Sopenharmony_ci    0x84, 0x19, 0xdc, 0xef, 0xfc, 0xb0, 0x63, 0x33, 0x0b, 0xfa, 0xf6, 0x68, 0x0b, 0x08, 0xea, 0x31,
162e41f4b71Sopenharmony_ci    0x52, 0xee, 0x99, 0xef, 0x43, 0x2a, 0xbe, 0x97, 0xad, 0xb3, 0xb9, 0x66, 0x7a, 0xae, 0xe1, 0x8f,
163e41f4b71Sopenharmony_ci    0x57, 0x86, 0xe5, 0xfe, 0x14, 0x3c, 0x81, 0xd0, 0x64, 0xf8, 0x86, 0x1a, 0x0b, 0x40, 0x58, 0xc9,
164e41f4b71Sopenharmony_ci    0x33, 0x49, 0xb8, 0x99, 0xc6, 0x2e, 0x94, 0x70, 0xee, 0x09, 0x88, 0xe1, 0x5c, 0x4e, 0x6c, 0x22,
165e41f4b71Sopenharmony_ci    0x72, 0xa7, 0x2a, 0x21, 0xdd, 0xd7, 0x1d, 0xfc, 0x63, 0x15, 0x0b, 0xde, 0x06, 0x9c, 0xf3, 0x28,
166e41f4b71Sopenharmony_ci    0xf3, 0xac, 0x4a, 0xa8, 0xb5, 0x50, 0xca, 0x9b, 0xcc, 0x0a, 0x04, 0xfe, 0x3f, 0x98, 0x68, 0x81,
167e41f4b71Sopenharmony_ci    0xac, 0x24, 0x53, 0xea, 0x1f, 0x1c, 0x6e, 0x5e, 0xca, 0xe8, 0x31, 0x0d, 0x08, 0x12, 0xf3, 0x26,
168e41f4b71Sopenharmony_ci    0xf8, 0x5e, 0xeb, 0x10, 0x27, 0xae, 0xaa, 0xc3, 0xad, 0x6c, 0xc1, 0x89, 0xdb, 0x7d, 0x5a, 0x12,
169e41f4b71Sopenharmony_ci    0x55, 0xad, 0x11, 0x19, 0xa1, 0xa9, 0x8f, 0x0b, 0x6d, 0x78, 0x8d, 0x1c, 0xdf, 0xe5, 0x63, 0x82,
170e41f4b71Sopenharmony_ci    0x0b, 0x7d, 0x23, 0x04, 0xb4, 0x75, 0x8c, 0xed, 0x77, 0xfc, 0x1a, 0x85, 0x29, 0x11, 0xe0, 0x61,
171e41f4b71Sopenharmony_ci]);
172e41f4b71Sopenharmony_ci```
173