鸿蒙开发接口安全:【@ohos.security.huks (通用密钥库系统)】

通用密钥库系统

说明

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。 HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。

导入模块

import huks from '@ohos.security.huks'

HuksErrorCode

表示错误码的枚举。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_SUCCESS0表示成功。
HUKS_FAILURE-1表示失败。
HUKS_ERROR_BAD_STATE-2表示错误的状态。
HUKS_ERROR_INVALID_ARGUMENT-3表示无效的数据。
HUKS_ERROR_NOT_SUPPORTED-4表示不支持。
HUKS_ERROR_NO_PERMISSION-5表示没有许可。
HUKS_ERROR_INSUFFICIENT_DATA-6表示数据不足。
HUKS_ERROR_BUFFER_TOO_SMALL-7表示缓冲区太小。
HUKS_ERROR_INSUFFICIENT_MEMORY-8表示内存不足。
HUKS_ERROR_COMMUNICATION_FAILURE-9表示通讯失败。
HUKS_ERROR_STORAGE_FAILURE-10表示存储故障。
HUKS_ERROR_HARDWARE_FAILURE-11表示硬件故障。
HUKS_ERROR_ALREADY_EXISTS-12表示已经存在。
HUKS_ERROR_NOT_EXIST-13表示不存在。
HUKS_ERROR_NULL_POINTER-14表示空指针。
HUKS_ERROR_FILE_SIZE_FAIL-15表示文件大小失败。
HUKS_ERROR_READ_FILE_FAIL-16表示读取文件失败。
HUKS_ERROR_INVALID_PUBLIC_KEY-17表示无效的公钥。
HUKS_ERROR_INVALID_PRIVATE_KEY-18表示无效的私钥。
HUKS_ERROR_INVALID_KEY_INFO-19表示无效的密钥信息。
HUKS_ERROR_HASH_NOT_EQUAL-20表示哈希不相等。
HUKS_ERROR_MALLOC_FAIL-21表示MALLOC 失败。
HUKS_ERROR_WRITE_FILE_FAIL-22表示写文件失败。
HUKS_ERROR_REMOVE_FILE_FAIL-23表示删除文件失败。
HUKS_ERROR_OPEN_FILE_FAIL-24表示打开文件失败。
HUKS_ERROR_CLOSE_FILE_FAIL-25表示关闭文件失败。
HUKS_ERROR_MAKE_DIR_FAIL-26表示创建目录失败。
HUKS_ERROR_INVALID_KEY_FILE-27表示无效的密钥文件。
HUKS_ERROR_IPC_MSG_FAIL-28表示IPC 信息失败。
HUKS_ERROR_REQUEST_OVERFLOWS-29表示请求溢出。
HUKS_ERROR_PARAM_NOT_EXIST-30表示参数不存在。
HUKS_ERROR_CRYPTO_ENGINE_ERROR-31表示CRYPTO ENGINE错误。
HUKS_ERROR_COMMUNICATION_TIMEOUT-32表示通讯超时。
HUKS_ERROR_IPC_INIT_FAIL-33表示IPC 初始化失败。
HUKS_ERROR_IPC_DLOPEN_FAIL-34表示IPC DLOPEN 失败。
HUKS_ERROR_EFUSE_READ_FAIL-35表示EFUSE 读取失败。
HUKS_ERROR_NEW_ROOT_KEY_MATERIAL_EXIST-36表示存在新的根密钥材料。
HUKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL-37表示更新根密钥材料失败。
HUKS_ERROR_VERIFICATION_FAILED-38表示验证证书链失败。
HUKS_ERROR_CHECK_GET_ALG_FAIL-100表示检查获取 ALG 失败。
HUKS_ERROR_CHECK_GET_KEY_SIZE_FAIL-101表示检查获取密钥大小失败。
HUKS_ERROR_CHECK_GET_PADDING_FAIL-102表示检查获取填充失败。
HUKS_ERROR_CHECK_GET_PURPOSE_FAIL-103表示检查获取目的失败。
HUKS_ERROR_CHECK_GET_DIGEST_FAIL-104表示检查获取摘要失败。
HUKS_ERROR_CHECK_GET_MODE_FAIL-105表示检查获取模式失败。
HUKS_ERROR_CHECK_GET_NONCE_FAIL-106表示检查获取随机数失败。
HUKS_ERROR_CHECK_GET_AAD_FAIL-107表示检查获取 AAD 失败。
HUKS_ERROR_CHECK_GET_IV_FAIL-108表示检查 GET IV 失败。
HUKS_ERROR_CHECK_GET_AE_TAG_FAIL-109表示检查获取 AE 标记失败。
HUKS_ERROR_CHECK_GET_SALT_FAIL-110表示检查获取SALT失败。
HUKS_ERROR_CHECK_GET_ITERATION_FAIL-111表示检查获取迭代失败。
HUKS_ERROR_INVALID_ALGORITHM-112表示无效的算法。
HUKS_ERROR_INVALID_KEY_SIZE-113表示无效的密钥大小。
HUKS_ERROR_INVALID_PADDING-114表示无效的填充。
HUKS_ERROR_INVALID_PURPOSE-115表示无效的目的。
HUKS_ERROR_INVALID_MODE-116表示无效模式。
HUKS_ERROR_INVALID_DIGEST-117表示无效的摘要。
HUKS_ERROR_INVALID_SIGNATURE_SIZE-118表示签名大小无效。
HUKS_ERROR_INVALID_IV-119表示无效的 IV。
HUKS_ERROR_INVALID_AAD-120表示无效的 AAD。
HUKS_ERROR_INVALID_NONCE-121表示无效的随机数。
HUKS_ERROR_INVALID_AE_TAG-122表示无效的 AE 标签。
HUKS_ERROR_INVALID_SALT-123表示无效SALT。
HUKS_ERROR_INVALID_ITERATION-124表示无效的迭代。
HUKS_ERROR_INVALID_OPERATION-125表示无效操作。
HUKS_ERROR_INTERNAL_ERROR-999表示内部错误。
HUKS_ERROR_UNKNOWN_ERROR-1000表示未知错误。

