1 /*
2  * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 /**
8  * \file psa/crypto_client_struct.h
9  *
10  * \brief PSA cryptography client key attribute definitions
11  *
12  * \note This file may not be included directly. Applications must
13  * include psa/crypto.h.
14  *
15  * This file contains the definitions of some data structures with
16  * PSA crypto client specific definitions. This is for implementations
17  * with isolation between the Client applications and the Crypto
18  * Server module, it is expected that the front-end and the back-end
19  * would have different versions of the data structure.
20  */
21 #ifndef PSA_CRYPTO_CLIENT_STRUCT_H
22 #define PSA_CRYPTO_CLIENT_STRUCT_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* This is the client view of the `key_attributes` structure. Only
29  * fields which need to be set by the PSA crypto client are present.
30  * The PSA crypto service will maintain a different version of the
31  * data structure internally. */
32 struct psa_client_key_attributes_s
33 {
34     uint16_t type;
35     uint16_t bits;
36     uint32_t lifetime;
37     psa_key_id_t id;
38     uint32_t usage;
39     uint32_t alg;
40 };
41 
42 #define PSA_CLIENT_KEY_ATTRIBUTES_INIT {0, 0, 0, 0, 0, 0}
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif /* PSA_CRYPTO_CLIENT_STRUCT_H */
49