| /** @file | |
| Application for Cryptographic Primitives Validation. | |
| Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __CRYPTEST_H__ | |
| #define __CRYPTEST_H__ | |
| #include <PiPei.h> | |
| #include <Uefi.h> | |
| #include <Library/UefiLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/UnitTestLib.h> | |
| #include <Library/PrintLib.h> | |
| #include <Library/BaseCryptLib.h> | |
| #include <Library/BaseLib.h> | |
| #include <Library/BaseMemoryLib.h> | |
| #include <Library/MemoryAllocationLib.h> | |
| // #include <UnitTestTypes.h> | |
| #include <Library/UnitTestLib.h> | |
| // #include <Library/UnitTestAssertLib.h> | |
| #define UNIT_TEST_NAME "BaseCryptLib Unit Test" | |
| #define UNIT_TEST_VERSION "1.0" | |
| typedef struct { | |
| CHAR8 *Description; | |
| CHAR8 *ClassName; | |
| UNIT_TEST_FUNCTION Func; | |
| UNIT_TEST_PREREQUISITE PreReq; | |
| UNIT_TEST_CLEANUP CleanUp; | |
| UNIT_TEST_CONTEXT Context; | |
| } TEST_DESC; | |
| typedef struct { | |
| CHAR8 *Title; | |
| CHAR8 *Package; | |
| UNIT_TEST_SUITE_SETUP Sup; | |
| UNIT_TEST_SUITE_TEARDOWN Tdn; | |
| UINTN *TestNum; | |
| TEST_DESC *TestDesc; | |
| } SUITE_DESC; | |
| extern UINTN mPkcs7EkuTestNum; | |
| extern TEST_DESC mPkcs7EkuTest[]; | |
| extern UINTN mHashTestNum; | |
| extern TEST_DESC mHashTest[]; | |
| extern UINTN mHmacTestNum; | |
| extern TEST_DESC mHmacTest[]; | |
| extern UINTN mBlockCipherTestNum; | |
| extern TEST_DESC mBlockCipherTest[]; | |
| extern UINTN mRsaTestNum; | |
| extern TEST_DESC mRsaTest[]; | |
| extern UINTN mRsaCertTestNum; | |
| extern TEST_DESC mRsaCertTest[]; | |
| extern UINTN mPkcs7TestNum; | |
| extern TEST_DESC mPkcs7Test[]; | |
| extern UINTN mPkcs5TestNum; | |
| extern TEST_DESC mPkcs5Test[]; | |
| extern UINTN mAuthenticodeTestNum; | |
| extern TEST_DESC mAuthenticodeTest[]; | |
| extern UINTN mImageTimestampTestNum; | |
| extern TEST_DESC mImageTimestampTest[]; | |
| extern UINTN mDhTestNum; | |
| extern TEST_DESC mDhTest[]; | |
| extern UINTN mPrngTestNum; | |
| extern TEST_DESC mPrngTest[]; | |
| extern UINTN mOaepTestNum; | |
| extern TEST_DESC mOaepTest[]; | |
| extern UINTN mRsaPssTestNum; | |
| extern TEST_DESC mRsaPssTest[]; | |
| extern UINTN mHkdfTestNum; | |
| extern TEST_DESC mHkdfTest[]; | |
| extern UINTN mAeadAesGcmTestNum; | |
| extern TEST_DESC mAeadAesGcmTest[]; | |
| extern UINTN mBnTestNum; | |
| extern TEST_DESC mBnTest[]; | |
| extern UINTN mEcTestNum; | |
| extern TEST_DESC mEcTest[]; | |
| extern UINTN mX509TestNum; | |
| extern TEST_DESC mX509Test[]; | |
| /** Creates a framework you can use */ | |
| EFI_STATUS | |
| EFIAPI | |
| CreateUnitTest ( | |
| IN CHAR8 *UnitTestName, | |
| IN CHAR8 *UnitTestVersion, | |
| IN OUT UNIT_TEST_FRAMEWORK_HANDLE *Framework | |
| ); | |
| /** | |
| Validate UEFI-OpenSSL DH Interfaces. | |
| @retval EFI_SUCCESS Validation succeeded. | |
| @retval EFI_ABORTED Validation failed. | |
| **/ | |
| EFI_STATUS | |
| ValidateCryptDh ( | |
| VOID | |
| ); | |
| /** | |
| Validate UEFI-OpenSSL pseudorandom number generator interfaces. | |
| @retval EFI_SUCCESS Validation succeeded. | |
| @retval EFI_ABORTED Validation failed. | |
| **/ | |
| EFI_STATUS | |
| ValidateCryptPrng ( | |
| VOID | |
| ); | |
| /** | |
| Initialize the unit test framework, suite, and unit tests for the | |
| sample unit tests and run the unit tests. | |
| @retval EFI_SUCCESS All test cases were dispatched. | |
| @retval EFI_OUT_OF_RESOURCES There are not enough resources available to | |
| initialize the unit tests. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| UefiTestMain ( | |
| VOID | |
| ); | |
| #endif |