File indexing completed on 2025-08-27 09:43:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef PSA_CRYPTO_BUILTIN_PRIMITIVES_H
0022 #define PSA_CRYPTO_BUILTIN_PRIMITIVES_H
0023 #include "mbedtls/private_access.h"
0024
0025 #include <psa/crypto_driver_common.h>
0026
0027
0028
0029
0030
0031 #include "mbedtls/md5.h"
0032 #include "mbedtls/ripemd160.h"
0033 #include "mbedtls/sha1.h"
0034 #include "mbedtls/sha256.h"
0035 #include "mbedtls/sha512.h"
0036 #include "mbedtls/sha3.h"
0037
0038 #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) || \
0039 defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) || \
0040 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) || \
0041 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) || \
0042 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) || \
0043 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) || \
0044 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) || \
0045 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
0046 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
0047 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
0048 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
0049 #define MBEDTLS_PSA_BUILTIN_HASH
0050 #endif
0051
0052 typedef struct {
0053 psa_algorithm_t MBEDTLS_PRIVATE(alg);
0054 union {
0055 unsigned dummy;
0056 #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5)
0057 mbedtls_md5_context md5;
0058 #endif
0059 #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160)
0060 mbedtls_ripemd160_context ripemd160;
0061 #endif
0062 #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1)
0063 mbedtls_sha1_context sha1;
0064 #endif
0065 #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) || \
0066 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224)
0067 mbedtls_sha256_context sha256;
0068 #endif
0069 #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) || \
0070 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
0071 mbedtls_sha512_context sha512;
0072 #endif
0073 #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
0074 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
0075 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
0076 defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
0077 mbedtls_sha3_context sha3;
0078 #endif
0079 } MBEDTLS_PRIVATE(ctx);
0080 } mbedtls_psa_hash_operation_t;
0081
0082 #define MBEDTLS_PSA_HASH_OPERATION_INIT { 0, { 0 } }
0083
0084
0085
0086
0087
0088 #include "mbedtls/cipher.h"
0089
0090 #if defined(MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER) || \
0091 defined(MBEDTLS_PSA_BUILTIN_ALG_CTR) || \
0092 defined(MBEDTLS_PSA_BUILTIN_ALG_CFB) || \
0093 defined(MBEDTLS_PSA_BUILTIN_ALG_OFB) || \
0094 defined(MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING) || \
0095 defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING) || \
0096 defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7) || \
0097 defined(MBEDTLS_PSA_BUILTIN_ALG_CCM_STAR_NO_TAG)
0098 #define MBEDTLS_PSA_BUILTIN_CIPHER 1
0099 #endif
0100
0101 typedef struct {
0102
0103 psa_algorithm_t MBEDTLS_PRIVATE(alg);
0104 uint8_t MBEDTLS_PRIVATE(iv_length);
0105 uint8_t MBEDTLS_PRIVATE(block_length);
0106 union {
0107 unsigned int MBEDTLS_PRIVATE(dummy);
0108 mbedtls_cipher_context_t MBEDTLS_PRIVATE(cipher);
0109 } MBEDTLS_PRIVATE(ctx);
0110 } mbedtls_psa_cipher_operation_t;
0111
0112 #define MBEDTLS_PSA_CIPHER_OPERATION_INIT { 0, 0, 0, { 0 } }
0113
0114 #endif