-
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.
Merge pull request #4157 from stevew817/dispatch_hash_operations
Dispatch hash operations through the driver wrapper layer
- Loading branch information
Showing
15 changed files
with
1,431 additions
and
482 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,89 @@ | ||
/* | ||
* 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 mbedtls_psa_hash_operation_t 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
/* | ||
* Declaration of context structures for use with the PSA driver wrapper | ||
* interface. | ||
* | ||
* Warning: This file will be auto-generated in the future. | ||
*/ | ||
/* 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_DRIVER_CONTEXTS_H | ||
#define PSA_CRYPTO_DRIVER_CONTEXTS_H | ||
|
||
#include "psa/crypto.h" | ||
#include "psa/crypto_driver_common.h" | ||
|
||
/* Include the context structure definitions for those drivers that were | ||
* declared during the autogeneration process. */ | ||
|
||
/* Include the context structure definitions for the Mbed TLS software drivers */ | ||
#include "psa/crypto_builtin_hash.h" | ||
|
||
/* Define the context to be used for an operation that is executed through the | ||
* PSA Driver wrapper layer as the union of all possible driver's contexts. | ||
* | ||
* The union members are the driver's context structures, and the member names | ||
* are formatted as `'drivername'_ctx`. This allows for procedural generation | ||
* of both this file and the content of psa_crypto_driver_wrappers.c */ | ||
|
||
typedef union { | ||
unsigned dummy; /* Make sure this structure is always non-empty */ | ||
mbedtls_psa_hash_operation_t mbedtls_ctx; | ||
#if defined(PSA_CRYPTO_DRIVER_TEST) | ||
mbedtls_transparent_test_driver_hash_operation_t test_driver_ctx; | ||
#endif | ||
} psa_driver_hash_context_t; | ||
|
||
#endif /* PSA_CRYPTO_DRIVER_CONTEXTS_H */ | ||
/* End of automatically generated file. */ |
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
Oops, something went wrong.