TF-M Reference Manual
1.2.0
TrustedFirmware-M
Main Page
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
tfm_crypto_defs.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018-2020, Arm Limited. All rights reserved.
3
*
4
* SPDX-License-Identifier: BSD-3-Clause
5
*
6
*/
7
8
#ifndef __TFM_CRYPTO_DEFS_H__
9
#define __TFM_CRYPTO_DEFS_H__
10
11
#ifdef __cplusplus
12
extern
"C"
{
13
#endif
14
15
#include <stdint.h>
16
#include <limits.h>
17
#include "
tfm_api.h
"
18
#include "
psa/crypto.h
"
19
26
#define TFM_CRYPTO_MAX_NONCE_LENGTH (16u)
27
struct
tfm_crypto_aead_pack_input
{
28
uint8_t
nonce
[
TFM_CRYPTO_MAX_NONCE_LENGTH
];
29
uint32_t
nonce_length
;
30
};
31
36
struct
tfm_crypto_pack_iovec
{
37
uint32_t
sfn_id
;
40
uint16_t
step
;
41
psa_key_handle_t
key_handle
;
42
psa_algorithm_t
alg
;
43
uint32_t
op_handle
;
46
size_t
capacity
;
48
struct
tfm_crypto_aead_pack_input
aead_in
;
52
};
53
58
enum
{
59
TFM_CRYPTO_GET_KEY_ATTRIBUTES_SID
= (0u),
60
TFM_CRYPTO_RESET_KEY_ATTRIBUTES_SID
,
61
TFM_CRYPTO_OPEN_KEY_SID
,
62
TFM_CRYPTO_CLOSE_KEY_SID
,
63
TFM_CRYPTO_IMPORT_KEY_SID
,
64
TFM_CRYPTO_DESTROY_KEY_SID
,
65
TFM_CRYPTO_EXPORT_KEY_SID
,
66
TFM_CRYPTO_EXPORT_PUBLIC_KEY_SID
,
67
TFM_CRYPTO_COPY_KEY_SID
,
68
TFM_CRYPTO_HASH_COMPUTE_SID
,
69
TFM_CRYPTO_HASH_COMPARE_SID
,
70
TFM_CRYPTO_HASH_SETUP_SID
,
71
TFM_CRYPTO_HASH_UPDATE_SID
,
72
TFM_CRYPTO_HASH_FINISH_SID
,
73
TFM_CRYPTO_HASH_VERIFY_SID
,
74
TFM_CRYPTO_HASH_ABORT_SID
,
75
TFM_CRYPTO_HASH_CLONE_SID
,
76
TFM_CRYPTO_MAC_COMPUTE_SID
,
77
TFM_CRYPTO_MAC_VERIFY_SID
,
78
TFM_CRYPTO_MAC_SIGN_SETUP_SID
,
79
TFM_CRYPTO_MAC_VERIFY_SETUP_SID
,
80
TFM_CRYPTO_MAC_UPDATE_SID
,
81
TFM_CRYPTO_MAC_SIGN_FINISH_SID
,
82
TFM_CRYPTO_MAC_VERIFY_FINISH_SID
,
83
TFM_CRYPTO_MAC_ABORT_SID
,
84
TFM_CRYPTO_CIPHER_ENCRYPT_SID
,
85
TFM_CRYPTO_CIPHER_DECRYPT_SID
,
86
TFM_CRYPTO_CIPHER_ENCRYPT_SETUP_SID
,
87
TFM_CRYPTO_CIPHER_DECRYPT_SETUP_SID
,
88
TFM_CRYPTO_CIPHER_GENERATE_IV_SID
,
89
TFM_CRYPTO_CIPHER_SET_IV_SID
,
90
TFM_CRYPTO_CIPHER_UPDATE_SID
,
91
TFM_CRYPTO_CIPHER_FINISH_SID
,
92
TFM_CRYPTO_CIPHER_ABORT_SID
,
93
TFM_CRYPTO_AEAD_ENCRYPT_SID
,
94
TFM_CRYPTO_AEAD_DECRYPT_SID
,
95
TFM_CRYPTO_AEAD_ENCRYPT_SETUP_SID
,
96
TFM_CRYPTO_AEAD_DECRYPT_SETUP_SID
,
97
TFM_CRYPTO_AEAD_GENERATE_NONCE_SID
,
98
TFM_CRYPTO_AEAD_SET_NONCE_SID
,
99
TFM_CRYPTO_AEAD_SET_LENGTHS_SID
,
100
TFM_CRYPTO_AEAD_UPDATE_AD_SID
,
101
TFM_CRYPTO_AEAD_UPDATE_SID
,
102
TFM_CRYPTO_AEAD_FINISH_SID
,
103
TFM_CRYPTO_AEAD_VERIFY_SID
,
104
TFM_CRYPTO_AEAD_ABORT_SID
,
105
TFM_CRYPTO_SIGN_HASH_SID
,
106
TFM_CRYPTO_VERIFY_HASH_SID
,
107
TFM_CRYPTO_ASYMMETRIC_ENCRYPT_SID
,
108
TFM_CRYPTO_ASYMMETRIC_DECRYPT_SID
,
109
TFM_CRYPTO_KEY_DERIVATION_SETUP_SID
,
110
TFM_CRYPTO_KEY_DERIVATION_GET_CAPACITY_SID
,
111
TFM_CRYPTO_KEY_DERIVATION_SET_CAPACITY_SID
,
112
TFM_CRYPTO_KEY_DERIVATION_INPUT_BYTES_SID
,
113
TFM_CRYPTO_KEY_DERIVATION_INPUT_KEY_SID
,
114
TFM_CRYPTO_KEY_DERIVATION_KEY_AGREEMENT_SID
,
115
TFM_CRYPTO_KEY_DERIVATION_OUTPUT_BYTES_SID
,
116
TFM_CRYPTO_KEY_DERIVATION_OUTPUT_KEY_SID
,
117
TFM_CRYPTO_KEY_DERIVATION_ABORT_SID
,
118
TFM_CRYPTO_RAW_KEY_AGREEMENT_SID
,
119
TFM_CRYPTO_GENERATE_RANDOM_SID
,
120
TFM_CRYPTO_GENERATE_KEY_SID
,
121
TFM_CRYPTO_SET_KEY_DOMAIN_PARAMETERS_SID
,
122
TFM_CRYPTO_GET_KEY_DOMAIN_PARAMETERS_SID
,
123
TFM_CRYPTO_SID_MAX
,
124
};
125
130
#define TFM_CRYPTO_SID_INVALID (~0x0u)
131
136
#define TFM_CRYPTO_INVALID_HANDLE (0x0u)
137
142
#define TFM_CRYPTO_KEY_ID_HUK (0xFFFF815Bu)
143
149
#define TFM_CRYPTO_ALG_HUK_DERIVATION ((psa_algorithm_t)0xB0000F00)
150
155
enum
{
156
TFM_CRYPTO_NOT_IN_USE
= 0,
157
TFM_CRYPTO_IN_USE
= 1
158
};
159
160
#ifdef __cplusplus
161
}
162
#endif
163
164
#endif
/* __TFM_CRYPTO_DEFS_H__ */
TFM_CRYPTO_MAC_COMPUTE_SID
Definition:
tfm_crypto_defs.h:76
tfm_crypto_aead_pack_input::nonce_length
uint32_t nonce_length
Definition:
tfm_crypto_defs.h:29
TFM_CRYPTO_CIPHER_FINISH_SID
Definition:
tfm_crypto_defs.h:91
TFM_CRYPTO_MAX_NONCE_LENGTH
#define TFM_CRYPTO_MAX_NONCE_LENGTH
This type is used to overcome a limitation in the number of maximum IOVECs that can be used especiall...
Definition:
tfm_crypto_defs.h:26
TFM_CRYPTO_HASH_COMPUTE_SID
Definition:
tfm_crypto_defs.h:68
tfm_crypto_pack_iovec::key_handle
psa_key_handle_t key_handle
Definition:
tfm_crypto_defs.h:41
TFM_CRYPTO_ASYMMETRIC_DECRYPT_SID
Definition:
tfm_crypto_defs.h:108
tfm_crypto_aead_pack_input::nonce
uint8_t nonce[(16u)]
Definition:
tfm_crypto_defs.h:28
tfm_crypto_pack_iovec
Structure used to pack non-pointer types in a call.
Definition:
tfm_crypto_defs.h:36
TFM_CRYPTO_AEAD_FINISH_SID
Definition:
tfm_crypto_defs.h:102
tfm_crypto_pack_iovec::op_handle
uint32_t op_handle
Definition:
tfm_crypto_defs.h:43
TFM_CRYPTO_GET_KEY_ATTRIBUTES_SID
Definition:
tfm_crypto_defs.h:59
TFM_CRYPTO_CIPHER_UPDATE_SID
Definition:
tfm_crypto_defs.h:90
TFM_CRYPTO_AEAD_SET_LENGTHS_SID
Definition:
tfm_crypto_defs.h:99
TFM_CRYPTO_SIGN_HASH_SID
Definition:
tfm_crypto_defs.h:105
TFM_CRYPTO_HASH_COMPARE_SID
Definition:
tfm_crypto_defs.h:69
crypto.h
Platform Security Architecture cryptography module.
tfm_api.h
TFM_CRYPTO_GENERATE_KEY_SID
Definition:
tfm_crypto_defs.h:120
TFM_CRYPTO_KEY_DERIVATION_SET_CAPACITY_SID
Definition:
tfm_crypto_defs.h:111
TFM_CRYPTO_AEAD_VERIFY_SID
Definition:
tfm_crypto_defs.h:103
tfm_crypto_pack_iovec::alg
psa_algorithm_t alg
Definition:
tfm_crypto_defs.h:42
TFM_CRYPTO_IMPORT_KEY_SID
Definition:
tfm_crypto_defs.h:63
TFM_CRYPTO_MAC_ABORT_SID
Definition:
tfm_crypto_defs.h:83
TFM_CRYPTO_AEAD_SET_NONCE_SID
Definition:
tfm_crypto_defs.h:98
TFM_CRYPTO_HASH_FINISH_SID
Definition:
tfm_crypto_defs.h:72
TFM_CRYPTO_AEAD_UPDATE_AD_SID
Definition:
tfm_crypto_defs.h:100
TFM_CRYPTO_SET_KEY_DOMAIN_PARAMETERS_SID
Definition:
tfm_crypto_defs.h:121
TFM_CRYPTO_OPEN_KEY_SID
Definition:
tfm_crypto_defs.h:61
TFM_CRYPTO_KEY_DERIVATION_INPUT_KEY_SID
Definition:
tfm_crypto_defs.h:113
TFM_CRYPTO_AEAD_DECRYPT_SETUP_SID
Definition:
tfm_crypto_defs.h:96
TFM_CRYPTO_MAC_SIGN_FINISH_SID
Definition:
tfm_crypto_defs.h:81
TFM_CRYPTO_CIPHER_ENCRYPT_SETUP_SID
Definition:
tfm_crypto_defs.h:86
TFM_CRYPTO_CIPHER_GENERATE_IV_SID
Definition:
tfm_crypto_defs.h:88
TFM_CRYPTO_GENERATE_RANDOM_SID
Definition:
tfm_crypto_defs.h:119
TFM_CRYPTO_HASH_ABORT_SID
Definition:
tfm_crypto_defs.h:74
TFM_CRYPTO_MAC_VERIFY_FINISH_SID
Definition:
tfm_crypto_defs.h:82
tfm_crypto_aead_pack_input
Definition:
tfm_crypto_defs.h:27
TFM_CRYPTO_KEY_DERIVATION_GET_CAPACITY_SID
Definition:
tfm_crypto_defs.h:110
TFM_CRYPTO_KEY_DERIVATION_SETUP_SID
Definition:
tfm_crypto_defs.h:109
TFM_CRYPTO_MAC_VERIFY_SETUP_SID
Definition:
tfm_crypto_defs.h:79
TFM_CRYPTO_CLOSE_KEY_SID
Definition:
tfm_crypto_defs.h:62
TFM_CRYPTO_AEAD_UPDATE_SID
Definition:
tfm_crypto_defs.h:101
TFM_CRYPTO_ASYMMETRIC_ENCRYPT_SID
Definition:
tfm_crypto_defs.h:107
TFM_CRYPTO_CIPHER_ABORT_SID
Definition:
tfm_crypto_defs.h:92
psa_algorithm_t
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition:
crypto_types.h:90
TFM_CRYPTO_VERIFY_HASH_SID
Definition:
tfm_crypto_defs.h:106
TFM_CRYPTO_KEY_DERIVATION_ABORT_SID
Definition:
tfm_crypto_defs.h:117
TFM_CRYPTO_MAC_SIGN_SETUP_SID
Definition:
tfm_crypto_defs.h:78
tfm_crypto_pack_iovec::aead_in
struct tfm_crypto_aead_pack_input aead_in
Definition:
tfm_crypto_defs.h:48
tfm_crypto_pack_iovec::capacity
size_t capacity
Definition:
tfm_crypto_defs.h:46
TFM_CRYPTO_CIPHER_SET_IV_SID
Definition:
tfm_crypto_defs.h:89
TFM_CRYPTO_KEY_DERIVATION_OUTPUT_BYTES_SID
Definition:
tfm_crypto_defs.h:115
TFM_CRYPTO_AEAD_DECRYPT_SID
Definition:
tfm_crypto_defs.h:94
TFM_CRYPTO_RESET_KEY_ATTRIBUTES_SID
Definition:
tfm_crypto_defs.h:60
TFM_CRYPTO_MAC_VERIFY_SID
Definition:
tfm_crypto_defs.h:77
TFM_CRYPTO_KEY_DERIVATION_INPUT_BYTES_SID
Definition:
tfm_crypto_defs.h:112
psa_key_handle_t
_unsigned_integral_type_ psa_key_handle_t
Key handle.
Definition:
crypto.h:35
TFM_CRYPTO_NOT_IN_USE
Definition:
tfm_crypto_defs.h:156
TFM_CRYPTO_KEY_DERIVATION_KEY_AGREEMENT_SID
Definition:
tfm_crypto_defs.h:114
TFM_CRYPTO_KEY_DERIVATION_OUTPUT_KEY_SID
Definition:
tfm_crypto_defs.h:116
TFM_CRYPTO_AEAD_ABORT_SID
Definition:
tfm_crypto_defs.h:104
TFM_CRYPTO_CIPHER_ENCRYPT_SID
Definition:
tfm_crypto_defs.h:84
TFM_CRYPTO_MAC_UPDATE_SID
Definition:
tfm_crypto_defs.h:80
TFM_CRYPTO_AEAD_ENCRYPT_SETUP_SID
Definition:
tfm_crypto_defs.h:95
TFM_CRYPTO_HASH_SETUP_SID
Definition:
tfm_crypto_defs.h:70
TFM_CRYPTO_AEAD_GENERATE_NONCE_SID
Definition:
tfm_crypto_defs.h:97
TFM_CRYPTO_EXPORT_KEY_SID
Definition:
tfm_crypto_defs.h:65
TFM_CRYPTO_COPY_KEY_SID
Definition:
tfm_crypto_defs.h:67
TFM_CRYPTO_RAW_KEY_AGREEMENT_SID
Definition:
tfm_crypto_defs.h:118
TFM_CRYPTO_HASH_UPDATE_SID
Definition:
tfm_crypto_defs.h:71
TFM_CRYPTO_DESTROY_KEY_SID
Definition:
tfm_crypto_defs.h:64
tfm_crypto_pack_iovec::sfn_id
uint32_t sfn_id
Definition:
tfm_crypto_defs.h:37
TFM_CRYPTO_EXPORT_PUBLIC_KEY_SID
Definition:
tfm_crypto_defs.h:66
TFM_CRYPTO_IN_USE
Definition:
tfm_crypto_defs.h:157
TFM_CRYPTO_GET_KEY_DOMAIN_PARAMETERS_SID
Definition:
tfm_crypto_defs.h:122
TFM_CRYPTO_CIPHER_DECRYPT_SID
Definition:
tfm_crypto_defs.h:85
TFM_CRYPTO_AEAD_ENCRYPT_SID
Definition:
tfm_crypto_defs.h:93
TFM_CRYPTO_HASH_VERIFY_SID
Definition:
tfm_crypto_defs.h:73
TFM_CRYPTO_CIPHER_DECRYPT_SETUP_SID
Definition:
tfm_crypto_defs.h:87
TFM_CRYPTO_HASH_CLONE_SID
Definition:
tfm_crypto_defs.h:75
TFM_CRYPTO_SID_MAX
Definition:
tfm_crypto_defs.h:123
tfm_crypto_pack_iovec::step
uint16_t step
Definition:
tfm_crypto_defs.h:40
interface
include
tfm_crypto_defs.h
Generated on Thu Feb 18 2021 13:29:09 for TF-M Reference Manual by
1.8.6