18e920a95Sopenharmony_ci/* 28e920a95Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 38e920a95Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 48e920a95Sopenharmony_ci * you may not use this file except in compliance with the License. 58e920a95Sopenharmony_ci * You may obtain a copy of the License at 68e920a95Sopenharmony_ci * 78e920a95Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 88e920a95Sopenharmony_ci * 98e920a95Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 108e920a95Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 118e920a95Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128e920a95Sopenharmony_ci * See the License for the specific language governing permissions and 138e920a95Sopenharmony_ci * limitations under the License. 148e920a95Sopenharmony_ci */ 158e920a95Sopenharmony_ci 168e920a95Sopenharmony_ci#ifndef HKS_API_H 178e920a95Sopenharmony_ci#define HKS_API_H 188e920a95Sopenharmony_ci 198e920a95Sopenharmony_ci#include "hks_type.h" 208e920a95Sopenharmony_ci 218e920a95Sopenharmony_cinamespace OHOS { 228e920a95Sopenharmony_cinamespace Security { 238e920a95Sopenharmony_cinamespace CodeSign { 248e920a95Sopenharmony_ciextern int g_count; 258e920a95Sopenharmony_cienum HksType { 268e920a95Sopenharmony_ci KEYEXIST = 1, 278e920a95Sopenharmony_ci ATTESTKEY = 2, 288e920a95Sopenharmony_ci GENERATEKEY = 3, 298e920a95Sopenharmony_ci INIT = 4, 308e920a95Sopenharmony_ci UPDATE = 5, 318e920a95Sopenharmony_ci FINISH = 6, 328e920a95Sopenharmony_ci ERROR = 7, 338e920a95Sopenharmony_ci}; 348e920a95Sopenharmony_ciint32_t HksKeyExist(const struct HksBlob *keyAlias, const struct HksParamSet *paramSet); 358e920a95Sopenharmony_ci 368e920a95Sopenharmony_ciint32_t HksAttestKey(const struct HksBlob *keyAlias, 378e920a95Sopenharmony_ci const struct HksParamSet *paramSet, struct HksCertChain *certChain); 388e920a95Sopenharmony_ci 398e920a95Sopenharmony_ciint32_t HksGenerateKey(const struct HksBlob *keyAlias, 408e920a95Sopenharmony_ci const struct HksParamSet *paramSetIn, struct HksParamSet *paramSetOut); 418e920a95Sopenharmony_ci 428e920a95Sopenharmony_ciint32_t HksInit(const struct HksBlob *keyAlias, const struct HksParamSet *paramSet, 438e920a95Sopenharmony_ci struct HksBlob *handle, struct HksBlob *token); 448e920a95Sopenharmony_ci 458e920a95Sopenharmony_ciint32_t HksUpdate(const struct HksBlob *handle, const struct HksParamSet *paramSet, 468e920a95Sopenharmony_ci const struct HksBlob *inData, struct HksBlob *outData); 478e920a95Sopenharmony_ci 488e920a95Sopenharmony_ciint32_t HksFinish(const struct HksBlob *handle, const struct HksParamSet *paramSet, 498e920a95Sopenharmony_ci const struct HksBlob *inData, struct HksBlob *outData); 508e920a95Sopenharmony_ci} 518e920a95Sopenharmony_ci} 528e920a95Sopenharmony_ci} 538e920a95Sopenharmony_ci 548e920a95Sopenharmony_ci#endif /* HKS_API_H */ 55