Mistake on this page?
Report an issue in GitHub or email us
psa_crypto_invasive.h
Go to the documentation of this file.
1 /**
2  * \file psa_crypto_invasive.h
3  *
4  * \brief PSA cryptography module: invasive interfaces for test only.
5  *
6  * The interfaces in this file are intended for testing purposes only.
7  * They MUST NOT be made available to clients over IPC in integrations
8  * with isolation, and they SHOULD NOT be made available in library
9  * integrations except when building the library for testing.
10  */
11 /*
12  * Copyright The Mbed TLS Contributors
13  * SPDX-License-Identifier: Apache-2.0
14  *
15  * Licensed under the Apache License, Version 2.0 (the "License"); you may
16  * not use this file except in compliance with the License.
17  * You may obtain a copy of the License at
18  *
19  * http://www.apache.org/licenses/LICENSE-2.0
20  *
21  * Unless required by applicable law or agreed to in writing, software
22  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
23  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24  * See the License for the specific language governing permissions and
25  * limitations under the License.
26  */
27 
28 #ifndef PSA_CRYPTO_INVASIVE_H
29 #define PSA_CRYPTO_INVASIVE_H
30 
31 #if defined(MBEDTLS_CONFIG_FILE)
32 #include MBEDTLS_CONFIG_FILE
33 #else
34 #include "mbedtls/config.h"
35 #endif
36 
37 #include "psa/crypto.h"
38 
39 #include "mbedtls/entropy.h"
40 
41 /** \brief Configure entropy sources.
42  *
43  * This function may only be called before a call to psa_crypto_init(),
44  * or after a call to mbedtls_psa_crypto_free() and before any
45  * subsequent call to psa_crypto_init().
46  *
47  * This function is only intended for test purposes. The functionality
48  * it provides is also useful for system integrators, but
49  * system integrators should configure entropy drivers instead of
50  * breaking through to the Mbed TLS API.
51  *
52  * \param entropy_init Function to initialize the entropy context
53  * and set up the desired entropy sources.
54  * It is called by psa_crypto_init().
55  * By default this is mbedtls_entropy_init().
56  * This function cannot report failures directly.
57  * To indicate a failure, set the entropy context
58  * to a state where mbedtls_entropy_func() will
59  * return an error.
60  * \param entropy_free Function to free the entropy context
61  * and associated resources.
62  * It is called by mbedtls_psa_crypto_free().
63  * By default this is mbedtls_entropy_free().
64  *
65  * \retval PSA_SUCCESS
66  * Success.
67  * \retval PSA_ERROR_NOT_PERMITTED
68  * The caller does not have the permission to configure
69  * entropy sources.
70  * \retval PSA_ERROR_BAD_STATE
71  * The library has already been initialized.
72  */
74  void (* entropy_init )( mbedtls_entropy_context *ctx ),
75  void (* entropy_free )( mbedtls_entropy_context *ctx ) );
76 
77 #endif /* PSA_CRYPTO_INVASIVE_H */
psa_status_t mbedtls_psa_crypto_configure_entropy_sources(void(*entropy_init)(mbedtls_entropy_context *ctx), void(*entropy_free)(mbedtls_entropy_context *ctx))
Configure entropy sources.
int32_t psa_status_t
Function return status.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.