HuksKeyPurpose

表示密钥用途。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_KEY_PURPOSE_ENCRYPT1表示密钥用于对明文进行加密操作。
HUKS_KEY_PURPOSE_DECRYPT2表示密钥用于对密文进行解密操作。
HUKS_KEY_PURPOSE_SIGN4表示密钥用于对数据进行签名。
HUKS_KEY_PURPOSE_VERIFY8表示密钥用于验证签名后的数据。
HUKS_KEY_PURPOSE_DERIVE16表示密钥用于派生密钥。
HUKS_KEY_PURPOSE_WRAP32表示密钥用于加密导入。
HUKS_KEY_PURPOSE_UNWRAP64表示密钥加密导出。
HUKS_KEY_PURPOSE_MAC128表示密钥用于生成mac消息验证码。
HUKS_KEY_PURPOSE_AGREE256表示密钥用于进行密钥协商。

HuksKeyDigest

表示摘要算法。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_DIGEST_NONE0表示无摘要算法。
HUKS_DIGEST_MD51表示MD5摘要算法。
HUKS_DIGEST_SHA110表示SHA1摘要算法。
HUKS_DIGEST_SHA22411表示SHA224摘要算法。
HUKS_DIGEST_SHA25612表示SHA256摘要算法。
HUKS_DIGEST_SHA38413表示SHA384摘要算法。
HUKS_DIGEST_SHA51214表示SHA512摘要算法。

HuksKeyPadding

表示补齐算法。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_PADDING_NONE0表示不使用补齐算法。
HUKS_PADDING_OAEP1表示使用OAEP补齐算法。
HUKS_PADDING_PSS2表示使用PSS补齐算法。
HUKS_PADDING_PKCS1_V1_53表示使用PKCS1_V1_5补齐算法。
HUKS_PADDING_PKCS54表示使用PKCS5补齐算法。
HUKS_PADDING_PKCS75表示使用PKCS7补齐算法。

HuksCipherMode

表示加密模式。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_MODE_ECB1表示使用ECB加密模式。
HUKS_MODE_CBC2表示使用CBC加密模式。
HUKS_MODE_CTR3表示使用CTR加密模式。
HUKS_MODE_OFB4表示使用OFB加密模式。
HUKS_MODE_CCM31表示使用CCM加密模式。
HUKS_MODE_GCM32表示使用GCM加密模式。

HuksKeySize

表示密钥长度。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_RSA_KEY_SIZE_512512表示使用RSA算法的密钥长度为512bit。
HUKS_RSA_KEY_SIZE_768768表示使用RSA算法的密钥长度为768bit。
HUKS_RSA_KEY_SIZE_10241024表示使用RSA算法的密钥长度为1024bit。
HUKS_RSA_KEY_SIZE_20482048表示使用RSA算法的密钥长度为2048bit。
HUKS_RSA_KEY_SIZE_30723072表示使用RSA算法的密钥长度为3072bit。
HUKS_RSA_KEY_SIZE_40964096表示使用RSA算法的密钥长度为4096bit。
HUKS_ECC_KEY_SIZE_224224表示使用ECC算法的密钥长度为224bit。
HUKS_ECC_KEY_SIZE_256256表示使用ECC算法的密钥长度为256bit。
HUKS_ECC_KEY_SIZE_384384表示使用ECC算法的密钥长度为384bit。
HUKS_ECC_KEY_SIZE_521521表示使用ECC算法的密钥长度为521bit。
HUKS_AES_KEY_SIZE_128128表示使用AES算法的密钥长度为128bit。
HUKS_AES_KEY_SIZE_192196表示使用AES算法的密钥长度为196bit。
HUKS_AES_KEY_SIZE_256256表示使用AES算法的密钥长度为256bit。
HUKS_AES_KEY_SIZE_512512表示使用AES算法的密钥长度为512bit。
HUKS_CURVE25519_KEY_SIZE_256256表示使用CURVE25519算法的密钥长度为256bit。
HUKS_DH_KEY_SIZE_20482048表示使用DH算法的密钥长度为2048bit。
HUKS_DH_KEY_SIZE_30723072表示使用DH算法的密钥长度为3072bit。
HUKS_DH_KEY_SIZE_40964096表示使用DH算法的密钥长度为4096bit。

HuksKeyAlg

表示密钥使用的算法。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_ALG_RSA1表示使用RSA算法。
HUKS_ALG_ECC2表示使用ECC算法。
HUKS_ALG_DSA3表示使用DSA算法。
HUKS_ALG_AES20表示使用AES算法。
HUKS_ALG_HMAC50表示使用HMAC算法。
HUKS_ALG_HKDF51表示使用HKDF算法。
HUKS_ALG_PBKDF252表示使用PBKDF2算法。
HUKS_ALG_ECDH100表示使用ECDH算法。
HUKS_ALG_X25519101表示使用X25519算法。
HUKS_ALG_ED25519102表示使用ED25519算法。
HUKS_ALG_DH103表示使用DH算法。

HuksKeyGenerateType

表示生成密钥的类型。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_KEY_GENERATE_TYPE_DEFAULT0默认生成的密钥。
HUKS_KEY_GENERATE_TYPE_DERIVE1派生生成的密钥。
HUKS_KEY_GENERATE_TYPE_AGREE2协商生成的密钥。

HuksKeyFlag

表示密钥的产生方式。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_KEY_FLAG_IMPORT_KEY1表示通过导入公钥接口导入的密钥。
HUKS_KEY_FLAG_GENERATE_KEY2表示通过生成密钥接口生成的密钥。
HUKS_KEY_FLAG_AGREE_KEY3表示通过生成密钥协商接口生成的密钥。
HUKS_KEY_FLAG_DERIVE_KEY4表示通过生成密钥派生接口生成的密钥。

