-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Restructure the way driver contexts are declared
Drivers (both built-in and external) need to declare their context structures in a way such that they are accessible by the to-be-autogenerated crypto_driver_contexts.h file. That file lives in include/psa, which means all builtin driver context structure declarations also need to live in include/psa. Signed-off-by: Steven Cooreman <[email protected]>
- Loading branch information
Showing
6 changed files
with
106 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
/* | ||
* Context structure declaration of the software-based driver which performs | ||
* hashing through the PSA Crypto driver dispatch layer. | ||
*/ | ||
/* | ||
* Copyright The Mbed TLS Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may | ||
* not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
#ifndef PSA_CRYPTO_BUILTIN_HASH_H | ||
#define PSA_CRYPTO_BUILTIN_HASH_H | ||
|
||
#include <psa/crypto_driver_common.h> | ||
#include "mbedtls/md2.h" | ||
#include "mbedtls/md4.h" | ||
#include "mbedtls/md5.h" | ||
#include "mbedtls/ripemd160.h" | ||
#include "mbedtls/sha1.h" | ||
#include "mbedtls/sha256.h" | ||
#include "mbedtls/sha512.h" | ||
|
||
#if defined(MBEDTLS_PSA_BUILTIN_ALG_MD2) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_MD4) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) || \ | ||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) | ||
#define MBEDTLS_PSA_BUILTIN_HASH | ||
#endif | ||
|
||
typedef struct | ||
{ | ||
psa_algorithm_t alg; | ||
union | ||
{ | ||
unsigned dummy; /* Make the union non-empty even with no supported algorithms. */ | ||
#if defined(MBEDTLS_MD2_C) | ||
mbedtls_md2_context md2; | ||
#endif | ||
#if defined(MBEDTLS_MD4_C) | ||
mbedtls_md4_context md4; | ||
#endif | ||
#if defined(MBEDTLS_MD5_C) | ||
mbedtls_md5_context md5; | ||
#endif | ||
#if defined(MBEDTLS_RIPEMD160_C) | ||
mbedtls_ripemd160_context ripemd160; | ||
#endif | ||
#if defined(MBEDTLS_SHA1_C) | ||
mbedtls_sha1_context sha1; | ||
#endif | ||
#if defined(MBEDTLS_SHA256_C) | ||
mbedtls_sha256_context sha256; | ||
#endif | ||
#if defined(MBEDTLS_SHA512_C) | ||
mbedtls_sha512_context sha512; | ||
#endif | ||
} ctx; | ||
} mbedtls_psa_hash_operation_t; | ||
|
||
#define MBEDTLS_PSA_HASH_OPERATION_INIT {0, {0}} | ||
|
||
/* | ||
* BEYOND THIS POINT, TEST DRIVER DECLARATIONS ONLY. | ||
*/ | ||
#if defined(PSA_CRYPTO_DRIVER_TEST) | ||
|
||
typedef struct { | ||
mbedtls_psa_hash_operation_t operation; | ||
} mbedtls_transparent_test_driver_hash_operation_t; | ||
|
||
#define MBEDTLS_TRANSPARENT_TEST_DRIVER_HASH_OPERATION_INIT { MBEDTLS_PSA_HASH_OPERATION_INIT } | ||
|
||
#endif /* PSA_CRYPTO_DRIVER_TEST */ | ||
|
||
#endif /* PSA_CRYPTO_BUILTIN_HASH_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters