From 893d2f5008a9a0f0bc2b1a965024966002f4e9a2 Mon Sep 17 00:00:00 2001 From: lcy_lovebug Date: Mon, 14 Apr 2025 08:32:27 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=AD=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E4=BB=93=E5=86=85=E5=AE=B9=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lcy_lovebug --- .../security/huks/include/native_huks_api.h | 191 +++++++++++++++--- .../huks/include/native_huks_api_adapter.h | 42 ++++ .../security/huks/include/native_huks_param.h | 45 +++-- .../security/huks/include/native_huks_type.h | 18 +- 4 files changed, 254 insertions(+), 42 deletions(-) create mode 100644 zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_api.h b/zh-cn/native_sdk/security/huks/include/native_huks_api.h index 1f149db0..6d9ad296 100644 --- a/zh-cn/native_sdk/security/huks/include/native_huks_api.h +++ b/zh-cn/native_sdk/security/huks/include/native_huks_api.h @@ -13,15 +13,12 @@ * limitations under the License. */ -#ifndef NATIVE_HUKS_API_H -#define NATIVE_HUKS_API_H - -/** + /** * @addtogroup HuksKeyApi * @{ * * @brief 描述HUKS向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。 - * 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。 + * 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。 * * @syscap SystemCapability.Security.Huks * @since 9 @@ -32,11 +29,19 @@ * @file native_huks_api.h * * @brief 声明用于访问HUKS的API。 + + * @library libhuks_ndk.z.so + * @syscap SystemCapability.Security.Huks * + * include "huks/include/native_huks_type.h" + * @kit UniversalKeystoreKit * @since 9 * @version 1.0 */ +#ifndef NATIVE_HUKS_API_H +#define NATIVE_HUKS_API_H + #include "native_huks_type.h" #ifdef __cplusplus @@ -47,7 +52,9 @@ extern "C" { * @brief 获取当前Huks sdk版本号。 * * @param sdkVersion 用于存放获取到的版本信息(字符串格式)。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - sdkVersion或者sdkVersion->data是null, + * 或者sdkVersion->size太小。 * @since 9 * @version 1.0 */ @@ -59,7 +66,19 @@ struct OH_Huks_Result OH_Huks_GetSdkVersion(struct OH_Huks_Blob *sdkVersion); * @param keyAlias 给要生成的密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 * @param paramSetIn 生成密钥的属性信息的参数集。 * @param paramSetOut 生成密钥为临时类型时,存放着密钥数据;非临时类型可为空。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSetIn、paramSetOut有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL} 12000004 - 删除或者写文件失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 基础密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED} 12000015 - 连接用户IAM失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET} 12000016 - 需要设备密码但没有设置。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 */ @@ -72,7 +91,16 @@ struct OH_Huks_Result OH_Huks_GenerateKeyItem(const struct OH_Huks_Blob *keyAlia * @param keyAlias 待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 * @param paramSet 待导入密钥的属性参数。 * @param key 待导入密钥数据,需符合Huks的格式要求,具体见{@link HuksTypeApi}。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、key有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL} 12000004 - 删除或者写文件失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED} 12000015 - 连接用户IAM失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 */ @@ -86,7 +114,18 @@ struct OH_Huks_Result OH_Huks_ImportKeyItem(const struct OH_Huks_Blob *keyAlias, * @param wrappingKeyAlias 密钥别名,该对应密钥用于密钥协商出密钥解密待导入密钥。 * @param paramSet 待导入加密密钥的属性参数。 * @param wrappedKeyData 需要导入的加密的密钥数据,需要符合Huks定义的格式,具体见{@link OH_Huks_AlgSuite} - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、wrappingKeyAlias、 + * paramSet、wrappedKeyData有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL} 12000004 - 删除或者写文件失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED} 12000015 - 连接用户IAM失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 */ @@ -100,7 +139,15 @@ struct OH_Huks_Result OH_Huks_ImportWrappedKeyItem(const struct OH_Huks_Blob *ke * @param keyAlias 待导出公钥的密钥别名,应与所用密钥生成时使用的别名相同。 * @param paramSet 导出公钥需要的属性参数。 * @param key 存放导出的公钥。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、key有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 */ @@ -112,7 +159,14 @@ struct OH_Huks_Result OH_Huks_ExportPublicKeyItem(const struct OH_Huks_Blob *key * * @param keyAlias 待删除密钥的别名,应与密钥生成时使用的别名相同。 * @param paramSet 删除密钥需要属性参数(默认传空)。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 * @since 9 * @version 1.0 */ @@ -125,7 +179,15 @@ struct OH_Huks_Result OH_Huks_DeleteKeyItem(const struct OH_Huks_Blob *keyAlias, * @param keyAlias 要获取参数集的密钥别名。 * @param paramSetIn 要获取参数集需要的属性TAG(默认传空)。 * @param paramSetOut 获取到的输出参数集。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时获取成功,其他时为失败。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSetIn、paramSetOut有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 */ @@ -137,8 +199,14 @@ struct OH_Huks_Result OH_Huks_GetKeyItemParamSet(const struct OH_Huks_Blob *keyA * * @param keyAlias 要查找的密钥的别名。 * @param paramSet 查询密钥需要的属性TAG(默认传空)。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时密钥存在, - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST}不存在,返回其他错误在其他情况。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 * @since 9 * @version 1.0 */ @@ -146,13 +214,22 @@ struct OH_Huks_Result OH_Huks_IsKeyItemExist(const struct OH_Huks_Blob *keyAlias const struct OH_Huks_ParamSet *paramSet); /** - * @brief 获取密钥证书链。 + * @brief 获取密钥证书链。这个API只能由系统应用调用。 * * @permission ohos.permission.ATTEST_KEY * @param keyAlias 要获取证书的密钥的别名。 * @param paramSet 获取密钥证书需要的参数。 * @param certChain 存放输出的密钥证书链。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时获取成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、certChain有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_PERMISSION_FAIL} 201 - 权限检查失败,请先申请请求权限。 * @since 9 * @version 1.0 */ @@ -165,7 +242,17 @@ struct OH_Huks_Result OH_Huks_AttestKeyItem(const struct OH_Huks_Blob *keyAlias, * @param keyAlias 要获取证书的密钥的别名。 * @param paramSet 获取密钥证书需要的参数。 * @param certChain 存放输出的密钥证书链。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时获取成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、certChain有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_PERMISSION_FAIL} 201 - 权限检查失败,请先申请请求权限。 * @since 11 * @version 1.0 * @note 这是一个涉及网络的耗时接口,调用方可以通过异步线程获取证书链。 @@ -181,7 +268,17 @@ struct OH_Huks_Result OH_Huks_AnonAttestKeyItem(const struct OH_Huks_Blob *keyAl * @param handle 密钥会话的句柄,后续其他操作时传入该句柄,包括{@link OH_Huks_UpdateSession}, * {@link OH_Huks_FinishSession}, {@link OH_Huks_AbortSession}。 * @param token 存放安全访问控制时传回的token - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数 keyAlias、paramSet、handle、token有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_SESSION_LIMIT} 12000010 - 已达最大会话限制。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 * @see OH_Huks_UpdateSession @@ -198,7 +295,21 @@ struct OH_Huks_Result OH_Huks_InitSession(const struct OH_Huks_Blob *keyAlias, * @param paramSet 密钥操作对应的输入参数集。 * @param inData 要处理的输入数据,如果数据过大,可分片多次调用。 * @param outData 经过对应的密钥操作后输出的数据。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数handle、paramSet、inData、outData有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在,或handle不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST} 12000013 - 证书不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED} 12000008 - 认证令牌校验失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED} 12000007 - 认证令牌信息校验失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT} 12000009 - 认证令牌超时。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET} 12000016 - 需要设备密码但没有设置。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 * @see OH_Huks_InitSession @@ -215,7 +326,21 @@ struct OH_Huks_Result OH_Huks_UpdateSession(const struct OH_Huks_Blob *handle, * @param paramSet 密钥操作对应的输入参数集。 * @param inData 要处理的输入数据。 * @param outData 经过对应的密钥操作后输出的数据。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数handle、paramSet、inData、outData有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在,或handle不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST} 12000013 - 证书不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED} 12000008 - 认证令牌校验失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED} 12000007 - 认证令牌信息校验失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT} 12000009 - 认证令牌超时。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET} 12000016 - 需要设备密码但没有设置。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 * @since 9 * @version 1.0 * @see OH_Huks_InitSession @@ -230,7 +355,15 @@ struct OH_Huks_Result OH_Huks_FinishSession(const struct OH_Huks_Blob *handle, * * @param handle 密钥会话句柄,通过{@link OH_Huks_InitSession}接口生成的。 * @param paramSet 取消密钥会话需要的输入参数集(默认传空)。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数handle、paramSet、inData、outData有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在,或handle不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST} 12000013 - 证书不存在。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 * @since 9 * @version 1.0 * @see OH_Huks_InitSession @@ -241,13 +374,17 @@ struct OH_Huks_Result OH_Huks_AbortSession(const struct OH_Huks_Blob *handle, const struct OH_Huks_ParamSet *paramSet); /** - * @brief 批量查询密钥别名集。 + * @brief 获取密钥别名集。 * - * @param paramSet 查询密钥别名需要的属性TAG(默认传空)。 - * @param outData 经过对应的查询操作后输出的密钥别名集数据。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 - * @since 12 - * @version 1.0 + * @param paramSet Indicates the pointer to the parameters required for getting key alias list. + * By default, this parameter is a null pointer. + * @param outData Indicates the pointer to the output data. + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet、outData有一个无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @since 20 */ struct OH_Huks_Result OH_Huks_ListAliases(const struct OH_Huks_ParamSet *paramSet, struct OH_Huks_KeyAliasSet **outData); diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h b/zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h new file mode 100644 index 00000000..01f8529a --- /dev/null +++ b/zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2022 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. + */ + +#ifndef NATIVE_HUKS_API_ADAPTER_H +#define NATIVE_HUKS_API_ADAPTER_H + +/** + * @file native_huks_api_adapter.h + * + * @brief 声明证明适配器 + * + * @kit UniversalKeystoreKit + * @since 9 + * @version 1.0 + */ + +#include "native_huks_type.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int32_t HuksAttestAdapter(const struct OH_Huks_Blob *keyAlias, const struct OH_Huks_ParamSet *paramSet, + struct OH_Huks_CertChain *certChain); + +#ifdef __cplusplus +} +#endif + +#endif /* NATIVE_HUKS_API_ADAPTER_H */ \ No newline at end of file diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_param.h b/zh-cn/native_sdk/security/huks/include/native_huks_param.h index 747983fe..3329891f 100644 --- a/zh-cn/native_sdk/security/huks/include/native_huks_param.h +++ b/zh-cn/native_sdk/security/huks/include/native_huks_param.h @@ -13,9 +13,6 @@ * limitations under the License. */ -#ifndef NATIVE_HUKS_PARAM_H -#define NATIVE_HUKS_PARAM_H - /** * @addtogroup HuksParamSetApi * @{ @@ -33,10 +30,18 @@ * * @brief 提供参数集构造、使用和销毁的API。 * + * @library libhuks_ndk.z.so + * @syscap SystemCapability.Security.Huks + * + * include "huks/include/native_huks_type.h" + * @kit UniversalKeystoreKit * @since 9 * @version 1.0 */ +#ifndef NATIVE_HUKS_PARAM_H +#define NATIVE_HUKS_PARAM_H + #include "native_huks_type.h" #ifdef __cplusplus @@ -47,7 +52,10 @@ extern "C" { * @brief 初始化参数集。 * * @param paramSet 指向要初始化的参数集的指针地址。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示初始化成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 初始化操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet为null。 + * @since 9 * @since 9 * @version 1.0 */ @@ -59,7 +67,8 @@ struct OH_Huks_Result OH_Huks_InitParamSet(struct OH_Huks_ParamSet **paramSet); * @param paramSet 指向要被添加参数的参数集的指针。 * @param params 指向要添加的参数数组的指针。 * @param paramCnt 待添加参数数组的参数个数。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示添加成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - params为null或者paramSet无效。 * @since 9 * @version 1.0 */ @@ -70,7 +79,9 @@ struct OH_Huks_Result OH_Huks_AddParams(struct OH_Huks_ParamSet *paramSet, * @brief 构造正式的参数集。 * * @param paramSet 指向要被正式构造的参数集的指针地址。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示构建成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 * @since 9 * @version 1.0 */ @@ -91,7 +102,9 @@ void OH_Huks_FreeParamSet(struct OH_Huks_ParamSet **paramSet); * @param fromParamSet 指向要被复制的参数集的指针。 * @param fromParamSetSize 被复制的参数集占用内存的大小。 * @param paramSet 指向生成新的参数集的指针地址。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示复制成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数fromParamSet、fromParamSetSize、paramSet有一个无效, + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 * @since 9 * @version 1.0 */ @@ -104,7 +117,9 @@ struct OH_Huks_Result OH_Huks_CopyParamSet(const struct OH_Huks_ParamSet *fromPa * @param paramSet 指向参数集的指针。 * @param tag 要获取的对应参数的值。 * @param param 指向获取到的参数的指针地址。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示获取成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet或者param无效, + * 或者参数param不存在于paramSet之中。 * @since 9 * @version 1.0 */ @@ -116,7 +131,9 @@ struct OH_Huks_Result OH_Huks_GetParam(const struct OH_Huks_ParamSet *paramSet, * * @param paramSet 指向参数集的指针。 * @param isCopy 如果为true,刷新OH_Huks_Blob类型数据的地址并复制到参数集。否则,只会刷新OH_Huks_Blob类型数据的地址。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示成功,其他时为错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 * @since 9 * @version 1.0 */ @@ -126,7 +143,8 @@ struct OH_Huks_Result OH_Huks_FreshParamSet(struct OH_Huks_ParamSet *paramSet, b * @brief 检查参数集中的参数是否有效、是否有重复。 * * @param paramSet 指向参数集的指针。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示有效,其他时为无效或重复的。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - paramSet中的参数都有效。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效或者参数集中有无效、重复、不正确的标签。 * @since 9 * @version 1.0 */ @@ -137,7 +155,8 @@ struct OH_Huks_Result OH_Huks_IsParamSetTagValid(const struct OH_Huks_ParamSet * * * @param paramSet 指向参数集的指针。 * @param size 参数集占用的内存大小。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示有效,其他时为无效或者错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 参数集大小合法。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效。 * @since 9 * @version 1.0 */ @@ -148,7 +167,9 @@ struct OH_Huks_Result OH_Huks_IsParamSetValid(const struct OH_Huks_ParamSet *par * * @param baseParam 指向被比较的参数的指针。 * @param param 指向比较的参数的指针。 - * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示相同,其他时为不同或者错误。 + * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 比较的两个参数相同。 + * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 其中一个参数集是无效的,或者参数不匹配, + 或者内部有无效标签。 * @since 9 * @version 1.0 */ diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_type.h b/zh-cn/native_sdk/security/huks/include/native_huks_type.h index 155f3f53..a5773d26 100644 --- a/zh-cn/native_sdk/security/huks/include/native_huks_type.h +++ b/zh-cn/native_sdk/security/huks/include/native_huks_type.h @@ -13,9 +13,6 @@ * limitations under the License. */ -#ifndef NATIVE_OH_HUKS_TYPE_H -#define NATIVE_OH_HUKS_TYPE_H - /** * @addtogroup HuksTypeApi * @{ @@ -32,10 +29,17 @@ * * @brief 提供huks中的枚举变量、结构体定义与宏定义。 * + * @library libhuks_ndk.z.so + * @syscap SystemCapability.Security.Huks + * + * @kit UniversalKeystoreKit * @since 9 * @version 1.0 */ +#ifndef NATIVE_OH_HUKS_TYPE_H +#define NATIVE_OH_HUKS_TYPE_H + #include #include #include @@ -136,6 +140,10 @@ enum OH_Huks_KeyPadding { * @since 18 */ OH_HUKS_PADDING_ISO_IEC_9796_2 = 6, + /** 使用ISO IEC 9797-1补齐算法 + * @since 18 + */ + OH_HUKS_PADDING_ISO_IEC_9797_1 = 7, }; /** @@ -278,6 +286,10 @@ enum OH_Huks_KeyAlg { * @since 18 */ OH_HUKS_ALG_3DES = 161, + /** 使用CMAC算法。 + * @since 18 + */ + OH_HUKS_ALG_CMAC = 162, }; /** -- Gitee From abaabbdb0afdb3e3a79c00c538e64d2cf99d3e4b Mon Sep 17 00:00:00 2001 From: lcy_lovebug Date: Mon, 14 Apr 2025 08:38:49 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20!1?= =?UTF-8?q?=20:=20=E3=80=90=E8=BD=BB=E9=87=8F=E7=BA=A7=20PR=E3=80=91?= =?UTF-8?q?=EF=BC=9A=E8=B0=83=E6=95=B4=E4=B8=AD=E8=8B=B1=E6=96=87=E4=BB=93?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=B8=80=E8=87=B4'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/huks/include/native_huks_api.h | 191 +++--------------- .../huks/include/native_huks_api_adapter.h | 42 ---- .../security/huks/include/native_huks_param.h | 45 ++--- .../security/huks/include/native_huks_type.h | 18 +- 4 files changed, 42 insertions(+), 254 deletions(-) delete mode 100644 zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_api.h b/zh-cn/native_sdk/security/huks/include/native_huks_api.h index 6d9ad296..1f149db0 100644 --- a/zh-cn/native_sdk/security/huks/include/native_huks_api.h +++ b/zh-cn/native_sdk/security/huks/include/native_huks_api.h @@ -13,12 +13,15 @@ * limitations under the License. */ - /** +#ifndef NATIVE_HUKS_API_H +#define NATIVE_HUKS_API_H + +/** * @addtogroup HuksKeyApi * @{ * * @brief 描述HUKS向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。 - * 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。 + * 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。 * * @syscap SystemCapability.Security.Huks * @since 9 @@ -29,19 +32,11 @@ * @file native_huks_api.h * * @brief 声明用于访问HUKS的API。 - - * @library libhuks_ndk.z.so - * @syscap SystemCapability.Security.Huks * - * include "huks/include/native_huks_type.h" - * @kit UniversalKeystoreKit * @since 9 * @version 1.0 */ -#ifndef NATIVE_HUKS_API_H -#define NATIVE_HUKS_API_H - #include "native_huks_type.h" #ifdef __cplusplus @@ -52,9 +47,7 @@ extern "C" { * @brief 获取当前Huks sdk版本号。 * * @param sdkVersion 用于存放获取到的版本信息(字符串格式)。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - sdkVersion或者sdkVersion->data是null, - * 或者sdkVersion->size太小。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -66,19 +59,7 @@ struct OH_Huks_Result OH_Huks_GetSdkVersion(struct OH_Huks_Blob *sdkVersion); * @param keyAlias 给要生成的密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 * @param paramSetIn 生成密钥的属性信息的参数集。 * @param paramSetOut 生成密钥为临时类型时,存放着密钥数据;非临时类型可为空。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSetIn、paramSetOut有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL} 12000004 - 删除或者写文件失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 基础密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED} 12000015 - 连接用户IAM失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET} 12000016 - 需要设备密码但没有设置。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -91,16 +72,7 @@ struct OH_Huks_Result OH_Huks_GenerateKeyItem(const struct OH_Huks_Blob *keyAlia * @param keyAlias 待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 * @param paramSet 待导入密钥的属性参数。 * @param key 待导入密钥数据,需符合Huks的格式要求,具体见{@link HuksTypeApi}。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、key有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL} 12000004 - 删除或者写文件失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED} 12000015 - 连接用户IAM失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -114,18 +86,7 @@ struct OH_Huks_Result OH_Huks_ImportKeyItem(const struct OH_Huks_Blob *keyAlias, * @param wrappingKeyAlias 密钥别名,该对应密钥用于密钥协商出密钥解密待导入密钥。 * @param paramSet 待导入加密密钥的属性参数。 * @param wrappedKeyData 需要导入的加密的密钥数据,需要符合Huks定义的格式,具体见{@link OH_Huks_AlgSuite} - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、wrappingKeyAlias、 - * paramSet、wrappedKeyData有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL} 12000004 - 删除或者写文件失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED} 12000015 - 连接用户IAM失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -139,15 +100,7 @@ struct OH_Huks_Result OH_Huks_ImportWrappedKeyItem(const struct OH_Huks_Blob *ke * @param keyAlias 待导出公钥的密钥别名,应与所用密钥生成时使用的别名相同。 * @param paramSet 导出公钥需要的属性参数。 * @param key 存放导出的公钥。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、key有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -159,14 +112,7 @@ struct OH_Huks_Result OH_Huks_ExportPublicKeyItem(const struct OH_Huks_Blob *key * * @param keyAlias 待删除密钥的别名,应与密钥生成时使用的别名相同。 * @param paramSet 删除密钥需要属性参数(默认传空)。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -179,15 +125,7 @@ struct OH_Huks_Result OH_Huks_DeleteKeyItem(const struct OH_Huks_Blob *keyAlias, * @param keyAlias 要获取参数集的密钥别名。 * @param paramSetIn 要获取参数集需要的属性TAG(默认传空)。 * @param paramSetOut 获取到的输出参数集。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSetIn、paramSetOut有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时获取成功,其他时为失败。 * @since 9 * @version 1.0 */ @@ -199,14 +137,8 @@ struct OH_Huks_Result OH_Huks_GetKeyItemParamSet(const struct OH_Huks_Blob *keyA * * @param keyAlias 要查找的密钥的别名。 * @param paramSet 查询密钥需要的属性TAG(默认传空)。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时密钥存在, + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST}不存在,返回其他错误在其他情况。 * @since 9 * @version 1.0 */ @@ -214,22 +146,13 @@ struct OH_Huks_Result OH_Huks_IsKeyItemExist(const struct OH_Huks_Blob *keyAlias const struct OH_Huks_ParamSet *paramSet); /** - * @brief 获取密钥证书链。这个API只能由系统应用调用。 + * @brief 获取密钥证书链。 * * @permission ohos.permission.ATTEST_KEY * @param keyAlias 要获取证书的密钥的别名。 * @param paramSet 获取密钥证书需要的参数。 * @param certChain 存放输出的密钥证书链。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、certChain有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_PERMISSION_FAIL} 201 - 权限检查失败,请先申请请求权限。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时获取成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -242,17 +165,7 @@ struct OH_Huks_Result OH_Huks_AttestKeyItem(const struct OH_Huks_Blob *keyAlias, * @param keyAlias 要获取证书的密钥的别名。 * @param paramSet 获取密钥证书需要的参数。 * @param certChain 存放输出的密钥证书链。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数keyAlias、paramSet、certChain有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_PERMISSION_FAIL} 201 - 权限检查失败,请先申请请求权限。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时获取成功,其他时为错误。 * @since 11 * @version 1.0 * @note 这是一个涉及网络的耗时接口,调用方可以通过异步线程获取证书链。 @@ -268,17 +181,7 @@ struct OH_Huks_Result OH_Huks_AnonAttestKeyItem(const struct OH_Huks_Blob *keyAl * @param handle 密钥会话的句柄,后续其他操作时传入该句柄,包括{@link OH_Huks_UpdateSession}, * {@link OH_Huks_FinishSession}, {@link OH_Huks_AbortSession}。 * @param token 存放安全访问控制时传回的token - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数 keyAlias、paramSet、handle、token有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_SESSION_LIMIT} 12000010 - 已达最大会话限制。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 * @see OH_Huks_UpdateSession @@ -295,21 +198,7 @@ struct OH_Huks_Result OH_Huks_InitSession(const struct OH_Huks_Blob *keyAlias, * @param paramSet 密钥操作对应的输入参数集。 * @param inData 要处理的输入数据,如果数据过大,可分片多次调用。 * @param outData 经过对应的密钥操作后输出的数据。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数handle、paramSet、inData、outData有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在,或handle不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST} 12000013 - 证书不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED} 12000008 - 认证令牌校验失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED} 12000007 - 认证令牌信息校验失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT} 12000009 - 认证令牌超时。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET} 12000016 - 需要设备密码但没有设置。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 * @see OH_Huks_InitSession @@ -326,21 +215,7 @@ struct OH_Huks_Result OH_Huks_UpdateSession(const struct OH_Huks_Blob *handle, * @param paramSet 密钥操作对应的输入参数集。 * @param inData 要处理的输入数据。 * @param outData 经过对应的密钥操作后输出的数据。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数handle、paramSet、inData、outData有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在,或handle不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST} 12000013 - 证书不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CRYPTO_FAIL} 12000006 - 加密引擎失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED} 12000008 - 认证令牌校验失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED} 12000007 - 认证令牌信息校验失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT} 12000009 - 认证令牌超时。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET} 12000016 - 需要设备密码但没有设置。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED} 12000001 - 暂不支持该功能。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 * @see OH_Huks_InitSession @@ -355,15 +230,7 @@ struct OH_Huks_Result OH_Huks_FinishSession(const struct OH_Huks_Blob *handle, * * @param handle 密钥会话句柄,通过{@link OH_Huks_InitSession}接口生成的。 * @param paramSet 取消密钥会话需要的输入参数集(默认传空)。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数handle、paramSet、inData、outData有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT} 12000003 - 密钥参数无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST} 12000011 - 密钥文件不存在,或handle不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT} 12000002 - 获取密钥参数失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST} 12000013 - 证书不存在。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 * @since 9 * @version 1.0 * @see OH_Huks_InitSession @@ -374,17 +241,13 @@ struct OH_Huks_Result OH_Huks_AbortSession(const struct OH_Huks_Blob *handle, const struct OH_Huks_ParamSet *paramSet); /** - * @brief 获取密钥别名集。 + * @brief 批量查询密钥别名集。 * - * @param paramSet Indicates the pointer to the parameters required for getting key alias list. - * By default, this parameter is a null pointer. - * @param outData Indicates the pointer to the output data. - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet、outData有一个无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INTERNAL_ERROR} 12000012 - 发生系统错误。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_COMMUNICATION_FAIL} 12000005 - IPC通信失败。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * @since 20 + * @param paramSet 查询密钥别名需要的属性TAG(默认传空)。 + * @param outData 经过对应的查询操作后输出的密钥别名集数据。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时接口使用成功,其他时为错误。 + * @since 12 + * @version 1.0 */ struct OH_Huks_Result OH_Huks_ListAliases(const struct OH_Huks_ParamSet *paramSet, struct OH_Huks_KeyAliasSet **outData); diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h b/zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h deleted file mode 100644 index 01f8529a..00000000 --- a/zh-cn/native_sdk/security/huks/include/native_huks_api_adapter.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2022 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. - */ - -#ifndef NATIVE_HUKS_API_ADAPTER_H -#define NATIVE_HUKS_API_ADAPTER_H - -/** - * @file native_huks_api_adapter.h - * - * @brief 声明证明适配器 - * - * @kit UniversalKeystoreKit - * @since 9 - * @version 1.0 - */ - -#include "native_huks_type.h" - -#ifdef __cplusplus -extern "C" { -#endif - -int32_t HuksAttestAdapter(const struct OH_Huks_Blob *keyAlias, const struct OH_Huks_ParamSet *paramSet, - struct OH_Huks_CertChain *certChain); - -#ifdef __cplusplus -} -#endif - -#endif /* NATIVE_HUKS_API_ADAPTER_H */ \ No newline at end of file diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_param.h b/zh-cn/native_sdk/security/huks/include/native_huks_param.h index 3329891f..747983fe 100644 --- a/zh-cn/native_sdk/security/huks/include/native_huks_param.h +++ b/zh-cn/native_sdk/security/huks/include/native_huks_param.h @@ -13,6 +13,9 @@ * limitations under the License. */ +#ifndef NATIVE_HUKS_PARAM_H +#define NATIVE_HUKS_PARAM_H + /** * @addtogroup HuksParamSetApi * @{ @@ -30,18 +33,10 @@ * * @brief 提供参数集构造、使用和销毁的API。 * - * @library libhuks_ndk.z.so - * @syscap SystemCapability.Security.Huks - * - * include "huks/include/native_huks_type.h" - * @kit UniversalKeystoreKit * @since 9 * @version 1.0 */ -#ifndef NATIVE_HUKS_PARAM_H -#define NATIVE_HUKS_PARAM_H - #include "native_huks_type.h" #ifdef __cplusplus @@ -52,10 +47,7 @@ extern "C" { * @brief 初始化参数集。 * * @param paramSet 指向要初始化的参数集的指针地址。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 初始化操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet为null。 - * @since 9 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示初始化成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -67,8 +59,7 @@ struct OH_Huks_Result OH_Huks_InitParamSet(struct OH_Huks_ParamSet **paramSet); * @param paramSet 指向要被添加参数的参数集的指针。 * @param params 指向要添加的参数数组的指针。 * @param paramCnt 待添加参数数组的参数个数。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - params为null或者paramSet无效。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示添加成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -79,9 +70,7 @@ struct OH_Huks_Result OH_Huks_AddParams(struct OH_Huks_ParamSet *paramSet, * @brief 构造正式的参数集。 * * @param paramSet 指向要被正式构造的参数集的指针地址。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示构建成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -102,9 +91,7 @@ void OH_Huks_FreeParamSet(struct OH_Huks_ParamSet **paramSet); * @param fromParamSet 指向要被复制的参数集的指针。 * @param fromParamSetSize 被复制的参数集占用内存的大小。 * @param paramSet 指向生成新的参数集的指针地址。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数fromParamSet、fromParamSetSize、paramSet有一个无效, - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示复制成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -117,9 +104,7 @@ struct OH_Huks_Result OH_Huks_CopyParamSet(const struct OH_Huks_ParamSet *fromPa * @param paramSet 指向参数集的指针。 * @param tag 要获取的对应参数的值。 * @param param 指向获取到的参数的指针地址。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet或者param无效, - * 或者参数param不存在于paramSet之中。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示获取成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -131,9 +116,7 @@ struct OH_Huks_Result OH_Huks_GetParam(const struct OH_Huks_ParamSet *paramSet, * * @param paramSet 指向参数集的指针。 * @param isCopy 如果为true,刷新OH_Huks_Blob类型数据的地址并复制到参数集。否则,只会刷新OH_Huks_Blob类型数据的地址。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 操作成功。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY} 12000014 - 内存不足。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示成功,其他时为错误。 * @since 9 * @version 1.0 */ @@ -143,8 +126,7 @@ struct OH_Huks_Result OH_Huks_FreshParamSet(struct OH_Huks_ParamSet *paramSet, b * @brief 检查参数集中的参数是否有效、是否有重复。 * * @param paramSet 指向参数集的指针。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - paramSet中的参数都有效。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效或者参数集中有无效、重复、不正确的标签。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示有效,其他时为无效或重复的。 * @since 9 * @version 1.0 */ @@ -155,8 +137,7 @@ struct OH_Huks_Result OH_Huks_IsParamSetTagValid(const struct OH_Huks_ParamSet * * * @param paramSet 指向参数集的指针。 * @param size 参数集占用的内存大小。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 参数集大小合法。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 参数paramSet无效。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示有效,其他时为无效或者错误。 * @since 9 * @version 1.0 */ @@ -167,9 +148,7 @@ struct OH_Huks_Result OH_Huks_IsParamSetValid(const struct OH_Huks_ParamSet *par * * @param baseParam 指向被比较的参数的指针。 * @param param 指向比较的参数的指针。 - * @return {@link OH_Huks_ErrCode#OH_HUKS_SUCCESS} 0 - 比较的两个参数相同。 - * {@link OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT} 401 - 其中一个参数集是无效的,或者参数不匹配, - 或者内部有无效标签。 + * @return 返回{@link OH_Huks_ErrCode#OH_HUKS_SUCCESS}时表示相同,其他时为不同或者错误。 * @since 9 * @version 1.0 */ diff --git a/zh-cn/native_sdk/security/huks/include/native_huks_type.h b/zh-cn/native_sdk/security/huks/include/native_huks_type.h index a5773d26..155f3f53 100644 --- a/zh-cn/native_sdk/security/huks/include/native_huks_type.h +++ b/zh-cn/native_sdk/security/huks/include/native_huks_type.h @@ -13,6 +13,9 @@ * limitations under the License. */ +#ifndef NATIVE_OH_HUKS_TYPE_H +#define NATIVE_OH_HUKS_TYPE_H + /** * @addtogroup HuksTypeApi * @{ @@ -29,17 +32,10 @@ * * @brief 提供huks中的枚举变量、结构体定义与宏定义。 * - * @library libhuks_ndk.z.so - * @syscap SystemCapability.Security.Huks - * - * @kit UniversalKeystoreKit * @since 9 * @version 1.0 */ -#ifndef NATIVE_OH_HUKS_TYPE_H -#define NATIVE_OH_HUKS_TYPE_H - #include #include #include @@ -140,10 +136,6 @@ enum OH_Huks_KeyPadding { * @since 18 */ OH_HUKS_PADDING_ISO_IEC_9796_2 = 6, - /** 使用ISO IEC 9797-1补齐算法 - * @since 18 - */ - OH_HUKS_PADDING_ISO_IEC_9797_1 = 7, }; /** @@ -286,10 +278,6 @@ enum OH_Huks_KeyAlg { * @since 18 */ OH_HUKS_ALG_3DES = 161, - /** 使用CMAC算法。 - * @since 18 - */ - OH_HUKS_ALG_CMAC = 162, }; /** -- Gitee