17777dab0Sopenharmony_ci/*
27777dab0Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
37777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47777dab0Sopenharmony_ci * you may not use this file except in compliance with the License.
57777dab0Sopenharmony_ci * You may obtain a copy of the License at
67777dab0Sopenharmony_ci *
77777dab0Sopenharmony_ci *    http://www.apache.org/licenses/LICENSE-2.0
87777dab0Sopenharmony_ci *
97777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127777dab0Sopenharmony_ci * See the License for the specific language governing permissions and
137777dab0Sopenharmony_ci * limitations under the License.
147777dab0Sopenharmony_ci */
157777dab0Sopenharmony_ci
167777dab0Sopenharmony_ci#ifndef OEMKEY_H
177777dab0Sopenharmony_ci#define OEMKEY_H
187777dab0Sopenharmony_ci/**
197777dab0Sopenharmony_ci * @addtogroup TeeTrusted
207777dab0Sopenharmony_ci * @{
217777dab0Sopenharmony_ci *
227777dab0Sopenharmony_ci * @brief TEE(Trusted Excution Environment) API.
237777dab0Sopenharmony_ci * Provides security capability APIs such as trusted storage, encryption and decryption,
247777dab0Sopenharmony_ci * and trusted time for trusted application development.
257777dab0Sopenharmony_ci *
267777dab0Sopenharmony_ci * @since 12
277777dab0Sopenharmony_ci */
287777dab0Sopenharmony_ci
297777dab0Sopenharmony_ci/**
307777dab0Sopenharmony_ci * @file oemkey.h
317777dab0Sopenharmony_ci *
327777dab0Sopenharmony_ci * @brief Provides the method for obtaining the hardware provision key.
337777dab0Sopenharmony_ci *
347777dab0Sopenharmony_ci * @library NA
357777dab0Sopenharmony_ci * @kit TEEKit
367777dab0Sopenharmony_ci * @syscap SystemCapability.Tee.TeeClient
377777dab0Sopenharmony_ci * @since 12
387777dab0Sopenharmony_ci * @version 1.0
397777dab0Sopenharmony_ci */
407777dab0Sopenharmony_ci
417777dab0Sopenharmony_ci#include <stdint.h>
427777dab0Sopenharmony_ci#include <stdlib.h>
437777dab0Sopenharmony_ci
447777dab0Sopenharmony_ci#ifdef __cplusplus
457777dab0Sopenharmony_ciextern "C" {
467777dab0Sopenharmony_ci#endif
477777dab0Sopenharmony_ci/**
487777dab0Sopenharmony_ci * @brief Obtains the provision key.
497777dab0Sopenharmony_ci *
507777dab0Sopenharmony_ci * @param oem_key Indicates the pointer to the buffer for storing the provision key.
517777dab0Sopenharmony_ci * @param key_size Indicates the length of the buffer used to store the provision key, which is 16.
527777dab0Sopenharmony_ci *
537777dab0Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful.
547777dab0Sopenharmony_ci * @return Returns other values otherwise.
557777dab0Sopenharmony_ci *
567777dab0Sopenharmony_ci * @since 12
577777dab0Sopenharmony_ci */
587777dab0Sopenharmony_ciuint32_t tee_hal_get_provision_key(uint8_t *oem_key, size_t key_size);
597777dab0Sopenharmony_ci
607777dab0Sopenharmony_ci#ifdef __cplusplus
617777dab0Sopenharmony_ci}
627777dab0Sopenharmony_ci#endif
637777dab0Sopenharmony_ci
647777dab0Sopenharmony_ci/** @} */
657777dab0Sopenharmony_ci#endif
66