HuksKeyStorageType

表示密钥存储方式。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_STORAGE_TEMP0表示通过本地直接管理密钥。
HUKS_STORAGE_PERSISTENT1表示通过HUKS service管理密钥。

HuksSendType

表示发送Tag的方式。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_SEND_TYPE_ASYNC0表示异步发送TAG。
HUKS_SEND_TYPE_SYNC1表示同步发送TAG。

HuksTagType

表示Tag的数据类型。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_TAG_TYPE_INVALID0 << 28表示非法的Tag类型。
HUKS_TAG_TYPE_INT1 << 28表示该Tag的数据类型为int类型的number。
HUKS_TAG_TYPE_UINT2 << 28表示该Tag的数据类型为uint类型的number。
HUKS_TAG_TYPE_ULONG3 << 28表示该Tag的数据类型为bigint。
HUKS_TAG_TYPE_BOOL4 << 28表示该Tag的数据类型为boolean。
HUKS_TAG_TYPE_BYTES5 << 28表示该Tag的数据类型为Uint8Array。

HuksTag

表示调用参数的Tag。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

名称说明
HUKS_TAG_INVALIDHuksTagType.HUKS_TAG_TYPE_INVALID0
HUKS_TAG_ALGORITHMHUKS_TAG_TYPE_UINT1
HUKS_TAG_PURPOSEHuksTagType.HUKS_TAG_TYPE_UINT2
HUKS_TAG_KEY_SIZEHuksTagType.HUKS_TAG_TYPE_UINT3
HUKS_TAG_DIGESTHuksTagType.HUKS_TAG_TYPE_UINT4
HUKS_TAG_PADDINGHuksTagType.HUKS_TAG_TYPE_UINT5
HUKS_TAG_BLOCK_MODEHuksTagType.HUKS_TAG_TYPE_UINT6
HUKS_TAG_KEY_TYPEHuksTagType.HUKS_TAG_TYPE_UINT7
HUKS_TAG_ASSOCIATED_DATAHuksTagType.HUKS_TAG_TYPE_BYTES8
HUKS_TAG_NONCEHuksTagType.HUKS_TAG_TYPE_BYTES9
HUKS_TAG_IVHuksTagType.HUKS_TAG_TYPE_BYTES10
HUKS_TAG_INFOHuksTagType.HUKS_TAG_TYPE_BYTES11
HUKS_TAG_SALTHuksTagType.HUKS_TAG_TYPE_BYTES12
HUKS_TAG_PWDHuksTagType.HUKS_TAG_TYPE_BYTES13
HUKS_TAG_ITERATIONHuksTagType.HUKS_TAG_TYPE_UINT14
HUKS_TAG_KEY_GENERATE_TYPEHuksTagType.HUKS_TAG_TYPE_UINT15
HUKS_TAG_DERIVE_MAIN_KEYHuksTagType.HUKS_TAG_TYPE_BYTES16
HUKS_TAG_DERIVE_FACTORHuksTagType.HUKS_TAG_TYPE_BYTES17
HUKS_TAG_DERIVE_ALGHuksTagType.HUKS_TAG_TYPE_UINT18
HUKS_TAG_AGREE_ALGHuksTagType.HUKS_TAG_TYPE_UINT19
HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIASHuksTagType.HUKS_TAG_TYPE_BOOL20
HUKS_TAG_AGREE_PRIVATE_KEY_ALIASHuksTagType.HUKS_TAG_TYPE_BYTES21
HUKS_TAG_AGREE_PUBLIC_KEYHuksTagType.HUKS_TAG_TYPE_BYTES22
HUKS_TAG_KEY_ALIASHuksTagType.HUKS_TAG_TYPE_BYTES23
HUKS_TAG_DERIVE_KEY_SIZEHuksTagType.HUKS_TAG_TYPE_UINT24
HUKS_TAG_ACTIVE_DATETIMEHuksTagType.HUKS_TAG_TYPE_ULONG201
HUKS_TAG_ORIGINATION_EXPIRE_DATETIMEHuksTagType.HUKS_TAG_TYPE_ULONG202
HUKS_TAG_USAGE_EXPIRE_DATETIMEHuksTagType.HUKS_TAG_TYPE_ULONG203
HUKS_TAG_CREATION_DATETIMEHuksTagType.HUKS_TAG_TYPE_ULONG204
HUKS_TAG_ALL_USERSksTagType.HUKS_TAG_TYPE_BOOL301
HUKS_TAG_USER_IDHuksTagType.HUKS_TAG_TYPE_UINT302
HUKS_TAG_NO_AUTH_REQUIREDHuksTagType.HUKS_TAG_TYPE_BOOL303
HUKS_TAG_USER_AUTH_TYPEHuksTagType.HUKS_TAG_TYPE_UINT304
HUKS_TAG_AUTH_TIMEOUTHuksTagType.HUKS_TAG_TYPE_UINT305
HUKS_TAG_AUTH_TOKENHuksTagType.HUKS_TAG_TYPE_BYTES306
HUKS_TAG_ATTESTATION_CHALLENGEHuksTagType.HUKS_TAG_TYPE_BYTES501
HUKS_TAG_ATTESTATION_APPLICATION_IDHuksTagType.HUKS_TAG_TYPE_BYTES502
HUKS_TAG_ATTESTATION_ID_BRANDHuksTagType.HUKS_TAG_TYPE_BYTES503
HUKS_TAG_ATTESTATION_ID_DEVICEHuksTagType.HUKS_TAG_TYPE_BYTES504
HUKS_TAG_ATTESTATION_ID_PRODUCTHuksTagType.HUKS_TAG_TYPE_BYTES505
HUKS_TAG_ATTESTATION_ID_SERIALHuksTagType.HUKS_TAG_TYPE_BYTES506
HUKS_TAG_ATTESTATION_ID_IMEIHuksTagType.HUKS_TAG_TYPE_BYTES507
HUKS_TAG_ATTESTATION_ID_MEIDHuksTagType.HUKS_TAG_TYPE_BYTES508
HUKS_TAG_ATTESTATION_ID_MANUFACTURERHuksTagType.HUKS_TAG_TYPE_BYTES509
HUKS_TAG_ATTESTATION_ID_MODELHuksTagType.HUKS_TAG_TYPE_BYTES510
HUKS_TAG_ATTESTATION_ID_ALIASHuksTagType.HUKS_TAG_TYPE_BYTES511
HUKS_TAG_ATTESTATION_ID_SOCIDHuksTagType.HUKS_TAG_TYPE_BYTES512
HUKS_TAG_ATTESTATION_ID_UDIDHuksTagType.HUKS_TAG_TYPE_BYTES513
HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFOHuksTagType.HUKS_TAG_TYPE_BYTES514
HUKS_TAG_ATTESTATION_ID_VERSION_INFOHuksTagType.HUKS_TAG_TYPE_BYTES515
HUKS_TAG_IS_KEY_ALIASHuksTagType.HUKS_TAG_TYPE_BOOL1001
HUKS_TAG_KEY_STORAGE_FLAGHuksTagType.HUKS_TAG_TYPE_UINT1002
HUKS_TAG_IS_ALLOWED_WRAPHuksTagType.HUKS_TAG_TYPE_BOOL1003
HUKS_TAG_KEY_WRAP_TYPEHuksTagType.HUKS_TAG_TYPE_UINT1004
HUKS_TAG_KEY_AUTH_IDHuksTagType.HUKS_TAG_TYPE_BYTES1005
HUKS_TAG_KEY_ROLEHuksTagType.HUKS_TAG_TYPE_UINT1006
HUKS_TAG_KEY_FLAGHuksTagType.HUKS_TAG_TYPE_UINT1007
HUKS_TAG_IS_ASYNCHRONIZEDHuksTagType.HUKS_TAG_TYPE_UINT1008
HUKS_TAG_SECURE_KEY_ALIASHuksTagType.HUKS_TAG_TYPE_BOOL1009
HUKS_TAG_SECURE_KEY_UUIDHuksTagType.HUKS_TAG_TYPE_BYTES1010
HUKS_TAG_KEY_DOMAINHuksTagType.HUKS_TAG_TYPE_UINT1011
HUKS_TAG_PROCESS_NAMEHuksTagType.HUKS_TAG_TYPE_BYTES10001
HUKS_TAG_PACKAGE_NAMEHuksTagType.HUKS_TAG_TYPE_BYTES10002
HUKS_TAG_ACCESS_TIMEHuksTagType.HUKS_TAG_TYPE_UINT10003
HUKS_TAG_USES_TIMEHuksTagType.HUKS_TAG_TYPE_UINT10004
HUKS_TAG_CRYPTO_CTXHuksTagType.HUKS_TAG_TYPE_ULONG10005
HUKS_TAG_KEYHuksTagType.HUKS_TAG_TYPE_BYTES10006
HUKS_TAG_KEY_VERSIONHuksTagType.HUKS_TAG_TYPE_UINT10007
HUKS_TAG_PAYLOAD_LENHuksTagType.HUKS_TAG_TYPE_UINT10008
HUKS_TAG_AE_TAGHuksTagType.HUKS_TAG_TYPE_BYTES10009
HUKS_TAG_IS_KEY_HANDLEHuksTagType.HUKS_TAG_TYPE_ULONG10010
HUKS_TAG_OS_VERSIONHuksTagType.HUKS_TAG_TYPE_UINT10101
HUKS_TAG_OS_PATCHLEVELHuksTagType.HUKS_TAG_TYPE_UINT10102
HUKS_TAG_SYMMETRIC_KEY_DATAHuksTagType.HUKS_TAG_TYPE_BYTES20001
HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATAHuksTagType.HUKS_TAG_TYPE_BYTES20002
HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATAHuksTagType.HUKS_TAG_TYPE_BYTES20003

