This adds a new INF for BaseCryptLib suitable for host based environments. It adds a host based unit test for BaseCryptLib that can also be built as a shell based Unit Test. In addition, this also adds a UnitTestHostCrtWrapper.c file, which provides some of the functionality not provided by the default host based unit test system that OpenSSL expects. This is used by UnitTestHostBaseCryptLib, a version of the BaseCryptLib meant specifically for host based unit testing. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Signed-off-by: Matthew Carlson <matthewfcarlson@gmail.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Application for Pseudorandom Number Generator Validation.
 | 
						|
 | 
						|
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
 | 
						|
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include "TestBaseCryptLib.h"
 | 
						|
 | 
						|
#define  RANDOM_NUMBER_SIZE  256
 | 
						|
 | 
						|
CONST  UINT8  SeedString[] = "This is the random seed for PRNG verification.";
 | 
						|
 | 
						|
UINT8  PreviousRandomBuffer[RANDOM_NUMBER_SIZE] = { 0x0 };
 | 
						|
 | 
						|
UINT8  RandomBuffer[RANDOM_NUMBER_SIZE] = { 0x0 };
 | 
						|
 | 
						|
UNIT_TEST_STATUS
 | 
						|
EFIAPI
 | 
						|
TestVerifyPrngGeneration (
 | 
						|
  UNIT_TEST_CONTEXT           Context
 | 
						|
  )
 | 
						|
{
 | 
						|
  UINTN    Index;
 | 
						|
  BOOLEAN  Status;
 | 
						|
 | 
						|
  Status = RandomSeed (SeedString, sizeof (SeedString));
 | 
						|
  UT_ASSERT_TRUE (Status);
 | 
						|
 | 
						|
  for (Index = 0; Index < 10; Index ++) {
 | 
						|
    Status = RandomBytes (RandomBuffer, RANDOM_NUMBER_SIZE);
 | 
						|
    UT_ASSERT_TRUE (Status);
 | 
						|
 | 
						|
    Status = (CompareMem (PreviousRandomBuffer, RandomBuffer, RANDOM_NUMBER_SIZE) == 0);
 | 
						|
    UT_ASSERT_FALSE (Status);
 | 
						|
 | 
						|
    CopyMem (PreviousRandomBuffer, RandomBuffer, RANDOM_NUMBER_SIZE);
 | 
						|
  }
 | 
						|
 | 
						|
  return UNIT_TEST_PASSED;
 | 
						|
}
 | 
						|
 | 
						|
TEST_DESC mPrngTest[] = {
 | 
						|
    //
 | 
						|
    // -----Description--------------------------------Class--------------------Function----------------Pre---Post--Context
 | 
						|
    //
 | 
						|
    {"TestVerifyPrngGeneration()",       "CryptoPkg.BaseCryptLib.Prng",   TestVerifyPrngGeneration,   NULL, NULL, NULL},
 | 
						|
};
 | 
						|
 | 
						|
UINTN mPrngTestNum = ARRAY_SIZE(mPrngTest);
 |