Mbed OS Reference
Loading...
Searching...
No Matches
trng_api.h
1
2
/** \addtogroup hal */
3
/** @{*/
4
/* mbed Microcontroller Library
5
* Copyright (c) 2016 ARM Limited
6
* SPDX-License-Identifier: Apache-2.0
7
*
8
* Licensed under the Apache License, Version 2.0 (the "License");
9
* you may not use this file except in compliance with the License.
10
* You may obtain a copy of the License at
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
19
*/
20
#ifndef MBED_TRNG_API_H
21
#define MBED_TRNG_API_H
22
23
#include <stddef.h>
24
#include "device.h"
25
26
#if defined(DEVICE_TRNG) || defined(FEATURE_PSA)
27
28
/** TRNG HAL structure. trng_s is declared in the target's HAL
29
*/
30
typedef
struct
trng_s
trng_t
;
31
32
#ifdef __cplusplus
33
extern
"C"
{
34
#endif
35
36
/**
37
* \defgroup hal_trng TRNG hal functions
38
* @{
39
*/
40
41
/** Initialize the TRNG peripheral
42
*
43
* @param obj The TRNG object
44
*/
45
void
trng_init
(
trng_t
*obj);
46
47
/** Deinitialize the TRNG peripheral
48
*
49
* @param obj The TRNG object
50
*/
51
void
trng_free
(
trng_t
*obj);
52
53
/** Get random data from TRNG peripheral
54
*
55
* @param obj The TRNG object
56
* @param output The pointer to an output array
57
* @param length The size of output data, to avoid buffer overwrite
58
* @param output_length The length of generated data
59
* @return 0 success, -1 fail
60
*/
61
int
trng_get_bytes
(
trng_t
*obj, uint8_t *output,
size_t
length,
size_t
*output_length);
62
63
/**@}*/
64
65
#ifdef __cplusplus
66
}
67
#endif
68
69
#endif
70
71
#endif
72
73
/** @}*/
trng_get_bytes
int trng_get_bytes(trng_t *obj, uint8_t *output, size_t length, size_t *output_length)
Get random data from TRNG peripheral.
trng_free
void trng_free(trng_t *obj)
Deinitialize the TRNG peripheral.
trng_init
void trng_init(trng_t *obj)
Initialize the TRNG peripheral.
trng_s
Definition:
objects_cryptocell.h:26
hal
include
hal
trng_api.h
Generated by
1.9.5