/** @file Application for Pseudorandom Number Generator Validation. Copyright (c) 2010, Intel Corporation. All rights reserved.
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);