huks.generateKey

generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

生成密钥,使用Callback回调异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring别名。
options[HuksOptions]用于存放生成key所需TAG。
callbackAsyncCallback<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其余结果请参考HuksResult进行错误码查询。

示例:

/* 以生成RSA512密钥为例 */
var keyAlias = 'keyAlias';
var properties = new Array();
properties[0] = {tag: huks.HuksTag.HUKS_TAG_ALGORITHM,value: huks.HuksKeyAlg.HUKS_ALG_RSA
};
properties[1] = {tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_512
};
properties[2] = {tag: huks.HuksTag.HUKS_TAG_PURPOSE,value:
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT |
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
};
properties[3] = {tag: huks.HuksTag.HUKS_TAG_PADDING,value: huks.HuksKeyPadding.HUKS_PADDING_OAEP
};
properties[4] = {tag: huks.HuksTag.HUKS_TAG_DIGEST,value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256
};
var options = {properties: properties
};
huks.generateKey(keyAlias, options, function (err, data){}); 

huks.generateKey

generateKey(keyAlias: string, options: HuksOptions) : Promise

生成密钥,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名。
options[HuksOptions]用于存放生成key所需TAG。

返回值:(可选,如不涉及可删除)

类型说明
Promise<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。

示例:

/* 以生成ECC256密钥为例 */
var keyAlias = 'keyAlias';
var properties = new Array();
properties[0] = {tag: huks.HuksTag.HUKS_TAG_ALGORITHM,value: huks.HuksKeyAlg.HUKS_ALG_ECC
};
properties[1] = {tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,value: huks.HuksKeySize.HUKS_ECC_KEY_SIZE_256
};
properties[2] = {tag: huks.HuksTag.HUKS_TAG_PURPOSE,value:
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN |
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
};
properties[3] = {tag: huks.HuksTag.HUKS_TAG_DIGEST,value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256
};
var options = {properties: properties
};
var result = huks.generateKey(keyAlias, options);

