Loading...
Searching...
No Matches
crypto_struct.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021 HAW Hamburg
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
20#ifndef PSA_CRYPTO_PSA_CRYPTO_STRUCT_H
21#define PSA_CRYPTO_PSA_CRYPTO_STRUCT_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#include "crypto_types.h"
28#include "crypto_sizes.h"
29#include "crypto_contexts.h"
30
31#if IS_USED(MODULE_PSA_AEAD) || defined(DOXYGEN)
38 int dummy;
39};
40
45#define PSA_AEAD_OPERATION_INIT { 0 }
46
53{
55
56 return v;
57}
58#endif /* MODULE_PSA_AEAD */
59
60#if IS_USED(MODULE_PSA_CIPHER) || defined(DOXYGEN)
65 uint8_t iv_required : 1;
66 uint8_t iv_set : 1;
71 psa_cipher_context_t cipher_ctx;
72#if IS_USED(MODULE_PSA_SECURE_ELEMENT_ATECCX08A) || defined(DOXYGEN)
73 psa_se_cipher_context_t se_ctx;
74#endif
76};
77
82#define PSA_CIPHER_OPERATION_INIT { 0 }
83
90{
92
93 return v;
94}
95#endif /* MODULE_PSA_CIPHER */
96
97#if IS_USED(MODULE_PSA_KEY_DERIVATION) || defined(DOXYGEN)
102#define PSA_KEY_DERIVATION_OPERATION_INIT { 0 }
103
112
124#endif /* MODULE_PSA_KEY_DERIVATION */
125
126#if IS_USED(MODULE_PSA_HASH) || defined(DOXYGEN)
132#if IS_USED(MODULE_PSA_HASH)
133 psa_hash_context_t ctx;
134#endif
135};
136
141#define PSA_HASH_OPERATION_INIT { 0 }
142
149{
151
152 return v;
153}
154#endif /* MODULE_PSA_HASH */
155
156#if IS_USED(MODULE_PSA_MAC) || defined(DOXYGEN)
161#define PSA_MAC_OPERATION_INIT { 0 }
162
169 int dummy;
170};
171
178{
180
181 return v;
182}
183#endif /* MODULE_PSA_MAC */
184
185#ifdef __cplusplus
186}
187#endif
188
189#endif /* PSA_CRYPTO_PSA_CRYPTO_STRUCT_H */
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition algorithm.h:39
Context definitions for PSA Crypto.
Size definitions for PSA Crypto.
#define PSA_CIPHER_OPERATION_INIT
This macro returns a suitable initializer for a cipher operation object of type psa_cipher_operation_...
#define PSA_MAC_OPERATION_INIT
This macro returns a suitable initializer for a MAC operation object of type psa_mac_operation_t.
static struct psa_aead_operation_s psa_aead_operation_init(void)
Return an initial value for an AEAD operation object.
#define PSA_KEY_DERIVATION_OPERATION_INIT
This macro returns a suitable initializer for a key derivation operation object of type psa_key_deriv...
#define PSA_HASH_OPERATION_INIT
This macro returns a suitable initializer for a hash operation object of type psa_hash_operation_t.
static struct psa_cipher_operation_s psa_cipher_operation_init(void)
Return an initial value for a cipher operation object.
static struct psa_mac_operation_s psa_mac_operation_init(void)
Return an initial value for a MAC operation object.
static struct psa_hash_operation_s psa_hash_operation_init(void)
Return an initial value for a hash operation object.
static struct psa_key_derivation_operation_s psa_key_derivation_operation_init(void)
Return an initial value for a key derivation operation object.
#define PSA_AEAD_OPERATION_INIT
This macro returns a suitable initializer for an AEAD operation object of type psa_aead_operation_t.
Type definitions for PSA Crypto.
Structure storing an AEAD operation context.
int dummy
Not implemented, yet.
Structure storing a cipher operation context.
uint8_t iv_required
True if algorithm requires IV.
psa_algorithm_t alg
Operation algorithm.
uint8_t default_iv_length
Default IV length for algorithm.
union psa_cipher_operation_s::cipher_context backend_ctx
Backend specific cipher context.
uint8_t iv_set
True if IV was already set.
Structure containing a hash context and algorithm.
psa_algorithm_t alg
Operation algorithm.
Structure storing a key derivation context.
int dummy
Not implemented yet.
Structure storing a MAC operation context.
int dummy
Not yet implemented.
Union containing cipher contexts for the executing backend.
psa_cipher_context_t cipher_ctx
Cipher context.
psa_se_cipher_context_t se_ctx
SE Cipher context.