/* * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file * @kit AssetStoreKit */ /** * This module provides the capabilities for life cycle management of sensitive user data (Asset) such as passwords * and tokens, including adding, removing, updating, and querying. * * @namespace asset * @syscap SystemCapability.Security.Asset * @since 11 */ declare namespace asset { /** * Add an Asset. * Permission ohos.permission.STORE_PERSISTENT_DATA is required when the Asset needs to be stored persistently * by setting {@link Tag.IS_PERSISTENT} tag. * * @param { AssetMap } attributes - a map object containing attributes of the Asset to be added. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000003 - The asset already exists. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000014 - The file operation failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @since 11 */ function add(attributes: AssetMap): Promise; /** * Add an Asset to a specific user space. * Permission ohos.permission.STORE_PERSISTENT_DATA is required when the Asset needs to be stored persistently * by setting {@link Tag.IS_PERSISTENT} tag. * * @permission ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS * @param { number } userId - the user identifier to add an Asset. The user identifier cannot be lower than 100. * @param { AssetMap } attributes - a map object containing attributes of the Asset to be added. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000003 - The asset already exists. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000014 - The file operation failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @systemapi * @since 12 */ function addAsUser(userId: number, attributes: AssetMap): Promise; /** * Add an Asset. * Permission ohos.permission.STORE_PERSISTENT_DATA is required when the Asset needs to be stored persistently * by setting {@link Tag.IS_PERSISTENT} tag. * * @param { AssetMap } attributes - a map object containing attributes of the Asset to be added. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000003 - The asset already exists. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000014 - The file operation failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @since 12 */ function addSync(attributes: AssetMap): void; /** * Remove one or more Assets that match a search query. * * @param { AssetMap } query - a map object containing attributes of the Asset to be removed. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @since 11 */ function remove(query: AssetMap): Promise; /** * Remove one or more Assets that match a search query from a specific user space. * * @permission ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS * @param { number } userId - the user identifier to remove one or more Assets. The user identifier cannot be lower * than 100. * @param { AssetMap } query - a map object containing attributes of the Asset to be removed. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @systemapi * @since 12 */ function removeAsUser(userId: number, query: AssetMap): Promise; /** * Remove one or more Assets that match a search query. * * @param { AssetMap } query - a map object containing attributes of the Asset to be removed. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @since 12 */ function removeSync(query: AssetMap): void; /** * Update an Asset that matches a search query. * * @param { AssetMap } query - a map object containing attributes of the Asset to be updated. * @param { AssetMap } attributesToUpdate - a map object containing attributes with new values. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @since 11 */ function update(query: AssetMap, attributesToUpdate: AssetMap): Promise; /** * Update an Asset that matches a search query in a specific user space. * * @permission ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS * @param { number } userId - the user identifier to update an Asset. The user identifier cannot be lower than 100. * @param { AssetMap } query - a map object containing attributes of the Asset to be updated. * @param { AssetMap } attributesToUpdate - a map object containing attributes with new values. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @systemapi * @since 12 */ function updateAsUser(userId: number, query: AssetMap, attributesToUpdate: AssetMap): Promise; /** * Update an Asset that matches a search query. * * @param { AssetMap } query - a map object containing attributes of the Asset to be updated. * @param { AssetMap } attributesToUpdate - a map object containing attributes with new values. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000015 - Getting the system time failed. * @syscap SystemCapability.Security.Asset * @since 12 */ function updateSync(query: AssetMap, attributesToUpdate: AssetMap): void; /** * Preprocessing (e.g. get challenge) for querying one or more Assets that require user authentication. * * @param { AssetMap } query - a map object containing attributes of the Asset to be queried. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000016 - The cache exceeds the limit. * @throws { BusinessError } 24000017 - The capability is not supported. * @syscap SystemCapability.Security.Asset * @since 11 */ function preQuery(query: AssetMap): Promise; /** * Preprocessing (e.g. get challenge) for querying one or more Assets * that require user authentication in a specific user space. * * @permission ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS * @param { number } userId - the user identifier to pre-query one or more Assets. The user identifier cannot be * lower than 100. * @param { AssetMap } query - a map object containing attributes of the Asset to be queried. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000016 - The cache exceeds the limit. * @throws { BusinessError } 24000017 - The capability is not supported. * @syscap SystemCapability.Security.Asset * @systemapi * @since 12 */ function preQueryAsUser(userId: number, query: AssetMap): Promise; /** * Preprocessing (e.g. get challenge) for querying one or more Assets that require user authentication. * * @param { AssetMap } query - a map object containing attributes of the Asset to be queried. * @returns { Uint8Array } the challenge value to be used when {@link querySync} is called. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000016 - The cache exceeds the limit. * @throws { BusinessError } 24000017 - The capability is not supported. * @syscap SystemCapability.Security.Asset * @since 12 */ function preQuerySync(query: AssetMap): Uint8Array; /** * Query one or more Assets that match a search query. * * @param { AssetMap } query - a map object containing attributes of the Asset to be queried. * @returns { Promise> } the promise object returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000004 - Access denied. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000017 - The capability is not supported. * @syscap SystemCapability.Security.Asset * @since 11 */ function query(query: AssetMap): Promise>; /** * Query one or more Assets that match a search query in a specific user space. * * @permission ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS * @param { number } userId - the user identifier to query one or more Assets. The user identifier cannot be lower * than 100. * @param { AssetMap } query - a map object containing attributes of the Asset to be queried. * @returns { Promise> } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000004 - Access denied. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000017 - The capability is not supported. * @syscap SystemCapability.Security.Asset * @systemapi * @since 12 */ function queryAsUser(userId: number, query: AssetMap): Promise>; /** * Query one or more Assets that match a search query. * * @param { AssetMap } query - a map object containing attributes of the Asset to be queried. * @returns { Array } the query result. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Incorrect parameter types. * 2. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000002 - The asset is not found. * @throws { BusinessError } 24000004 - Access denied. * @throws { BusinessError } 24000005 - The screen lock status does not match. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000007 - The asset is corrupted. * @throws { BusinessError } 24000008 - The database operation failed. * @throws { BusinessError } 24000009 - The cryptography operation failed. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @throws { BusinessError } 24000017 - The capability is not supported. * @syscap SystemCapability.Security.Asset * @since 12 */ function querySync(query: AssetMap): Array; /** * Post-processing (e.g. release cached resource) for querying multiple Assets that require user authentication. * * @param { AssetMap } handle - a map object containing the handle returned by {@link preQuery}. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @syscap SystemCapability.Security.Asset * @since 11 */ function postQuery(handle: AssetMap): Promise; /** * Post-processing (e.g. release cached resource) for querying multiple Assets that require user authentication in a * specific user space. * * @permission ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS * @param { number } userId - the user identifier to post-query one or more Assets. The user identifier cannot be * lower than 100. * @param { AssetMap } handle - a map object containing the handle returned by {@link preQueryAsUser}. * @returns { Promise } the promise object returned by the function. * @throws { BusinessError } 201 - The caller doesn't have the permission. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @syscap SystemCapability.Security.Asset * @systemapi * @since 12 */ function postQueryAsUser(userId:number, handle: AssetMap): Promise; /** * Post-processing (e.g. release cached resource) for querying multiple Assets that require user authentication. * * @param { AssetMap } handle - a map object containing the handle returned by {@link preQuerySync}. * @throws { BusinessError } 401 - Parameter error. Possible causes: * 1. Mandatory parameters are left unspecified. * 2. Incorrect parameter types. * 3. Parameter verification failed. * @throws { BusinessError } 24000001 - The ASSET service is unavailable. * @throws { BusinessError } 24000006 - Insufficient memory. * @throws { BusinessError } 24000010 - IPC failed. * @throws { BusinessError } 24000011 - Calling the Bundle Manager service failed. * @throws { BusinessError } 24000012 - Calling the OS Account service failed. * @throws { BusinessError } 24000013 - Calling the Access Token service failed. * @syscap SystemCapability.Security.Asset * @since 12 */ function postQuerySync(handle: AssetMap): void; /** * A Map type containing tag-value pairs that describe the attributes of an Asset. * * @typedef { Map } * @syscap SystemCapability.Security.Asset * @since 11 */ type AssetMap = Map; /** * A type that indicates the secret or attribute value of an Asset tag. * * @typedef { boolean | number | Uint8Array } * @syscap SystemCapability.Security.Asset * @since 11 */ type Value = boolean | number | Uint8Array; /** * An enum type indicates when the Asset is accessible. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum Accessibility { /** * The secret value in the Asset can only be accessed after the device is powered on. * * @syscap SystemCapability.Security.Asset * @since 11 */ DEVICE_POWERED_ON = 0, /** * The secret value in the Asset can only be accessed after the device is first unlocked. * * @syscap SystemCapability.Security.Asset * @since 11 */ DEVICE_FIRST_UNLOCKED = 1, /** * The secret value in the Asset can only be accessed while the device is unlocked. * * @syscap SystemCapability.Security.Asset * @since 11 */ DEVICE_UNLOCKED = 2, } /** * An enum type indicates the user authentication type for Asset access control. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum AuthType { /** * The access to an Asset doesn't require user authentication. * * @syscap SystemCapability.Security.Asset * @since 11 */ NONE = 0x00, /** * The access to an Asset requires user authentication using either PIN/pattern/password or biometric traits. * * @syscap SystemCapability.Security.Asset * @since 11 */ ANY = 0xFF, } /** * An enum type indicates the type of Asset synchronization. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum SyncType { /** * An Asset with this attribute value is never allowed to be transferred out. * * @syscap SystemCapability.Security.Asset * @since 11 */ NEVER = 0, /** * An Asset with this attribute value can only be restored to the device from which it was transferred out. * * @syscap SystemCapability.Security.Asset * @since 11 */ THIS_DEVICE = 1 << 0, /** * An Asset with this attribute value can only be transferred out to a trusted device (user authorized). * * @syscap SystemCapability.Security.Asset * @since 11 */ TRUSTED_DEVICE = 1 << 1, /** * An Asset with this attribute value can only be transferred out to devices logged in with trusted accounts. * * @syscap SystemCapability.Security.Asset * @since 12 */ TRUSTED_ACCOUNT = 1 << 2, } /** * An enum type indicates the strategy for conflict resolution when handling duplicated Asset alias. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum ConflictResolution { /** * Directly overwrite an Asset with duplicated alias when a conflict is detected. * * @syscap SystemCapability.Security.Asset * @since 11 */ OVERWRITE = 0, /** * Throw an error so that the caller can take measures when a conflict is detected. * * @syscap SystemCapability.Security.Asset * @since 11 */ THROW_ERROR = 1, } /** * An enum type indicates the return type of the queried Asset. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum ReturnType { /** * Specify that the return data should contain both secret value and attributes. * * @syscap SystemCapability.Security.Asset * @since 11 */ ALL = 0, /** * Specify that the return data contains only attributes. * * @syscap SystemCapability.Security.Asset * @since 11 */ ATTRIBUTES = 1, } /** * An enum type indicates the additional action to be performed during operation. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 12 */ enum OperationType { /** * Synchronization is required during operation. * * @syscap SystemCapability.Security.Asset * @since 12 */ NEED_SYNC = 0, /** * Logout is required during operation. * * @syscap SystemCapability.Security.Asset * @since 12 */ NEED_LOGOUT = 1, } /** * An enum type containing the data type definitions for Asset attribute value. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum TagType { /** * The data type of Asset attribute value is bool. * * @syscap SystemCapability.Security.Asset * @since 11 */ BOOL = 0x01 << 28, /** * The data type of Asset attribute value is uint32. * * @syscap SystemCapability.Security.Asset * @since 11 */ NUMBER = 0x02 << 28, /** * The data type of Asset attribute value is byte array. * * @syscap SystemCapability.Security.Asset * @since 11 */ BYTES = 0x03 << 28, } /** * An enum type containing the Asset attribute tags. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum Tag { /** * A tag whose value is a byte array indicating the sensitive user data such as passwords and tokens. * * @syscap SystemCapability.Security.Asset * @since 11 */ SECRET = TagType.BYTES | 0x01, /** * A tag whose value is a byte array identifying an Asset. * * @syscap SystemCapability.Security.Asset * @since 11 */ ALIAS = TagType.BYTES | 0x02, /** * A tag whose value is a 32-bit unsigned integer indicating when the Asset can be accessed. * * @syscap SystemCapability.Security.Asset * @since 11 */ ACCESSIBILITY = TagType.NUMBER | 0x03, /** * A tag whose value is a bool indicating whether a screen lock password is required for the device. * * @syscap SystemCapability.Security.Asset * @since 11 */ REQUIRE_PASSWORD_SET = TagType.BOOL | 0x04, /** * A tag whose value is a 32-bit unsigned integer indicating the user authentication type for Asset access control. * * @syscap SystemCapability.Security.Asset * @since 11 */ AUTH_TYPE = TagType.NUMBER | 0x05, /** * A tag whose value is a 32-bit unsigned integer indicating the validity period in seconds of user authentication. * * @syscap SystemCapability.Security.Asset * @since 11 */ AUTH_VALIDITY_PERIOD = TagType.NUMBER | 0x06, /** * A tag whose value is a byte array indicating the authentication challenge for anti-replay protection. * * @syscap SystemCapability.Security.Asset * @since 11 */ AUTH_CHALLENGE = TagType.BYTES | 0x07, /** * A tag whose value is a byte array indicating the authentication token after a user is verified. * * @syscap SystemCapability.Security.Asset * @since 11 */ AUTH_TOKEN = TagType.BYTES | 0x08, /** * A tag whose value is a 32-bit unsigned integer indicating the type of Asset synchronization. * * @syscap SystemCapability.Security.Asset * @since 11 */ SYNC_TYPE = TagType.NUMBER | 0x10, /** * A tag whose value is a bool indicating whether Asset is stored persistently. * * @syscap SystemCapability.Security.Asset * @since 11 */ IS_PERSISTENT = TagType.BOOL | 0x11, /** * A tag whose value is a byte array indicating the first user-defined Asset data label (not allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_CRITICAL_1 = TagType.BYTES | 0x20, /** * A tag whose value is a byte array indicating the second user-defined Asset data label (not allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_CRITICAL_2 = TagType.BYTES | 0x21, /** * A tag whose value is a byte array indicating the third user-defined Asset data label (not allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_CRITICAL_3 = TagType.BYTES | 0x22, /** * A tag whose value is a byte array indicating the fourth user-defined Asset data label (not allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_CRITICAL_4 = TagType.BYTES | 0x23, /** * A tag whose value is a byte array indicating the first user-defined Asset data label (allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_NORMAL_1 = TagType.BYTES | 0x30, /** * A tag whose value is a byte array indicating the second user-defined Asset data label (allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_NORMAL_2 = TagType.BYTES | 0x31, /** * A tag whose value is a byte array indicating the third user-defined Asset data label (allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_NORMAL_3 = TagType.BYTES | 0x32, /** * A tag whose value is a byte array indicating the fourth user-defined Asset data label (allow to update). * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_LABEL_NORMAL_4 = TagType.BYTES | 0x33, /** * A local tag whose value is a byte array indicating the first user-defined Asset data label (allow to update). * The information of a local tag will not be synchronized. * * @syscap SystemCapability.Security.Asset * @since 12 */ DATA_LABEL_NORMAL_LOCAL_1 = TagType.BYTES | 0x34, /** * A local tag whose value is a byte array indicating the second user-defined Asset data label (allow to update). * The information of a local tag will not be synchronized. * * @syscap SystemCapability.Security.Asset * @since 12 */ DATA_LABEL_NORMAL_LOCAL_2 = TagType.BYTES | 0x35, /** * A local tag whose value is a byte array indicating the third user-defined Asset data label (allow to update). * The information of a local tag will not be synchronized. * * @syscap SystemCapability.Security.Asset * @since 12 */ DATA_LABEL_NORMAL_LOCAL_3 = TagType.BYTES | 0x36, /** * A local tag whose value is a byte array indicating the fourth user-defined Asset data label (allow to update). * The information of a local tag will not be synchronized. * * @syscap SystemCapability.Security.Asset * @since 12 */ DATA_LABEL_NORMAL_LOCAL_4 = TagType.BYTES | 0x37, /** * A tag whose value is a 32-bit unsigned integer indicating the return type of the queried Asset. * * @syscap SystemCapability.Security.Asset * @since 11 */ RETURN_TYPE = TagType.NUMBER | 0x40, /** * A tag whose value is a 32-bit unsigned integer indicating the maximum number of returned Assets in one query. * * @syscap SystemCapability.Security.Asset * @since 11 */ RETURN_LIMIT = TagType.NUMBER | 0x41, /** * A tag whose value is a 32-bit unsigned integer indicating the offset of return data in batch query. * * @syscap SystemCapability.Security.Asset * @since 11 */ RETURN_OFFSET = TagType.NUMBER | 0x42, /** * A tag whose value is a 32-bit unsigned integer indicating how the query results are sorted. * * @syscap SystemCapability.Security.Asset * @since 11 */ RETURN_ORDERED_BY = TagType.NUMBER | 0x43, /** * A tag whose value is a 32-bit unsigned integer indicating the strategy for resolving Asset conflicts. * * @syscap SystemCapability.Security.Asset * @since 11 */ CONFLICT_RESOLUTION = TagType.NUMBER | 0x44, /** * A tag whose value is a byte array indicating the update time of an Asset. * * @syscap SystemCapability.Security.Asset * @since 12 */ UPDATE_TIME = TagType.BYTES | 0x45, /** * A tag whose value is a 32-bit unsigned integer indicating the additional action to be performed during operation. * * @syscap SystemCapability.Security.Asset * @since 12 */ OPERATION_TYPE = TagType.NUMBER | 0x46, } /** * An enum type containing the Asset error codes. * * @enum { number } * @syscap SystemCapability.Security.Asset * @since 11 */ enum ErrorCode { /** * The error code indicates that the caller doesn't have the permission. * * @syscap SystemCapability.Security.Asset * @since 11 */ PERMISSION_DENIED = 201, /** * The error code indicates that the caller is not a system application. * * @syscap SystemCapability.Security.Asset * @since 12 */ NOT_SYSTEM_APPLICATION = 202, /** * The error code indicates that the argument is invalid. * * @syscap SystemCapability.Security.Asset * @since 11 */ INVALID_ARGUMENT = 401, /** * The error code indicates that the ASSET service is unavailable. * * @syscap SystemCapability.Security.Asset * @since 11 */ SERVICE_UNAVAILABLE = 24000001, /** * The error code indicates that the asset is not found. * * @syscap SystemCapability.Security.Asset * @since 11 */ NOT_FOUND = 24000002, /** * The error code indicates that the asset already exists. * * @syscap SystemCapability.Security.Asset * @since 11 */ DUPLICATED = 24000003, /** * The error code indicates that access to the asset is denied. * * @syscap SystemCapability.Security.Asset * @since 11 */ ACCESS_DENIED = 24000004, /** * The error code indicates that the screen lock status does not match. * * @syscap SystemCapability.Security.Asset * @since 11 */ STATUS_MISMATCH = 24000005, /** * The error code indicates insufficient memory. * * @syscap SystemCapability.Security.Asset * @since 11 */ OUT_OF_MEMORY = 24000006, /** * The error code indicates that the asset is corrupted. * * @syscap SystemCapability.Security.Asset * @since 11 */ DATA_CORRUPTED = 24000007, /** * The error code indicates that the database operation failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ DATABASE_ERROR = 24000008, /** * The error code indicates that the cryptography operation failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ CRYPTO_ERROR = 24000009, /** * The error code indicates that the ipc failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ IPC_ERROR = 24000010, /** * The error code indicates that calling the Bundle Manager service failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ BMS_ERROR = 24000011, /** * The error code indicates that calling the OS Account service failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ ACCOUNT_ERROR = 24000012, /** * The error code indicates that calling the Access Token service failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ ACCESS_TOKEN_ERROR = 24000013, /** * The error code indicates that the file operation failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ FILE_OPERATION_ERROR = 24000014, /** * The error code indicates that getting the system time failed. * * @syscap SystemCapability.Security.Asset * @since 11 */ GET_SYSTEM_TIME_ERROR = 24000015, /** * The error code indicates that the cache exceeds the limit. * * @syscap SystemCapability.Security.Asset * @since 11 */ LIMIT_EXCEEDED = 24000016, /** * The error code indicates that the capability is not supported. * * @syscap SystemCapability.Security.Asset * @since 11 */ UNSUPPORTED = 24000017, } } export default asset;