mirror of https://github.com/acidanthera/audk.git
SecurityPkg: Remove RngTest Application from SecurityPkg
BZ#: https://bugzilla.tianocore.org/show_bug.cgi?id=820 Remove the RngTest application from SecurityPkg, which was only for unit test. Cc: Chao Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Long Qin <qin.long@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
This commit is contained in:
parent
dce03c46aa
commit
b6ee737979
|
@ -1,234 +0,0 @@
|
||||||
/** @file
|
|
||||||
UEFI RNG (Random Number Generator) Protocol test application.
|
|
||||||
|
|
||||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
|
||||||
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 <Uefi.h>
|
|
||||||
#include <Library/UefiLib.h>
|
|
||||||
#include <Library/UefiApplicationEntryPoint.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/MemoryAllocationLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Protocol/Rng.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
The user Entry Point for Application. The user code starts with this function
|
|
||||||
as the real entry point for the application.
|
|
||||||
|
|
||||||
@param[in] ImageHandle The firmware allocated handle for the EFI image.
|
|
||||||
@param[in] SystemTable A pointer to the EFI System Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The entry point is executed successfully.
|
|
||||||
@retval other Some error occurs when executing this entry point.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
UefiMain (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_RNG_PROTOCOL *Rng;
|
|
||||||
UINTN RngAlgListSize;
|
|
||||||
EFI_RNG_ALGORITHM RngAlgList[10];
|
|
||||||
EFI_RNG_ALGORITHM *PtrRngAlg;
|
|
||||||
UINTN RngAlgCount;
|
|
||||||
UINT8 *Rand;
|
|
||||||
UINTN RandSize;
|
|
||||||
UINTN Index;
|
|
||||||
UINTN Index2;
|
|
||||||
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
PtrRngAlg = NULL;
|
|
||||||
Rand = NULL;
|
|
||||||
|
|
||||||
Print (L"UEFI RNG Protocol Testing :\n");
|
|
||||||
Print (L"----------------------------\n");
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
// Basic UEFI RNG Protocol Test
|
|
||||||
//-----------------------------------------
|
|
||||||
Print (L" -- Locate UEFI RNG Protocol : ");
|
|
||||||
Status = gBS->LocateProtocol (&gEfiRngProtocolGuid, NULL, (VOID **)&Rng);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]\n", Status);
|
|
||||||
goto Exit;
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
// Rng->GetInfo() interface test.
|
|
||||||
//-----------------------------------------
|
|
||||||
|
|
||||||
Print (L" -- Call RNG->GetInfo() interface : ");
|
|
||||||
RngAlgListSize = 0;
|
|
||||||
Status = Rng->GetInfo (Rng, &RngAlgListSize, NULL);
|
|
||||||
if (Status != EFI_BUFFER_TOO_SMALL) {
|
|
||||||
Print (L"[Fail - Status = %r]\n", Status);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Print out the supported RNG algorithm GUIDs
|
|
||||||
//
|
|
||||||
RngAlgCount = RngAlgListSize / sizeof (EFI_RNG_ALGORITHM);
|
|
||||||
Print (L"\n >> Supported RNG Algorithm (Count = %d) : ", RngAlgCount);
|
|
||||||
Status = Rng->GetInfo (Rng, &RngAlgListSize, RngAlgList);
|
|
||||||
for (Index = 0; Index < RngAlgCount; Index++) {
|
|
||||||
PtrRngAlg = (EFI_RNG_ALGORITHM *)(&RngAlgList[Index]);
|
|
||||||
Print (L"\n %d) ", Index);
|
|
||||||
Print (L"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", PtrRngAlg->Data1,
|
|
||||||
PtrRngAlg->Data2, PtrRngAlg->Data3, PtrRngAlg->Data4[0], PtrRngAlg->Data4[1],
|
|
||||||
PtrRngAlg->Data4[2], PtrRngAlg->Data4[3], PtrRngAlg->Data4[4],
|
|
||||||
PtrRngAlg->Data4[5], PtrRngAlg->Data4[6], PtrRngAlg->Data4[7]);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
// Rng->GetRNG() interface test.
|
|
||||||
//-----------------------------------------
|
|
||||||
Print (L"\n -- Call RNG->GetRNG() interface : ");
|
|
||||||
|
|
||||||
//
|
|
||||||
// Allocate one buffer to store random data.
|
|
||||||
//
|
|
||||||
RandSize = 32;
|
|
||||||
Rand = AllocatePool (RandSize);
|
|
||||||
if (Rand == NULL) {
|
|
||||||
goto Exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with default algorithm
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with default algorithm : ");
|
|
||||||
Status = Rng->GetRNG (Rng, NULL, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with SP800-90-HMAC-256
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with SP800-90-HMAC-256 : ");
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmSp80090Hmac256Guid, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with SP800-90-HASH-256
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with SP800-90-Hash-256 : ");
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmSp80090Hash256Guid, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with SP800-90-CTR-256
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with SP800-90-CTR-256 : ");
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmSp80090Ctr256Guid, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with X9.31-3DES
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with X9.31-3DES : ");
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmX9313DesGuid, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with X9.31-AES
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with X9.31-AES : ");
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmX931AesGuid, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RNG with RAW Entropy
|
|
||||||
//
|
|
||||||
Print (L"\n >> RNG with RAW Entropy : ");
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmRaw, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
} else {
|
|
||||||
Print (L"[Pass]");
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
// Random Number Generator test.
|
|
||||||
//-----------------------------------------
|
|
||||||
Print (L"\n -- Random Number Generation Test with default RNG Algorithm (20 Rounds): ");
|
|
||||||
|
|
||||||
RandSize = 1;
|
|
||||||
for (Index = 0; Index < 20; Index++) {
|
|
||||||
Status = Rng->GetRNG (Rng, NULL, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
Print (L"\n %02d) - ", Index + 1);
|
|
||||||
for (Index2 = 0; Index2 < RandSize; Index2++) {
|
|
||||||
Print (L"%02x", Rand[Index2]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
RandSize +=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
// Random Number Generator test.
|
|
||||||
//-----------------------------------------
|
|
||||||
Print (L"\n -- RAW Entropy Generation Test (20 Rounds) : ");
|
|
||||||
|
|
||||||
RandSize = 32;
|
|
||||||
for (Index = 0; Index < 20; Index++) {
|
|
||||||
Status = Rng->GetRNG (Rng, &gEfiRngAlgorithmRaw, RandSize, Rand);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Print (L"[Fail - Status = %r]", Status);
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
Print (L"\n %02d) - ", Index + 1);
|
|
||||||
for (Index2 = 0; Index2 < RandSize; Index2++) {
|
|
||||||
Print (L"%02x", Rand[Index2]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Print (L"\n -- Exit UEFI RNG Protocol Test (Status = %r).\n", Status);
|
|
||||||
|
|
||||||
Exit:
|
|
||||||
if (Rand != NULL) {
|
|
||||||
FreePool (Rand);
|
|
||||||
}
|
|
||||||
return Status;
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
## @file
|
|
||||||
# UEFI RNG (Random Number Generator) Protocol test application.
|
|
||||||
#
|
|
||||||
# This application can print out the supported RNG algorithm in UEFI RNG Protocol.
|
|
||||||
# And then it will do a generation test on the supported RNG algorithm.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
##
|
|
||||||
|
|
||||||
[Defines]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = RngTest
|
|
||||||
FILE_GUID = B8AC7FB2-4211-4c2b-B62F-504421666C87
|
|
||||||
MODULE_TYPE = UEFI_APPLICATION
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
ENTRY_POINT = UefiMain
|
|
||||||
MODULE_UNI_FILE = RngTest.uni
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following information is for reference only and not required by the build tools.
|
|
||||||
#
|
|
||||||
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
|
|
||||||
#
|
|
||||||
|
|
||||||
[Sources]
|
|
||||||
RngTest.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
|
||||||
SecurityPkg/SecurityPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
UefiApplicationEntryPoint
|
|
||||||
UefiLib
|
|
||||||
|
|
||||||
[Protocols]
|
|
||||||
gEfiRngProtocolGuid ## CONSUMES
|
|
||||||
|
|
||||||
[Guids]
|
|
||||||
gEfiRngAlgorithmSp80090Hash256Guid ## SOMETIMES_CONSUMES ## GUID # Unique ID of the algorithm for RNG
|
|
||||||
gEfiRngAlgorithmSp80090Hmac256Guid ## SOMETIMES_CONSUMES ## GUID # Unique ID of the algorithm for RNG
|
|
||||||
gEfiRngAlgorithmSp80090Ctr256Guid ## SOMETIMES_CONSUMES ## GUID # Unique ID of the algorithm for RNG
|
|
||||||
gEfiRngAlgorithmX9313DesGuid ## SOMETIMES_CONSUMES ## GUID # Unique ID of the algorithm for RNG
|
|
||||||
gEfiRngAlgorithmX931AesGuid ## SOMETIMES_CONSUMES ## GUID # Unique ID of the algorithm for RNG
|
|
||||||
gEfiRngAlgorithmRaw ## SOMETIMES_CONSUMES ## GUID # Unique ID of the algorithm for RNG
|
|
||||||
|
|
||||||
[UserExtensions.TianoCore."ExtraFiles"]
|
|
||||||
RngTestExtra.uni
|
|
|
@ -1,23 +0,0 @@
|
||||||
// /** @file
|
|
||||||
// UEFI RNG (Random Number Generator) Protocol test application.
|
|
||||||
//
|
|
||||||
// This application can print out the supported RNG algorithm in UEFI RNG Protocol.
|
|
||||||
// And then it will do a generation test on the supported RNG algorithm.
|
|
||||||
//
|
|
||||||
// Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
// **/
|
|
||||||
|
|
||||||
|
|
||||||
#string STR_MODULE_ABSTRACT #language en-US "A shell application that used UEFI RNG (Random Number Generator) Protocol test"
|
|
||||||
|
|
||||||
#string STR_MODULE_DESCRIPTION #language en-US "This application can print out the supported RNG algorithm in UEFI RNG Protocol. And then it will do a generation test on the supported RNG algorithm."
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
// /** @file
|
|
||||||
// RngTest Localized Strings and Content
|
|
||||||
//
|
|
||||||
// Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
// **/
|
|
||||||
|
|
||||||
#string STR_PROPERTIES_MODULE_NAME
|
|
||||||
#language en-US
|
|
||||||
"UEFI RNG (Random Number Generator) Protocol Test Application"
|
|
||||||
|
|
|
@ -159,11 +159,6 @@
|
||||||
#SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerDxe.inf
|
#SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerDxe.inf
|
||||||
#SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerDxe.inf
|
#SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerDxe.inf
|
||||||
|
|
||||||
#
|
|
||||||
# Application
|
|
||||||
#
|
|
||||||
SecurityPkg/Application/RngTest/RngTest.inf
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# TPM
|
# TPM
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue