]> git.proxmox.com Git - mirror_edk2.git/blob - CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RandTests.c
CryptoPkg: Apply uncrustify changes
[mirror_edk2.git] / CryptoPkg / Test / UnitTest / Library / BaseCryptLib / RandTests.c
1 /** @file
2 Application for Pseudorandom Number Generator Validation.
3
4 Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #include "TestBaseCryptLib.h"
10
11 #define RANDOM_NUMBER_SIZE 256
12
13 CONST UINT8 SeedString[] = "This is the random seed for PRNG verification.";
14
15 UINT8 PreviousRandomBuffer[RANDOM_NUMBER_SIZE] = { 0x0 };
16
17 UINT8 RandomBuffer[RANDOM_NUMBER_SIZE] = { 0x0 };
18
19 UNIT_TEST_STATUS
20 EFIAPI
21 TestVerifyPrngGeneration (
22 UNIT_TEST_CONTEXT Context
23 )
24 {
25 UINTN Index;
26 BOOLEAN Status;
27
28 Status = RandomSeed (SeedString, sizeof (SeedString));
29 UT_ASSERT_TRUE (Status);
30
31 for (Index = 0; Index < 10; Index++) {
32 Status = RandomBytes (RandomBuffer, RANDOM_NUMBER_SIZE);
33 UT_ASSERT_TRUE (Status);
34
35 Status = (CompareMem (PreviousRandomBuffer, RandomBuffer, RANDOM_NUMBER_SIZE) == 0);
36 UT_ASSERT_FALSE (Status);
37
38 CopyMem (PreviousRandomBuffer, RandomBuffer, RANDOM_NUMBER_SIZE);
39 }
40
41 return UNIT_TEST_PASSED;
42 }
43
44 TEST_DESC mPrngTest[] = {
45 //
46 // -----Description--------------------------------Class--------------------Function----------------Pre---Post--Context
47 //
48 { "TestVerifyPrngGeneration()", "CryptoPkg.BaseCryptLib.Prng", TestVerifyPrngGeneration, NULL, NULL, NULL },
49 };
50
51 UINTN mPrngTestNum = ARRAY_SIZE (mPrngTest);