1526fd984Sopenharmony_ci/*
2526fd984Sopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
3526fd984Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4526fd984Sopenharmony_ci * you may not use this file except in compliance with the License.
5526fd984Sopenharmony_ci * You may obtain a copy of the License at
6526fd984Sopenharmony_ci *
7526fd984Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8526fd984Sopenharmony_ci *
9526fd984Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10526fd984Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11526fd984Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12526fd984Sopenharmony_ci * See the License for the specific language governing permissions and
13526fd984Sopenharmony_ci * limitations under the License.
14526fd984Sopenharmony_ci */
15526fd984Sopenharmony_ci
16526fd984Sopenharmony_ci#ifndef HKS_LITE_API_H
17526fd984Sopenharmony_ci#define HKS_LITE_API_H
18526fd984Sopenharmony_ci
19526fd984Sopenharmony_ci#include "jsi.h"
20526fd984Sopenharmony_ci
21526fd984Sopenharmony_cinamespace OHOS {
22526fd984Sopenharmony_cinamespace ACELite {
23526fd984Sopenharmony_ciclass HksLiteModule final : public MemoryHeap {
24526fd984Sopenharmony_cipublic:
25526fd984Sopenharmony_ci    HksLiteModule() {}
26526fd984Sopenharmony_ci    ~HksLiteModule() {}
27526fd984Sopenharmony_ci    static JSIValue generateKeyItem(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
28526fd984Sopenharmony_ci    static JSIValue initSession(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
29526fd984Sopenharmony_ci    static JSIValue updateSession(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
30526fd984Sopenharmony_ci    static JSIValue finishSession(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
31526fd984Sopenharmony_ci    static JSIValue abortSession(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
32526fd984Sopenharmony_ci    static JSIValue deleteKeyItem(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
33526fd984Sopenharmony_ci    static JSIValue isKeyItemExist(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
34526fd984Sopenharmony_ci    static JSIValue hasKeyItem(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
35526fd984Sopenharmony_ci    static JSIValue importKeyItem(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
36526fd984Sopenharmony_ci    static JSIValue exportKeyItem(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
37526fd984Sopenharmony_ci    static JSIValue getKeyProperties(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
38526fd984Sopenharmony_ci    static JSIValue importWrappedKeyItem(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);
39526fd984Sopenharmony_ci};
40526fd984Sopenharmony_ci
41526fd984Sopenharmony_civoid InitHuksModule(JSIValue exports);
42526fd984Sopenharmony_ci} // namespace ACELite
43526fd984Sopenharmony_ci} // namespace OHOS
44526fd984Sopenharmony_ci#endif // HKS_LITE_API_H
45