From a8c4464502aabcbda7032daddc772a1bc7386bdf Mon Sep 17 00:00:00 2001 From: qlong Date: Tue, 2 Nov 2010 06:06:38 +0000 Subject: Update CryptoPkg for new ciphers (HMAC, Block Cipher, etc) supports. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10997 6f19259b-4bc3-4df7-8a09-765794883524 --- CryptoPkg/Application/Cryptest/RandVerify.c | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 CryptoPkg/Application/Cryptest/RandVerify.c (limited to 'CryptoPkg/Application/Cryptest/RandVerify.c') diff --git a/CryptoPkg/Application/Cryptest/RandVerify.c b/CryptoPkg/Application/Cryptest/RandVerify.c new file mode 100644 index 0000000000..c9e7341c3a --- /dev/null +++ b/CryptoPkg/Application/Cryptest/RandVerify.c @@ -0,0 +1,69 @@ +/** @file + Application for Pseudorandom Number Generator Validation. + +Copyright (c) 2010, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "Cryptest.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 }; + +/** + Validate UEFI-OpenSSL pseudorandom number generator interfaces. + + @retval EFI_SUCCESS Validation succeeded. + @retval EFI_ABORTED Validation failed. + +**/ +EFI_STATUS +ValidateCryptPrng ( + VOID + ) +{ + UINTN Index; + BOOLEAN Status; + + Print (L" \nUEFI-OpenSSL PRNG Engine Testing:\n"); + + Print (L"- Random Generation..."); + + Status = RandomSeed (SeedString, sizeof (SeedString)); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + for (Index = 0; Index < 10; Index ++) { + Status = RandomBytes (RandomBuffer, RANDOM_NUMBER_SIZE); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + if (CompareMem (PreviousRandomBuffer, RandomBuffer, RANDOM_NUMBER_SIZE) == 0) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + CopyMem (PreviousRandomBuffer, RandomBuffer, RANDOM_NUMBER_SIZE); + } + + Print (L"[Pass]\n"); + + return EFI_SUCCESS; + +} -- cgit v1.2.3