• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (c) 2021-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
16import {AsyncCallback} from './basic';
17
18/**
19 * OpenHarmony Universal KeyStore
20 * @since 8
21 * @syscap SystemCapability.Security.Huks
22 * @permission N/A
23 */
24declare namespace huks {
25    /**
26     * Generate Key.
27     * @since 8
28     * @syscap SystemCapability.Security.Huks
29     * @param keyAlias Indicates the key's name.
30     * @param options Indicates the properties of the key.
31     */
32    function generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
33    function generateKey(keyAlias: string, options: HuksOptions) : Promise<HuksResult>;
34
35    /**
36     * Delete Key.
37     * @since 8
38     * @syscap SystemCapability.Security.Huks
39     * @param keyAlias Indicates the key's name.
40     * @param options Indicates the properties of the key.
41     */
42    function deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
43    function deleteKey(keyAlias: string, options: HuksOptions) : Promise<HuksResult>;
44
45    /**
46     * Import Key.
47     * @since 8
48     * @syscap SystemCapability.Security.Huks
49     * @param keyAlias Indicates the key's name.
50     * @param options Indicates the properties of the key.
51     */
52    function importKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
53    function importKey(keyAlias: string, options: HuksOptions) : Promise<HuksResult>;
54
55    /**
56     * Export Key.
57     * @since 8
58     * @syscap SystemCapability.Security.Huks
59     * @param keyAlias Indicates the key's name.
60     * @param options Indicates the properties of the key.
61     */
62    function exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
63    function exportKey(keyAlias: string, options: HuksOptions) : Promise<HuksResult>;
64
65    /**
66     * Get properties of the key.
67     * @since 8
68     * @syscap SystemCapability.Security.Huks
69     * @param keyAlias Indicates the key's name.
70     * @param options Indicates the properties of the key.
71     */
72    function getKeyProperties(keyAlias: string, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
73    function getKeyProperties(keyAlias: string, options: HuksOptions) : Promise<HuksResult>;
74
75    /**
76     * Check whether the key exists.
77     * @since 8
78     * @syscap SystemCapability.Security.Huks
79     * @param keyAlias Indicates the key's name.
80     * @param options Indicates the properties of the key.
81     */
82    function isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback<boolean>) : void;
83    function isKeyExist(keyAlias: string, options: HuksOptions) : Promise<boolean>;
84
85    /**
86     * Init Operation.
87     * @since 8
88     * @syscap SystemCapability.Security.Huks
89     * @param keyAlias Indicates the key's name.
90     * @param options Indicates the properties of the key.
91     * @return The handle of the init Operation.
92     */
93    function init(keyAlias: string, options: HuksOptions, callback: AsyncCallback<HuksHandle>) : void;
94    function init(keyAlias: string, options: HuksOptions) : Promise<HuksHandle>;
95
96    /**
97     * Update Operation.
98     * @since 8
99     * @syscap SystemCapability.Security.Huks
100     * @param handle Indicates the handle of the init operation.
101     * @param token Indicates the value of token.
102     * @param options Indicates the properties of the update operation.
103     */
104    function update(handle: number, token?: Uint8Array, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
105    function update(handle: number, token?: Uint8Array, options: HuksOptions) : Promise<HuksResult>;
106
107    /**
108     * Finish Operation.
109     * @since 8
110     * @syscap SystemCapability.Security.Huks
111     * @param handle Indicates the handle of the init operation.
112     * @param options Indicates the properties of the finish operation.
113     */
114    function finish(handle: number, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
115    function finish(handle: number, options: HuksOptions) : Promise<HuksResult>;
116
117    /**
118     * Abort Operation.
119     * @since 8
120     * @syscap SystemCapability.Security.Huks
121     * @param handle Indicates the handle of the init operation.
122     * @param options Indicates the properties of the abort operation.
123     */
124    function abort(handle: number, options: HuksOptions, callback: AsyncCallback<HuksResult>) : void;
125    function abort(handle: number, options: HuksOptions) : Promise<HuksResult>;
126
127    /**
128     * Get the sdk version.
129     * @since 8
130     * @syscap SystemCapability.Security.Huks
131     * @param options Indicates the properties of the key.
132     * @return Return the character string of the sdk version.
133     */
134    function getSdkVersion(options: HuksOptions) : string;
135
136    export interface HuksParam {
137        tag: HuksTag;
138        value: boolean | number | bigint | Uint8Array;
139    }
140
141    export interface HuksHandle {
142        errorCode: number;
143        handle: number;
144        token?: Uint8Array;
145    }
146
147    export interface HuksOptions {
148        properties?: Array<HuksParam>;
149        inData?: Uint8Array;
150    }
151
152    export interface HuksResult {
153        errorCode: number;
154        outData?: Uint8Array;
155        properties?: Array<HuksParam>;
156        certChains?: Array<string>;
157    }
158
159    export enum HuksErrorCode {
160        HUKS_SUCCESS = 0,
161        HUKS_FAILURE = -1,
162        HUKS_ERROR_BAD_STATE = -2,
163        HUKS_ERROR_INVALID_ARGUMENT = -3,
164        HUKS_ERROR_NOT_SUPPORTED = -4,
165        HUKS_ERROR_NO_PERMISSION = -5,
166        HUKS_ERROR_INSUFFICIENT_DATA = -6,
167        HUKS_ERROR_BUFFER_TOO_SMALL = -7,
168        HUKS_ERROR_INSUFFICIENT_MEMORY = -8,
169        HUKS_ERROR_COMMUNICATION_FAILURE = -9,
170        HUKS_ERROR_STORAGE_FAILURE = -10,
171        HUKS_ERROR_HARDWARE_FAILURE = -11,
172        HUKS_ERROR_ALREADY_EXISTS = -12,
173        HUKS_ERROR_NOT_EXIST = -13,
174        HUKS_ERROR_NULL_POINTER = -14,
175        HUKS_ERROR_FILE_SIZE_FAIL = -15,
176        HUKS_ERROR_READ_FILE_FAIL = -16,
177        HUKS_ERROR_INVALID_PUBLIC_KEY = -17,
178        HUKS_ERROR_INVALID_PRIVATE_KEY = -18,
179        HUKS_ERROR_INVALID_KEY_INFO = -19,
180        HUKS_ERROR_HASH_NOT_EQUAL = -20,
181        HUKS_ERROR_MALLOC_FAIL = -21,
182        HUKS_ERROR_WRITE_FILE_FAIL = -22,
183        HUKS_ERROR_REMOVE_FILE_FAIL = -23,
184        HUKS_ERROR_OPEN_FILE_FAIL = -24,
185        HUKS_ERROR_CLOSE_FILE_FAIL = -25,
186        HUKS_ERROR_MAKE_DIR_FAIL = -26,
187        HUKS_ERROR_INVALID_KEY_FILE = -27,
188        HUKS_ERROR_IPC_MSG_FAIL = -28,
189        HUKS_ERROR_REQUEST_OVERFLOWS = -29,
190        HUKS_ERROR_PARAM_NOT_EXIST = -30,
191        HUKS_ERROR_CRYPTO_ENGINE_ERROR = -31,
192        HUKS_ERROR_COMMUNICATION_TIMEOUT = -32,
193        HUKS_ERROR_IPC_INIT_FAIL = -33,
194        HUKS_ERROR_IPC_DLOPEN_FAIL = -34,
195        HUKS_ERROR_EFUSE_READ_FAIL = -35,
196        HUKS_ERROR_NEW_ROOT_KEY_MATERIAL_EXIST = -36,
197        HUKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL = -37,
198
199        HUKS_ERROR_CHECK_GET_ALG_FAIL = -100,
200        HUKS_ERROR_CHECK_GET_KEY_SIZE_FAIL = -101,
201        HUKS_ERROR_CHECK_GET_PADDING_FAIL = -102,
202        HUKS_ERROR_CHECK_GET_PURPOSE_FAIL = -103,
203        HUKS_ERROR_CHECK_GET_DIGEST_FAIL =  -104,
204        HUKS_ERROR_CHECK_GET_MODE_FAIL = -105,
205        HUKS_ERROR_CHECK_GET_NONCE_FAIL = -106,
206        HUKS_ERROR_CHECK_GET_AAD_FAIL = -107,
207        HUKS_ERROR_CHECK_GET_IV_FAIL = -108,
208        HUKS_ERROR_CHECK_GET_AE_TAG_FAIL = -109,
209        HUKS_ERROR_CHECK_GET_SALT_FAIL = -110,
210        HUKS_ERROR_CHECK_GET_ITERATION_FAIL = -111,
211        HUKS_ERROR_INVALID_ALGORITHM = -112,
212        HUKS_ERROR_INVALID_KEY_SIZE = -113,
213        HUKS_ERROR_INVALID_PADDING = -114,
214        HUKS_ERROR_INVALID_PURPOSE = -115,
215        HUKS_ERROR_INVALID_MODE = -116,
216        HUKS_ERROR_INVALID_DIGEST =  -117,
217        HUKS_ERROR_INVALID_SIGNATURE_SIZE = -118,
218        HUKS_ERROR_INVALID_IV = -119,
219        HUKS_ERROR_INVALID_AAD = -120,
220        HUKS_ERROR_INVALID_NONCE = -121,
221        HUKS_ERROR_INVALID_AE_TAG = -122,
222        HUKS_ERROR_INVALID_SALT = -123,
223        HUKS_ERROR_INVALID_ITERATION = -124,
224        HUKS_ERROR_INVALID_OPERATION = -125,
225
226        HUKS_ERROR_INTERNAL_ERROR = -999,
227        HUKS_ERROR_UNKNOWN_ERROR = -1000,
228    }
229
230    export enum HuksKeyType {
231        HUKS_KEY_TYPE_RSA_PUBLIC_KEY = 0x01001000,
232        HUKS_KEY_TYPE_RSA_KEYPAIR = 0x01002000,
233
234        HUKS_KEY_TYPE_ECC_P256_PUBLIC_KEY = 0x02021000,
235        HUKS_KEY_TYPE_ECC_P256_KEYPAIR = 0x02022000,
236        HUKS_KEY_TYPE_ECC_P384_PUBLIC_KEY = 0x02031000,
237        HUKS_KEY_TYPE_ECC_P384_KEYPAIR = 0x02032000,
238        HUKS_KEY_TYPE_ECC_P521_PUBLIC_KEY = 0x02051000,
239        HUKS_KEY_TYPE_ECC_P521_KEYPAIR = 0x02052000,
240
241        HUKS_KEY_TYPE_ED25519_PUBLIC_KEY = 0x02101000,
242        HUKS_KEY_TYPE_ED25519_KEYPAIR = 0x02102000,
243        HUKS_KEY_TYPE_X25519_PUBLIC_KEY = 0x02111000,
244        HUKS_KEY_TYPE_X25519_KEYPAIR = 0x02112000,
245
246        HUKS_KEY_TYPE_AES = 0x03000000,
247        HUKS_KEY_TYPE_CHACHA20 = 0x04010000,
248        HUKS_KEY_TYPE_CHACHA20_POLY1305 = 0x04020000,
249
250        HUKS_KEY_TYPE_HMAC = 0x05000000,
251        HUKS_KEY_TYPE_HKDF = 0x06000000,
252        HUKS_KEY_TYPE_PBKDF2 = 0x07000000,
253    }
254
255    export enum HuksKeyPurpose {
256        HUKS_KEY_PURPOSE_ENCRYPT = 1,                   /* Usable with RSA, EC and AES keys. */
257        HUKS_KEY_PURPOSE_DECRYPT = 2,                   /* Usable with RSA, EC and AES keys. */
258        HUKS_KEY_PURPOSE_SIGN = 4,                      /* Usable with RSA, EC keys. */
259        HUKS_KEY_PURPOSE_VERIFY = 8,                    /* Usable with RSA, EC keys. */
260        HUKS_KEY_PURPOSE_DERIVE = 16,                   /* Usable with EC keys. */
261        HUKS_KEY_PURPOSE_WRAP = 32,                     /* Usable with wrap key. */
262        HUKS_KEY_PURPOSE_UNWRAP = 64,                   /* Usable with unwrap key. */
263        HUKS_KEY_PURPOSE_MAC = 128,                     /* Usable with mac. */
264        HUKS_KEY_PURPOSE_AGREE = 256,                   /* Usable with agree. */
265    }
266
267    export enum HuksKeyDigest {
268        HUKS_DIGEST_NONE = 0,
269        HUKS_DIGEST_MD5 = 1,
270        HUKS_DIGEST_SHA1 = 10,
271        HUKS_DIGEST_SHA224 = 11,
272        HUKS_DIGEST_SHA256 = 12,
273        HUKS_DIGEST_SHA384 = 13,
274        HUKS_DIGEST_SHA512 = 14,
275    }
276
277    export enum HuksKeyPadding {
278        HUKS_PADDING_NONE = 0,
279        HUKS_PADDING_OAEP = 1,
280        HUKS_PADDING_PSS = 2,
281        HUKS_PADDING_PKCS1_V1_5 = 3,
282        HUKS_PADDING_PKCS5 = 4,
283        HUKS_PADDING_PKCS7 = 5,
284    }
285
286    export enum HuksCipherMode {
287        HUKS_MODE_ECB = 1,
288        HUKS_MODE_CBC = 2,
289        HUKS_MODE_CTR = 3,
290        HUKS_MODE_OFB = 4,
291        HUKS_MODE_CCM = 31,
292        HUKS_MODE_GCM = 32,
293    }
294
295    export enum HuksKeySize {
296        HUKS_RSA_KEY_SIZE_512 = 512,
297        HUKS_RSA_KEY_SIZE_768 = 768,
298        HUKS_RSA_KEY_SIZE_1024 = 1024,
299        HUKS_RSA_KEY_SIZE_2048 = 2048,
300        HUKS_RSA_KEY_SIZE_3072 = 3072,
301        HUKS_RSA_KEY_SIZE_4096 = 4096,
302
303        HUKS_ECC_KEY_SIZE_224 = 224,
304        HUKS_ECC_KEY_SIZE_256 = 256,
305        HUKS_ECC_KEY_SIZE_384 = 384,
306        HUKS_ECC_KEY_SIZE_521 = 521,
307
308        HUKS_AES_KEY_SIZE_128 = 128,
309        HUKS_AES_KEY_SIZE_192 = 192,
310        HUKS_AES_KEY_SIZE_256 = 256,
311        HUKS_AES_KEY_SIZE_512 = 512,
312
313        HUKS_CURVE25519_KEY_SIZE_256 = 256,
314
315        HUKS_DH_KEY_SIZE_2048 = 2048,
316        HUKS_DH_KEY_SIZE_3072 = 3072,
317        HUKS_DH_KEY_SIZE_4096 = 4096,
318    }
319
320    export enum HuksKeyAlg {
321        HUKS_ALG_RSA = 1,
322        HUKS_ALG_ECC = 2,
323        HUKS_ALG_DSA = 3,
324
325        HUKS_ALG_AES = 20,
326        HUKS_ALG_HMAC = 50,
327        HUKS_ALG_HKDF = 51,
328        HUKS_ALG_PBKDF2 = 52,
329
330        HUKS_ALG_ECDH = 100,
331        HUKS_ALG_X25519 = 101,
332        HUKS_ALG_ED25519 = 102,
333        HUKS_ALG_DH = 103,
334    }
335
336    export enum HuksKeyGenerateType {
337        HUKS_KEY_GENERATE_TYPE_DEFAULT = 0,
338        HUKS_KEY_GENERATE_TYPE_DERIVE = 1,
339        HUKS_KEY_GENERATE_TYPE_AGREE = 2,
340    }
341
342    export enum HuksKeyFlag {
343        HUKS_KEY_FLAG_IMPORT_KEY = 1,
344        HUKS_KEY_FLAG_GENERATE_KEY = 2,
345    }
346
347    export enum HuksKeyStorageType {
348        HUKS_STORAGE_TEMP = 0,
349        HUKS_STORAGE_PERSISTENT = 1,
350    }
351
352    export enum HuksSendType {
353        HUKS_SEND_TYPE_ASYNC = 0,
354        HUKS_SEND_TYPE_SYNC = 1,
355    }
356
357    declare enum HuksTagType {
358        HUKS_TAG_TYPE_INVALID = 0 << 28,
359        HUKS_TAG_TYPE_INT = 1 << 28,
360        HUKS_TAG_TYPE_UINT = 2 << 28,
361        HUKS_TAG_TYPE_ULONG = 3 << 28,
362        HUKS_TAG_TYPE_BOOL = 4 << 28,
363        HUKS_TAG_TYPE_BYTES = 5 << 28,
364    }
365
366    export enum HuksTag {
367        /* Invalid TAG */
368        HUKS_TAG_INVALID = HuksTagType.HUKS_TAG_TYPE_INVALID | 0,
369
370        /* Base algrithom TAG: 1 - 200 */
371        HUKS_TAG_ALGORITHM = HuksTagType.HUKS_TAG_TYPE_UINT | 1,
372        HUKS_TAG_PURPOSE = HuksTagType.HUKS_TAG_TYPE_UINT | 2,
373        HUKS_TAG_KEY_SIZE = HuksTagType.HUKS_TAG_TYPE_UINT | 3,
374        HUKS_TAG_DIGEST = HuksTagType.HUKS_TAG_TYPE_UINT | 4,
375        HUKS_TAG_PADDING = HuksTagType.HUKS_TAG_TYPE_UINT | 5,
376        HUKS_TAG_BLOCK_MODE = HuksTagType.HUKS_TAG_TYPE_UINT | 6,
377        HUKS_TAG_KEY_TYPE = HuksTagType.HUKS_TAG_TYPE_UINT | 7,
378        HUKS_TAG_ASSOCIATED_DATA = HuksTagType.HUKS_TAG_TYPE_BYTES | 8,
379        HUKS_TAG_NONCE = HuksTagType.HUKS_TAG_TYPE_BYTES | 9,
380        HUKS_TAG_IV = HuksTagType.HUKS_TAG_TYPE_BYTES | 10,
381
382        /* Key derivation TAG */
383        HUKS_TAG_INFO = HuksTagType.HUKS_TAG_TYPE_BYTES | 11,
384        HUKS_TAG_SALT = HuksTagType.HUKS_TAG_TYPE_BYTES | 12,
385        HUKS_TAG_PWD = HuksTagType.HUKS_TAG_TYPE_BYTES | 13,
386        HUKS_TAG_ITERATION = HuksTagType.HUKS_TAG_TYPE_UINT | 14,
387
388        HUKS_TAG_KEY_GENERATE_TYPE = HuksTagType.HUKS_TAG_TYPE_UINT | 15, /* choose from enum HuksKeyGenerateType */
389        HUKS_TAG_DERIVE_MAIN_KEY = HuksTagType.HUKS_TAG_TYPE_BYTES | 16,
390        HUKS_TAG_DERIVE_FACTOR = HuksTagType.HUKS_TAG_TYPE_BYTES | 17,
391        HUKS_TAG_DERIVE_ALG = HuksTagType.HUKS_TAG_TYPE_UINT | 18,
392        HUKS_TAG_AGREE_ALG = HuksTagType.HUKS_TAG_TYPE_UINT | 19,
393        HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = HuksTagType.HUKS_TAG_TYPE_BOOL | 20,
394        HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = HuksTagType.HUKS_TAG_TYPE_BYTES | 21,
395        HUKS_TAG_AGREE_PUBLIC_KEY = HuksTagType.HUKS_TAG_TYPE_BYTES | 22,
396
397        /*
398         * Key authentication related TAG: 201 - 300
399         *
400         * Start of validity
401         */
402        HUKS_TAG_ACTIVE_DATETIME = HuksTagType.HUKS_TAG_TYPE_ULONG | 201,
403
404        /* Date when new "messages" should not be created. */
405        HUKS_TAG_ORIGINATION_EXPIRE_DATETIME = HuksTagType.HUKS_TAG_TYPE_ULONG | 202,
406
407        /* Date when existing "messages" should not be used. */
408        HUKS_TAG_USAGE_EXPIRE_DATETIME = HuksTagType.HUKS_TAG_TYPE_ULONG | 203,
409
410        /* Key creation time */
411        HUKS_TAG_CREATION_DATETIME = HuksTagType.HUKS_TAG_TYPE_ULONG | 204,
412
413        /* Other authentication related TAG: 301 - 500 */
414        HUKS_TAG_ALL_USERS = HuksTagType.HUKS_TAG_TYPE_BOOL | 301,
415        HUKS_TAG_USER_ID = HuksTagType.HUKS_TAG_TYPE_UINT | 302,
416        HUKS_TAG_NO_AUTH_REQUIRED = HuksTagType.HUKS_TAG_TYPE_BOOL | 303,
417        HUKS_TAG_USER_AUTH_TYPE = HuksTagType.HUKS_TAG_TYPE_UINT | 304,
418        HUKS_TAG_AUTH_TIMEOUT = HuksTagType.HUKS_TAG_TYPE_UINT | 305,
419        HUKS_TAG_AUTH_TOKEN = HuksTagType.HUKS_TAG_TYPE_BYTES | 306,
420
421        /* Attestation related TAG: 501 - 600 */
422        HUKS_TAG_ATTESTATION_CHALLENGE = HuksTagType.HUKS_TAG_TYPE_BYTES | 501,
423        HUKS_TAG_ATTESTATION_APPLICATION_ID = HuksTagType.HUKS_TAG_TYPE_BYTES | 502,
424        HUKS_TAG_ATTESTATION_ID_BRAND = HuksTagType.HUKS_TAG_TYPE_BYTES | 503,
425        HUKS_TAG_ATTESTATION_ID_DEVICE = HuksTagType.HUKS_TAG_TYPE_BYTES | 504,
426        HUKS_TAG_ATTESTATION_ID_PRODUCT = HuksTagType.HUKS_TAG_TYPE_BYTES | 505,
427        HUKS_TAG_ATTESTATION_ID_SERIAL = HuksTagType.HUKS_TAG_TYPE_BYTES | 506,
428        HUKS_TAG_ATTESTATION_ID_IMEI = HuksTagType.HUKS_TAG_TYPE_BYTES | 507,
429        HUKS_TAG_ATTESTATION_ID_MEID = HuksTagType.HUKS_TAG_TYPE_BYTES | 508,
430        HUKS_TAG_ATTESTATION_ID_MANUFACTURER = HuksTagType.HUKS_TAG_TYPE_BYTES | 509,
431        HUKS_TAG_ATTESTATION_ID_MODEL = HuksTagType.HUKS_TAG_TYPE_BYTES | 510,
432        HUKS_TAG_ATTESTATION_ID_ALIAS = HuksTagType.HUKS_TAG_TYPE_BYTES | 511,
433
434        /*
435         * Other reserved TAG: 601 - 1000
436         *
437         * Extention TAG: 1001 - 9999
438         */
439        HUKS_TAG_IS_KEY_ALIAS = HuksTagType.HUKS_TAG_TYPE_BOOL | 1001,
440        HUKS_TAG_KEY_STORAGE_FLAG = HuksTagType.HUKS_TAG_TYPE_UINT | 1002, /* choose from enum HuksKeyStorageType */
441        HUKS_TAG_IS_ALLOWED_WRAP = HuksTagType.HUKS_TAG_TYPE_BOOL | 1003,
442        HUKS_TAG_KEY_WRAP_TYPE = HuksTagType.HUKS_TAG_TYPE_UINT | 1004,
443        HUKS_TAG_KEY_AUTH_ID = HuksTagType.HUKS_TAG_TYPE_BYTES | 1005,
444        HUKS_TAG_KEY_ROLE = HuksTagType.HUKS_TAG_TYPE_UINT | 1006,
445        HUKS_TAG_KEY_FLAG = HuksTagType.HUKS_TAG_TYPE_UINT | 1007, /* choose from enum HuksKeyFlag */
446        HUKS_TAG_IS_ASYNCHRONIZED = HuksTagType.HUKS_TAG_TYPE_UINT | 1008,
447        HUKS_TAG_SECURE_KEY_ALIAS = HuksTagType.HUKS_TAG_TYPE_BOOL | 1009,
448        HUKS_TAG_SECURE_KEY_UUID = HuksTagType.HUKS_TAG_TYPE_BYTES | 1010,
449        HUKS_TAG_KEY_DOMAIN = HuksTagType.HUKS_TAG_TYPE_UINT | 1011,
450
451        /* Inner-use TAG: 10001 - 10999 */
452        HUKS_TAG_PROCESS_NAME = HuksTagType.HUKS_TAG_TYPE_BYTES | 10001,
453        HUKS_TAG_PACKAGE_NAME = HuksTagType.HUKS_TAG_TYPE_BYTES | 10002,
454        HUKS_TAG_ACCESS_TIME = HuksTagType.HUKS_TAG_TYPE_UINT | 10003,
455        HUKS_TAG_USES_TIME = HuksTagType.HUKS_TAG_TYPE_UINT | 10004,
456        HUKS_TAG_CRYPTO_CTX = HuksTagType.HUKS_TAG_TYPE_ULONG | 10005,
457        HUKS_TAG_KEY = HuksTagType.HUKS_TAG_TYPE_BYTES | 10006,
458        HUKS_TAG_KEY_VERSION = HuksTagType.HUKS_TAG_TYPE_UINT | 10007,
459        HUKS_TAG_PAYLOAD_LEN = HuksTagType.HUKS_TAG_TYPE_UINT | 10008,
460        HUKS_TAG_AE_TAG = HuksTagType.HUKS_TAG_TYPE_BYTES | 10009,
461        HUKS_TAG_IS_KEY_HANDLE = HuksTagType.HUKS_TAG_TYPE_ULONG | 10010,
462
463        /* Os version related TAG */
464        HUKS_TAG_OS_VERSION = HuksTagType.HUKS_TAG_TYPE_UINT | 10101,
465        HUKS_TAG_OS_PATCHLEVEL = HuksTagType.HUKS_TAG_TYPE_UINT | 10102,
466
467        /*
468         * Reversed TAGs for SOTER: 11000 - 12000
469         *
470         * Other TAGs: 20001 - N
471         * TAGs used for paramSetOut
472         */
473        HUKS_TAG_SYMMETRIC_KEY_DATA = HuksTagType.HUKS_TAG_TYPE_BYTES | 20001,
474        HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = HuksTagType.HUKS_TAG_TYPE_BYTES | 20002,
475        HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = HuksTagType.HUKS_TAG_TYPE_BYTES | 20003,
476    }
477}
478
479export default huks;
480