huks.deleteKey

deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

删除密钥,使用Callback回调异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,应为生成key时传入的别名。
options[HuksOptions]空对象(此处传空即可)。
callbackAsyncCallback<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。

示例:

/* 此处options选择emptyOptions传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
huks.deleteKey(keyAlias, emptyOptions, function (err, data) {});

huks.deleteKey

deleteKey(keyAlias: string, options: HuksOptions) : Promise

删除密钥,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,应为生成key时传入的别名。
options[HuksOptions]空对象(此处传空即可)。

返回值:

类型说明
Promise<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。

示例:

/* 此处options选择emptyOptions传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
var result = huks.deleteKey(keyAlias, emptyOptions);

huks.getSdkVersion

getSdkVersion(options: HuksOptions) : string

获取当前系统sdk版本。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
options[HuksOptions]空对象,用于存放sdk版本。

返回值:

类型说明
string返回sdk版本。

示例:

/* 此处options选择emptyOptions传空 */
var emptyOptions = {properties: []
};
var result = huks.getSdkVersion(emptyOptions);

huks.importKey

importKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

导入密钥,使用Callback方式回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,用于存放所需密钥。
options[HuksOptions]用于导入时所需TAG和需要导入的密钥。
callbackAsyncCallback<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。

示例:

/* 以导入AES256密钥为例 */
var plainTextSize32 = makeRandomArr(32);
function makeRandomArr(size) {var arr = new Uint8Array(size);for (var i = 0; i < size; i++) {arr[i] = Math.floor(Math.random() * 10);}return arr;
};
var keyAlias = 'keyAlias';
var properties = new Array();
properties[0] = {tag: huks.HuksTag.HUKS_TAG_ALGORITHM,value: huks.HuksKeyAlg.HUKS_ALG_AES
};
properties[1] = {tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,value: huks.HuksKeySize.HUKS_AES_KEY_SIZE_256
};
properties[2] = {tag: huks.HuksTag.HUKS_TAG_PURPOSE,value:
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
};
properties[3] = {tag: huks.HuksTag.HUKS_TAG_PADDING,value:huks.HuksKeyPadding.HUKS_PADDING_PKCS7
};
properties[4] = {tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,value: huks.HuksCipherMode.HUKS_MODE_ECB
};
var options = {properties: properties,inData: plainTextSize32
};
huks.importKey(keyAlias, options, function (err, data){});

huks.importKey

importKey(keyAlias: string, options: HuksOptions) : Promise

导入密钥,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,用于存放所需密钥。
options[HuksOptions]用于导入时所需TAG和需要导入的密钥。

返回值:

类型说明
Promise<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。

示例:

/* 以导入AES128为例 */
var plainTextSize32 = makeRandomArr(32);function makeRandomArr(size) {var arr = new Uint8Array(size);for (var i = 0; i < size; i++) {arr[i] = Math.floor(Math.random() * 10);}return arr;
};/*第一步:生成密钥*/
var keyAlias = 'keyAlias';
var properties = new Array();
properties[0] = {tag: huks.HuksTag.HUKS_TAG_ALGORITHM,value: huks.HuksKeyAlg.HUKS_ALG_AES
};
properties[1] = {tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,value: huks.HuksKeySize.HUKS_AES_KEY_SIZE_128
};
properties[2] = {tag: huks.HuksTag.HUKS_TAG_PURPOSE,value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
};
properties[3] = {tag: huks.HuksTag.HUKS_TAG_PADDING,value:huks.HuksKeyPadding.HUKS_PADDING_PKCS7
};
properties[4] = {tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,value: huks.HuksCipherMode.HUKS_MODE_ECB
};
var huksoptions = {properties: properties,inData: plainTextSize32
};
var result = huks.importKey(keyAlias, huksoptions);

huks.exportKey

exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

导出密钥,使用Callback方式回调异步返回的结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,应与所用密钥生成时使用的别名相同。
options[HuksOptions]空对象(此处传空即可)。
callbackAsyncCallback<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。outData:返回从密钥中导出的公钥。

示例:

/* 此处options选择emptyOptions来传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
huks.exportKey(keyAlias, emptyOptions, function (err, data){});

huks.exportKey

exportKey(keyAlias: string, options: HuksOptions) : Promise

导出密钥,使用Promise方式回调异步返回的结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,应与所用密钥生成时使用的别名相同。
options[HuksOptions]空对象(此处传空即可)。

返回值:

类型说明
Promise<[HuksResult]>返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。outData:返回从密钥中导出的公钥。

示例:

/* 此处options选择emptyOptions来传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
var result = huks.exportKey(keyAlias, emptyOptions);

huks.getKeyProperties

getKeyProperties(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

获取密钥属性,使用Callback回调异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,应与所用密钥生成时使用的别名相同。
options[HuksOptions]空对象(此处传空即可)。
callbackAsyncCallback<[HuksResult]>errorCode:返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。

示例:

/* 此处options选择emptyOptions来传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
huks.getKeyProperties(keyAlias, emptyOptions, function (err, data){});

huks.getKeyProperties

getKeyProperties(keyAlias: string, options: HuksOptions) : Promise

获取密钥属性,使用Promise回调异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring密钥别名,应与所用密钥生成时使用的别名相同。
options[HuksOptions]空对象(此处传空即可)。

返回值:

类型说明
Promise<[HuksResult]>errorCode:返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。properties:返回值为生成密钥时所需参数。

示例:

/* 此处options选择emptyOptions来传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
var result = huks.getKeyProperties(keyAlias, emptyOptions);

huks.isKeyExist

isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

判断密钥是否存在,使用Callback回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring所需查找的密钥的别名。
options[HuksOptions]空对象(此处传空即可)。
callbackAsyncCallbackFALSE代表密钥不存在,TRUE代表密钥存在。

示例:

/* 此处options选择emptyOptions来传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
huks.isKeyExist(keyAlias, emptyOptions, function (err, data){});

huks.isKeyExist

isKeyExist(keyAlias: string, options: HuksOptions) : Promise

判断密钥是否存在,使用Promise回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstring所需查找的密钥的别名。
options[HuksOptions]空对象(此处传空即可)。

返回值:

类型说明
PromiseFALSE代表密钥不存在,TRUE代表密钥存在。

示例:

/* 此处options选择emptyOptions来传空 */
var keyAlias = 'keyAlias';
var emptyOptions = {properties: []
};
var result = huks.isKeyExist(keyAlias, emptyOptions);

