Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2025 TU Dresden
3 * Copyright (C) 2021 HAW Hamburg
4 *
5 * This file is subject to the terms and conditions of the GNU Lesser
6 * General Public License v2.1. See the file LICENSE in the top level
7 * directory for more details.
8 */
9
10#pragma once
11
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#include "hashes/psa/riot_hashes.h"
29#include "kernel_defines.h"
30#include "psa/algorithm.h"
31
32#if IS_USED(MODULE_PSA_RIOT_HASHES_HMAC_SHA256) || IS_USED(MODULE_PSA_RIOT_HASHES_MD5) || \
33 IS_USED(MODULE_PSA_RIOT_HASHES_SHA_1) || IS_USED(MODULE_PSA_RIOT_HASHES_SHA_224) || \
34 IS_USED(MODULE_PSA_RIOT_HASHES_SHA_256) || IS_USED(MODULE_PSA_RIOT_HASHES_SHA_384) || \
35 IS_USED(MODULE_PSA_RIOT_HASHES_SHA_512) || IS_USED(MODULE_PSA_RIOT_HASHES_SHA_512_224) || \
36 IS_USED(MODULE_PSA_RIOT_HASHES_SHA_512_256) || IS_USED(MODULE_PSA_RIOT_HASHES_SHA3_256) || \
37 IS_USED(MODULE_PSA_RIOT_HASHES_SHA3_384) || IS_USED(MODULE_PSA_RIOT_HASHES_SHA3_512)
38#include "hashes/psa/riot_hashes.h"
39#endif
40
41#if IS_USED(MODULE_PERIPH_HASH_SHA_1) || IS_USED(MODULE_PERIPH_HASH_SHA_224) || \
42 IS_USED(MODULE_PERIPH_HASH_SHA_256) || IS_USED(MODULE_PERIPH_HASH_SHA_384) || \
43 IS_USED(MODULE_PERIPH_HASH_SHA_512) || IS_USED(MODULE_PERIPH_HASH_SHA_512_224) || \
44 IS_USED(MODULE_PERIPH_HASH_SHA_512_256)
46#endif
47
51typedef union {
52#if IS_USED(MODULE_PSA_HASH_MD5) || defined(DOXYGEN)
53 psa_hashes_md5_ctx_t md5;
54#endif
55#if IS_USED(MODULE_PSA_HASH_SHA_1) || defined(DOXYGEN)
57#endif
58#if IS_USED(MODULE_PSA_HASH_SHA_224) || defined(DOXYGEN)
60#endif
61#if IS_USED(MODULE_PSA_HASH_SHA_256) || defined(DOXYGEN)
63#endif
64#if IS_USED(MODULE_PSA_HASH_SHA_384) || defined(DOXYGEN)
65 psa_hashes_sha384_ctx_t sha384;
66#endif
67#if IS_USED(MODULE_PSA_HASH_SHA_512) || defined(DOXYGEN)
69#endif
70#if IS_USED(MODULE_PSA_HASH_SHA3_256) || IS_USED(MODULE_PSA_HASH_SHA3_384) \
71|| IS_USED(MODULE_PSA_HASH_SHA3_512) || defined(DOXYGEN)
72 psa_hashes_sha3_ctx_t sha3;
73#endif
74#if IS_USED(MODULE_PSA_HASH_SHA_512_224) || defined(DOXYGEN)
75 psa_hashes_sha512_224_ctx_t sha512_224;
76#endif
77#if IS_USED(MODULE_PSA_HASH_SHA_512_256) || defined(DOXYGEN)
78 psa_hashes_sha512_256_ctx_t sha512_256;
79#endif
81
87#if IS_USED(MODULE_PSA_HASH) || defined(DOXYGEN)
89#endif
90};
91
123
128#define PSA_HASH_OPERATION_INIT { 0 }
129
136{
138
139 return v;
140}
141
142#ifdef __cplusplus
143}
144#endif
145
Algorithm definitions for the PSA Crypto API.
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition algorithm.h:38
Common macros and compiler attributes/pragmas configuration.
CryptoCell 310 driver specific hash contexts.
CRYS_HASHUserContext_t psa_hashes_sha224_ctx_t
Map driver specific SHA224 context to PSA context.
CRYS_HASHUserContext_t psa_hashes_sha256_ctx_t
Map driver specific SHA256 context to PSA context.
CRYS_HASHUserContext_t psa_hashes_sha512_ctx_t
Map driver specific SHA512 context to PSA context.
CRYS_HASHUserContext_t psa_hashes_sha1_ctx_t
Map driver specific SHA1 context to PSA context.
Structure containing a hash context and algorithm.
Definition types.h:85
psa_hash_context_t ctx
Operation hash context.
Definition types.h:88
psa_algorithm_t alg
Operation algorithm.
Definition types.h:86
struct psa_hash_operation_s psa_hash_operation_t
The type of the state data structure for multipart hash operations.
Definition types.h:122
static psa_hash_operation_t psa_hash_operation_init(void)
Return an initial value for a hash operation object.
Definition types.h:135
#define PSA_HASH_OPERATION_INIT
This macro returns a suitable initializer for a hash operation object of type psa_hash_operation_t.
Definition types.h:128
Structure containing the hash contexts needed by the application.
Definition types.h:51
psa_hashes_sha512_256_ctx_t sha512_256
SHA-512/256 context.
Definition types.h:78
psa_hashes_sha1_ctx_t sha1
SHA-1 context.
Definition types.h:56
psa_hashes_sha3_ctx_t sha3
SHA-3 context.
Definition types.h:72
psa_hashes_md5_ctx_t md5
MD5 context.
Definition types.h:53
psa_hashes_sha384_ctx_t sha384
SHA-384 context.
Definition types.h:65
psa_hashes_sha512_ctx_t sha512
SHA-512 context.
Definition types.h:68
psa_hashes_sha256_ctx_t sha256
SHA-256 context.
Definition types.h:62
psa_hashes_sha512_224_ctx_t sha512_224
SHA-512/224 context.
Definition types.h:75
psa_hashes_sha224_ctx_t sha224
SHA-224 context.
Definition types.h:59