| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /**
- * \file block_cipher.h
- *
- * \brief Internal abstraction layer.
- */
- /*
- * Copyright The Mbed TLS Contributors
- * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
- #ifndef MBEDTLS_BLOCK_CIPHER_H
- #define MBEDTLS_BLOCK_CIPHER_H
- #include "mbedtls/private_access.h"
- #include "mbedtls/build_info.h"
- #if defined(MBEDTLS_AES_C)
- #include "mbedtls/aes.h"
- #endif
- #if defined(MBEDTLS_ARIA_C)
- #include "mbedtls/aria.h"
- #endif
- #if defined(MBEDTLS_CAMELLIA_C)
- #include "mbedtls/camellia.h"
- #endif
- #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
- #include "psa/crypto_types.h"
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum {
- MBEDTLS_BLOCK_CIPHER_ID_NONE = 0, /**< Unset. */
- MBEDTLS_BLOCK_CIPHER_ID_AES, /**< The AES cipher. */
- MBEDTLS_BLOCK_CIPHER_ID_CAMELLIA, /**< The Camellia cipher. */
- MBEDTLS_BLOCK_CIPHER_ID_ARIA, /**< The Aria cipher. */
- } mbedtls_block_cipher_id_t;
- /**
- * Used internally to indicate whether a context uses legacy or PSA.
- *
- * Internal use only.
- */
- typedef enum {
- MBEDTLS_BLOCK_CIPHER_ENGINE_LEGACY = 0,
- MBEDTLS_BLOCK_CIPHER_ENGINE_PSA,
- } mbedtls_block_cipher_engine_t;
- typedef struct {
- mbedtls_block_cipher_id_t MBEDTLS_PRIVATE(id);
- #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
- mbedtls_block_cipher_engine_t MBEDTLS_PRIVATE(engine);
- mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psa_key_id);
- #endif
- union {
- unsigned dummy; /* Make the union non-empty even with no supported algorithms. */
- #if defined(MBEDTLS_AES_C)
- mbedtls_aes_context MBEDTLS_PRIVATE(aes);
- #endif
- #if defined(MBEDTLS_ARIA_C)
- mbedtls_aria_context MBEDTLS_PRIVATE(aria);
- #endif
- #if defined(MBEDTLS_CAMELLIA_C)
- mbedtls_camellia_context MBEDTLS_PRIVATE(camellia);
- #endif
- } MBEDTLS_PRIVATE(ctx);
- } mbedtls_block_cipher_context_t;
- #ifdef __cplusplus
- }
- #endif
- #endif /* MBEDTLS_BLOCK_CIPHER_H */
|