huks.init

init(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void

init操作密钥接口,使用Callback回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstringInit操作密钥的别名。
options[HuksOptions]Init操作的参数集合。
callbackAsyncCallback<[HuksHandle]>将Init操作操作返回的handle添加到密钥管理系统的回调。

huks.init

init(keyAlias: string, options: HuksOptions) : Promise

init操作密钥接口,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
keyAliasstringInit操作密钥的别名。
options[HuksOptions]Init参数集合。
promisePromise<[HuksHandle]>将Init操作返回的handle添加到密钥管理系统的回调。

huks.update

update(handle: number, token?: Uint8Array, options: HuksOptions, callback: AsyncCallback) : void

update操作密钥接口,使用Callback回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
handlenumberUpdate操作的handle。
tokenUint8ArrayUpdate操作的token。
options[HuksOptions]Update的参数集合。
callbackAsyncCallback<[HuksResult]>将Update操作的结果添加到密钥管理系统的回调。

huks.update

update(handle: number, token?: Uint8Array, options: HuksOptions) : Promise

update操作密钥接口,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
handlenumberUpdate操作的handle。
tokenUint8ArrayUpdate操作的token。
options[HuksOptions]Update操作的参数集合。
promisePromise<[HuksResult]>将Update操作的结果添加到密钥管理系统的回调。

huks.finish

finish(handle: number, options: HuksOptions, callback: AsyncCallback) : void

finish操作密钥接口,使用Callback回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
handlenumberFinish操作的handle。
options[HuksOptions]Finish的参数集合。
callbackAsyncCallback<[HuksResult]>将Finish操作的结果添加到密钥管理系统的回调。

huks.finish

finish(handle: number, options: HuksOptions) : Promise

finish操作密钥接口,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
handlenumberFinish操作的handle。
options[HuksOptions]Finish操作的参数集合。
promisePromise<[HuksResult]>promise实例,用于获取异步返回结果。

huks.abort

abort(handle: number, options: HuksOptions, callback: AsyncCallback) : void

abort操作密钥接口,使用Callback回调异步返回结果 。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
handlenumberAbort操作的handle。
options[HuksOptions]Abort操作的参数集合。
callbackAsyncCallback<[HuksResult]>将Abort操作的结果添加到密钥管理系统的回调。

示例:

/* huks.init, huks.update, huks.finish为三段式接口,需要一起使用,当huks.init和huks.update* 以及huks.finish操作中的任一阶段发生错误时,都需要调用huks.abort来终止密钥的使用。** 以下以RSA1024密钥的callback操作使用为例*/
import router from '@system.router';
import huks from '@ohos.security.huks';async function routePage() {let options = {uri: 'pages/second'}try {await router.push(options)} catch (err) {console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`)}
}
var keyalias = "HuksDemoRSA";
var properties = new Array();
var options = {properties: properties,inData: new Uint8Array(0)
};
var handle;
var resultMessage = "";
async function generateKey() {properties[0] = {tag: huks.HuksTag.HUKS_TAG_ALGORITHM,value: huks.HuksKeyAlg.HUKS_ALG_RSA};properties[1] = {tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_1024};properties[2] = {tag: huks.HuksTag.HUKS_TAG_PURPOSE,value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT};properties[3] = {tag: huks.HuksTag.HUKS_TAG_PADDING,value: huks.HuksKeyPadding.HUKS_PADDING_OAEP};properties[4] = {tag: huks.HuksTag.HUKS_TAG_DIGEST,value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256};huks.generateKey(keyalias, options);
}
function stringToUint8Array(str) {var arr = [];for (var i = 0, j = str.length; i < j; ++i) {arr.push(str.charCodeAt(i));}var tmpUint8Array = new Uint8Array(arr);return tmpUint8Array;
}
async function huksInit() {await huks.init(keyalias, options).then((data) => {console.log(`test init data: ${JSON.stringify(data)}`);handle = data.handle;}).catch((err) => {console.log("test init err information: " + JSON.stringify(err))})
}
async function huksUpdate() {options.inData = stringToUint8Array("huksHmacTest");await huks.update(handle, options).then((data) => {if (data.errorCode === 0) {resultMessage += "update success!";} else {resultMessage += "update fail!";}});console.log(resultMessage);
}
function huksFinish() {options.inData = stringToUint8Array("HuksDemoHMAC");huks.finish(handle, options).then((data) => {if (data.errorCode === 0) {resultMessage = "finish success!";} else {resultMessage = "finish fail errorCode: " + data.errorCode;}}).catch((err) => {resultMessage = "finish fail, catch errorMessage:" + JSON.stringify(err)});console.log(resultMessage);
}
async function huksAbort() {huks.abort(handle, options).then((data) => {if (data.errorCode === 0) {resultMessage = "abort success!";} else {resultMessage = "abort fail errorCode: " + data.errorCode;}}).catch((err) => {resultMessage = "abort fail, catch errorMessage:" + JSON.stringify(err)});console.log(resultMessage);
}@Entry
@Component
struct Index {build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {Text('Hello World').fontSize(50).fontWeight(FontWeight.Bold)Button() {Text('Tocallback').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {routePage()})Button() {Text('generateKey').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {generateKey()})Button() {Text('Init').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksInit()})Button() {Text('Update').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksUpdate()})Button() {Text('Finish').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksFinish()})Button() {Text('Abort').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksAbort()})}.width('100%').height('100%')}
}

huks.abort

abort(handle: number, options: HuksOptions) : Promise;

abort操作密钥接口,使用Promise方式异步返回结果。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数:

参数名类型必填说明
handlenumberAbort操作的handle。
options[HuksOptions]Abort操作的参数集合。
promisePromise<[HuksResult]>将Abort操作的结果添加到密钥管理系统的回调。

示例:

/* huks.init, huks.update, huks.finish为三段式接口,需要一起使用,当huks.init和huks.update* 以及huks.finish操作中的任一阶段发生错误时,都需要调用huks.abort来终止密钥的使用。** 以下以RSA1024密钥的promise操作使用为例*/
import router from '@system.router';
import huks from '@ohos.security.huks';async function routePage() {let options = {uri: 'pages/second'}try {await router.push(options)} catch (err) {console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`)}
}var keyalias = "HuksDemoRSA";
var properties = new Array();
var options = {properties: properties,inData: new Uint8Array(0)
};
var handle;
var resultMessage = "";
function stringToUint8Array(str) {var arr = [];for (var i = 0, j = str.length; i < j; ++i) {arr.push(str.charCodeAt(i));}var tmpUint8Array = new Uint8Array(arr);return tmpUint8Array;
}async function generateKey() {properties[0] = {tag: huks.HuksTag.HUKS_TAG_ALGORITHM,value: huks.HuksKeyAlg.HUKS_ALG_RSA};properties[1] = {tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_1024};properties[2] = {tag: huks.HuksTag.HUKS_TAG_PURPOSE,value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT};properties[3] = {tag: huks.HuksTag.HUKS_TAG_PADDING,value: huks.HuksKeyPadding.HUKS_PADDING_OAEP};properties[4] = {tag: huks.HuksTag.HUKS_TAG_DIGEST,value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256};huks.generateKey(keyalias, options, function (err, data) { });
}
async function huksInit() {return new Promise((resolve, reject) => {huks.init(keyalias, options, async function (err, data) {if (data.errorCode === 0) {resultMessage = "init success!"handle = data.handle;} else {resultMessage = "init fail errorCode: " + data.errorCode}});});
}async function huksUpdate() {options.inData = stringToUint8Array("huksHmacTest");new Promise((resolve, reject) => {huks.update(handle, options, function (err, data) {if (data.errorCode === 0) {resultMessage += "update success!";} else {resultMessage += "update fail!";}});});console.log(resultMessage);}async function huksFinish() {options.inData = stringToUint8Array("0");new Promise((resolve, reject) => {huks.finish(handle, options, function (err, data) {if (data.errorCode === 0) {resultMessage = "finish success!";} else {resultMessage =  "finish fail errorCode: " + data.errorCode;}});});
}function huksAbort() {new Promise((resolve, reject) => {huks.abort(handle, options, function (err, data) {console.log(`Huks_Demo hmac huksAbort1 data ${JSON.stringify(data)}`);console.log(`Huks_Demo hmac huksAbort1 err ${JSON.stringify(err)}`);});});
}
@Entry
@Component
struct Index {build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {Text('Hello World').fontSize(50).fontWeight(FontWeight.Bold)Button() {Text('to Promise').fontSize(20).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {router.back()})Button() {Text('generateKey').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {generateKey()})Button() {Text('Init').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksInit()})Button() {Text('Update').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksUpdate()})Button() {Text('Finish').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksFinish()})Button() {Text('Abort').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).width('50%').height('10%').backgroundColor('#0D9FFB').onClick(() => {huksAbort()})}.width('100%').height('100%')}
}

