mbed TLS v2.23.0
crypto_types.h
Go to the documentation of this file.
1 
16 /*
17  * Copyright (C) 2018, ARM Limited, All Rights Reserved
18  * SPDX-License-Identifier: Apache-2.0
19  *
20  * Licensed under the Apache License, Version 2.0 (the "License"); you may
21  * not use this file except in compliance with the License.
22  * You may obtain a copy of the License at
23  *
24  * http://www.apache.org/licenses/LICENSE-2.0
25  *
26  * Unless required by applicable law or agreed to in writing, software
27  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
28  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29  * See the License for the specific language governing permissions and
30  * limitations under the License.
31  *
32  * This file is part of mbed TLS (https://tls.mbed.org)
33  */
34 
35 #ifndef PSA_CRYPTO_TYPES_H
36 #define PSA_CRYPTO_TYPES_H
37 
38 #include <stdint.h>
39 
50 /* If #PSA_SUCCESS is already defined, it means that #psa_status_t
51  * is also defined in an external header, so prevent its multiple
52  * definition.
53  */
54 #ifndef PSA_SUCCESS
55 typedef int32_t psa_status_t;
56 #endif
57 
66 typedef uint16_t psa_key_type_t;
67 
77 typedef uint8_t psa_ecc_curve_t;
78 
88 typedef uint8_t psa_dh_group_t;
89 
98 typedef uint32_t psa_algorithm_t;
99 
141 typedef uint32_t psa_key_lifetime_t;
142 
186 typedef uint8_t psa_key_persistence_t;
187 
220 typedef uint32_t psa_key_location_t;
221 
231 /* Implementation-specific quirk: The Mbed Crypto library can be built as
232  * part of a multi-client service that exposes the PSA Crypto API in each
233  * client and encodes the client identity in the key id argument of functions
234  * such as psa_open_key(). In this build configuration, we define
235  * psa_key_id_t in crypto_platform.h instead of here. */
236 #if !defined(MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER)
237 typedef uint32_t psa_key_id_t;
238 #define PSA_KEY_ID_INIT 0
239 #endif
240 
248 typedef uint32_t psa_key_usage_t;
249 
363 
364 
365 #ifndef __DOXYGEN_ONLY__
366 #if defined(MBEDTLS_PSA_CRYPTO_SE_C)
367 /* Mbed Crypto defines this type in crypto_types.h because it is also
368  * visible to applications through an implementation-specific extension.
369  * For the PSA Cryptography specification, this type is only visible
370  * via crypto_se_driver.h. */
371 typedef uint64_t psa_key_slot_number_t;
372 #endif /* MBEDTLS_PSA_CRYPTO_SE_C */
373 #endif /* !__DOXYGEN_ONLY__ */
374 
382 typedef uint16_t psa_key_derivation_step_t;
383 
386 #endif /* PSA_CRYPTO_TYPES_H */
psa_status_t
int32_t psa_status_t
Function return status.
Definition: crypto_types.h:55
psa_key_attributes_s
Definition: crypto_struct.h:343
psa_key_persistence_t
uint8_t psa_key_persistence_t
Definition: crypto_types.h:186
psa_ecc_curve_t
uint8_t psa_ecc_curve_t
Definition: crypto_types.h:77
psa_key_id_t
uint32_t psa_key_id_t
Definition: crypto_types.h:237
psa_key_location_t
uint32_t psa_key_location_t
Definition: crypto_types.h:220
psa_key_slot_number_t
uint64_t psa_key_slot_number_t
Definition: crypto_se_driver.h:148
psa_key_usage_t
uint32_t psa_key_usage_t
Encoding of permitted usage on a key.
Definition: crypto_types.h:248
psa_algorithm_t
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition: crypto_types.h:98
psa_key_derivation_step_t
uint16_t psa_key_derivation_step_t
Encoding of the step of a key derivation.
Definition: crypto_types.h:382
psa_key_type_t
uint16_t psa_key_type_t
Encoding of a key type.
Definition: crypto_types.h:66
psa_key_lifetime_t
uint32_t psa_key_lifetime_t
Definition: crypto_types.h:141
psa_dh_group_t
uint8_t psa_dh_group_t
Definition: crypto_types.h:88