blob: bf95c9821e5522ab0da5cfab987fdf5d349768eb [file] [log] [blame]
Soby Mathewd7b79f22020-05-21 15:06:54 +01001/*
Maulik Patel28659c42021-01-06 14:09:22 +00002 * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
Soby Mathewd7b79f22020-05-21 15:06:54 +01003 *
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
25extern "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. */
32struct psa_client_key_attributes_s
33{
Devaraj Ranganna7cbffbe2021-04-15 15:37:32 +010034 uint16_t type;
35 uint16_t bits;
Soby Mathewd7b79f22020-05-21 15:06:54 +010036 uint32_t lifetime;
Maulik Patel28659c42021-01-06 14:09:22 +000037 psa_key_id_t id;
Soby Mathewd7b79f22020-05-21 15:06:54 +010038 uint32_t usage;
Devaraj Ranganna7cbffbe2021-04-15 15:37:32 +010039 uint32_t alg;
Soby Mathewd7b79f22020-05-21 15:06:54 +010040};
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 */