HuksParam

调用接口使用的options中的properties数组中的param。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数名类型必填说明
tagHuksTag标签
valuebooleannumberbigint

HuksOptions

调用接口使用的options。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数名类型必填说明
propertiesArray属性,存HuksParam的数组。
inDataUint8Array输入数据。

HuksHandle

huks Handle结构体。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数名类型必填说明
errorCodenumber错误码
handlenumberhandle值
tokenUint8Array预留字段

HuksResult

调用接口返回的result。

系统能力:以下各项对应的系统能力均为SystemCapability.Security.Huks。

参数名类型必填说明
errorCodenumber错误码
outDataUint8Array输出数据
propertiesArray属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/22867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java实现本地缓存

Java实现本地缓存主要还是适用于单体应用&#xff0c;且服务一旦重启&#xff0c;数据都将丢失。 先创建一个缓存类&#xff0c;主要是存放数据和缓存时间&#xff0c;该类的内容或属性可以根据业务自行添加。 Data public class MyCache {/*** 缓存内容*/public String valu…

2024速通python之python面向对象

文章目录 一、类与对象二、构造方法三、toString方法四、__eq__方法&#xff0c;相当于equals五、封装、继承与多态1.封装2.继承3.重写4.类型注解5.多态6.抽象类与抽象方法 「章节总览」       【2024速通python之python基础 https://blog.csdn.net/weixin_45404884/ar…

SpringBoot: 读取项目的Git版本号

在开发项目的时候&#xff0c;我们经常会想要拿到线上运行的程序版本&#xff0c;以确定程序是否正确发布。Spring Boot提供了这样的能力支持。这个能力的核心组件是3个: Maven插件git-commit-id-maven-plugin&#xff0c;用于生成.properties文件&#xff0c;里边包含git的各…

项目部署服务器--浏览器拒绝访问问题

一、检查自己的环境 是本地环境、还是虚拟环境 当您使用 Gunicorn 启动 Flask 应用并监听 0.0.0.0:5000 时&#xff0c;您的 Flask 应用已经可以在服务器上运行并通过该端口提供服务了。但是&#xff0c;0.0.0.0 是一个特殊的 IP 地址&#xff0c;它表示“所有可用的网络接口”…

字节序 大端 小端

