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