mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
Separate Unit test functions for MbedTls. BaseCryptLibMbedTls does not support all Crypto services So deprecate below function for MbedTls Unit test: TestVerifyEKUsWith3CertsInSignature() TestVerifyEKUsWith2CertsInSignature() TestNoEKUsInSignature() TestVerifyRsaCertPkcs1SignVerify TestVerifyPkcs7SignVerifyNonSelfIssued() TestVerifyDhGenerateKey() Pkcs1v2Decrypt Pkcs1v2EncryptDecrypt RsaOaepEncrypt (Interface) RsaOaepEncrypt (NoSeed) RsaOaepEncrypt (Seeded) RsaOaepDecrypt RsaOaepEncryptDecrypt RsaOaepEncryptPkcs1v2Decrypt Pkcs1v2EncryptRsaOaepDecrypt RsaOaepEncrypt (MdDefaultMgf1Default) RsaOaepDecrypt (MdDefaultMgf1Default) RsaOaepEncryptDecrypt (MdDefaultMgf1Default) RsaOaepEncrypt (MdSha1Bgf1Sha1 RsaOaepDecrypt (MdSha1Bgf1Sha1) RsaOaepEncryptDecrypt (MdSha1Bgf1Sha1) RsaOaepEncrypt (MdSha256Bgf1Sha256) RsaOaepDecrypt (MdSha256Bgf1Sha256) RsaOaepEncryptDecrypt (MdSha256Bgf1Sha256) TestVerifyBn() TestVerifyEcKey() TestPkcs7Attached() TestPkcs7Detached() TestVerifyPkcs7ContentData() REF: https://github.com/tianocore/edk2/issues/11605 Signed-off-by: Longhaox Lee <longhaox.lee@intel.com>
172 lines
4.1 KiB
C
172 lines
4.1 KiB
C
/** @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[];
|
|
|
|
extern UINTN mPkcs7ContentTestNum;
|
|
extern TEST_DESC mPkcs7ContentTest[];
|
|
|
|
//
|
|
// Test Case only for MbedTls.
|
|
//
|
|
extern UINTN mPkcs7EkuTestMbedTlsNum;
|
|
extern TEST_DESC mPkcs7EkuTestMbedTls[];
|
|
|
|
extern UINTN mRsaTestMbedTlsNum;
|
|
extern TEST_DESC mRsaTestMbedTls[];
|
|
|
|
extern UINTN mPkcs7TestMbedTlsNum;
|
|
extern TEST_DESC mPkcs7TestMbedTls[];
|
|
|
|
extern UINTN mOaepTestMbedTlsNum;
|
|
extern TEST_DESC mOaepTestMbedTls[];
|
|
|
|
extern UINTN mPkcs7ContentTestMbedTlsNum;
|
|
extern TEST_DESC mPkcs7ContentTestMbedTls[];
|
|
|
|
/** 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
|