字节序&#xff08;Byte Order&#xff09;&#xff0c;指的是在计算机系统中&#xff0c;多字节数据&#xff08;如整数、浮点数&#xff09;在内存中存储时的字节排列顺序。主要有两种类型的字节序&#xff1a;大端字节序&#xff08;Big Endian&#xff09;和小端字节序&…

Windows 包管理器 Chocolatey

1、前言 在Windows上做开发&#xff0c;经常会为频繁安装卸载软件而烦恼&#xff0c;着实有点羡慕Linux和macOS上强大的包管理系统。 今天就来解决这个问题。 什么是包管理器? 包管理器是一种自动安装、配置、升级和卸载软件包的工具。它可以解决手动安装软件的诸多痛点: &…

【C语言】for循环

简介 在C语言中&#xff0c;for循环是一种常用的控制结构&#xff0c;用于重复执行一段代码多次。for循环包括三个部分&#xff1a;初始化表达式、循环条件和更新表达式。 for循环的语法如下&#xff1a; for (初始化表达式; 循环条件; 更新表达式) {// 循环体 }初始化表达式…

C#WPF数字大屏项目实战03--数据内容区域

1、内容区域划分 第一行标题&#xff0c;放了几个文本框 第二行数据&#xff0c;划分成3列布局 2、第1列布局使用UniformGrid控件 最外面放UniformGrid&#xff0c;然后里面放3个GroupBox控件&#xff0c;这3个groupbox都是垂直排列 3、GroupBox控件模板 页面上的3个Group…

计算机网络 —— 数据链路层(无线局域网)

计算机网络 —— 数据链路层&#xff08;无线局域网&#xff09; 什么是无线局域网IEEE 802.11主要标准及其特点&#xff1a; 802.11的MAC帧样式 我们来看看无线局域网&#xff1a; 什么是无线局域网 无线局域网&#xff08;Wireless Local Area Network&#xff0c;简称WLAN…

数仓建模—指标体系分类分级和评价管理

数仓建模—指标体系分类分级和评价管理 前面其实我们提到了指标体系的分类,以及一些指标体系管理相关的内容,今天我们详细的介绍一下相关的知识点 指标 = 业务维度描述 + 技术维度描述 指标,是反映某种事物或现象,描述在一定时间和条件下的规模、程度、比例、结构等概念…

Ivy优化算法-2024年7月SCI一区顶刊新算法!公式原理详解与性能测评 Matlab代码免费获取

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原理简介 一、初始化 二、协调有序的种群增…

【宠粉赠书】大模型时代的网络安全:安恒“网安三剑客”实战指南

不知不觉中&#xff0c;小智的粉丝已经突破一万。为了回馈粉丝们的厚爱&#xff0c;今天小智给大家送上一套网络安全界的三宝书——安恒"网安三剑客"。下面我会详细给大家介绍这套图书&#xff0c;文末留有领取方式。 随着人工智能&#xff08;AI&#xff09;和大模型…

finalshell刚连上就断,这个参数你注意到了吗

在实际应用中可能一不下心弄错一个参数就会让你的finalshell刚连上就断&#xff0c;如下图所示。 1、进入ssh目录下&#xff0c;修改ssh_config文件 2、修改UseDNS no,并把前面的#去掉。 注&#xff1a;如果在ssh_config文件见不到UseDNS yes ,可以打开sshd_config,他们是在…

Vue 2 + Element UI 选择一个el-select清空另一个el-select选中的值

需求&#xff1a;表单中有两个下拉选择器&#xff0c;先选中第一个&#xff0c;清空第二个选中的值 尝试过this.$refs[form].resetFields(field name);全都失效&#xff01; 效果图如下&#xff1a; 先选择商品分类&#xff0c;再去选择商品列表中的某一件商品 <el-form-…

园区运营管理平台的功能架构

产业园区作为推动地方经济发展的重要载体&#xff0c;其运营管理水平直接影响到园区的竞争力和可持续发展能力&#xff0c;园区运营管理平台作为园区的运营管理工具&#xff0c;旨在通过智能化、自动化的手段提升园区的运营效率和服务水平。 园区运营管理平台不仅为园区管理者提…

JavaScript中this方法;var,let,constd区别;JSON是什么

this方法 1、在对象方法中&#xff0c; this 指向调用它所在方法的对象。 2、单独使用 this&#xff0c;它指向全局(Global)对象。 3、函数使用中&#xff0c;this 指向函数的所属者。 4、严格模式下函数是没有绑定到 this 上&#xff0c;这时候 this 是 undefined。 5、在 HT…

SAS:什么时候用kcompress呀?

问题&#xff1a;如何截取ECGTPT变量中的后三个字符&#xff1f; 下图展示了以k开头的以及非k开头的substr函数和length函数&#xff0c;发现在UTF-8编码下&#xff0c;仅以k开头的函数能够截取成功。 释疑&#xff08;以下内容来自SAS Help&#xff09; SAS提供的字符函数…

conflicting types for 错误问题

操作系统真象还原中&#xff0c;第十一章出现的问题&#xff1a; 怎样编译都会出现一个conflicting types for ’xxx‘的错误 出现这个错误的原因&#xff1a; 头文件声明和定义参数稍有不同 头文件中声明 void Hanlder(const char * buf); 在定义时写作 void Hanlder(char…

浏览器工作原理

主要分为导航、获取数据、HTML解析、css解析、执行javaScript、渲染树几个步骤。 1.导航 DNS查询 DNS服务器类似于电话簿&#xff0c;里面包含公共的IP地址以及相关主机名数据库&#xff0c;我们输入一个域名&#xff0c;他能帮我们映射到对应的IP地址。&#xff08;第一次查…

【kubeflow文档】Kubeflow Training Operator

What is Training Operator Training Operator是一个Kubernetes原生项目&#xff0c;用于对使用各种ML框架&#xff08;如PyTorch、TensorFlow、XGBoost等&#xff09;创建的机器学习&#xff08;ML&#xff09;模型进行微调和可扩展的分布式训练。 用户可以将HuggingFace、Dee…