edk2/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h
Longhaox Lee 51e2c18a53 CryptoPkg/BaseCryptLibUnitTest: Separate MbedTls UnitTest Library.
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>
2025-11-24 13:10:50 +00:00

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