Date   

回复: 回复: [edk2-devel] please let's disable the ECC plugin in CI, in its current form

gaoliming
 

Sean:
I will give the proposal to fix this issue https://bugzilla.tianocore.org/show_bug.cgi?id=2986. In fact, we can enhance ECC to skip the folder or files.

Thanks
Liming

-----邮件原件-----
发件人: Sean Brogan <spbrogan@outlook.com>
发送时间: 2020年12月9日 2:37
收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn;
lersek@redhat.com; 'Michael Kinney' <michael.d.kinney@intel.com>; 'Sean
Brogan' <sean.brogan@microsoft.com>; 'Ard Biesheuvel (ARM address)'
<ard.biesheuvel@arm.com>; 'Leif Lindholm (Nuvia address)'
<leif@nuviainc.com>; 'Andrew Fish' <afish@apple.com>
主题: Re: 回复: [edk2-devel] please let's disable the ECC plugin in CI, in its
current form

Liming

I agree it would be great to get to a place where a package maintainer
could turn this on but because of this bug
https://bugzilla.tianocore.org/show_bug.cgi?id=2986 I think this needs
to be completely disabled until the above is resolved.

Thanks
Sean


On 12/8/2020 7:38 AM, gaoliming wrote:
Laszlo:
ECC tool is not perfect. It is still helpful. I am OK to disable ECC plugin in
CI. But, I request to expose the option to enable it per package. If the
package maintainer thinks ECC is valuable, he can enable ECC plugin in one
package. As MdePkg maintainer, I can help to resolve ECC issue in MdePkg
patch. So, I would keep ECC plugin in MdePkg.

Thanks
Liming
-----邮件原件-----
发件人: bounce+27952+68414+4905953+8761045@groups.io
<bounce+27952+68414+4905953+8761045@groups.io> 代表 Laszlo
Ersek
发送时间: 2020年12月8日 10:05
收件人: Michael Kinney <michael.d.kinney@intel.com>; Sean Brogan
<sean.brogan@microsoft.com>; Ard Biesheuvel (ARM address)
<ard.biesheuvel@arm.com>; Leif Lindholm (Nuvia address)
<leif@nuviainc.com>; Andrew Fish <afish@apple.com>
抄送: edk2-devel-groups-io <devel@edk2.groups.io>
主题: [edk2-devel] please let's disable the ECC plugin in CI, in its current
form

Hi All,

in my opinion, the ECC plugin in CI has not been productive or helpful.
The errors it reports are not convincing, and exceptions are difficult
to add, or even express. I request that we disable ECC globally for
edk2, or at least make it controllable through a github PR flag (not
through CI metafile changes in edk2).

(Metafile changes could be an acceptable way of controlling ECC if (a)
they didn't have to go through review, (b) if technically such changes
would take effect in CI even if they were included in the patch series
subject to the CI run. Then a maintainer could evaluate and
*immediately* suppress such ECC issues by adding the exceptions as a
prepended patch, and force-pushing the updated branch to the same open
PR. But this would remain much inferior to simply disabling ECC, or
controlling it through a PR label.)

Thanks
Laszlo











[PATCH v1 1/1] Silicon/Qemu/Sbsa: sbsa-wdt interrupt id update

Shashi Mallela
 

Updated SBSA-wdt interrupt id in Gtdt table since
the previous value was being used by a different
source in qemu sbsa-ref platform.

Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Graeme Gregory <graeme@nuviainc.com>
Signed-off-by: Shashi Mallela <shashi.mallela@linaro.org>
---
Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc b/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc
index a010b908c434..14733a37183d 100644
--- a/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc
+++ b/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc
@@ -36,7 +36,7 @@

#define SBSAQEMU_WDT_REFRESH_FRAME_BASE 0x50010000
#define SBSAQEMU_WDT_CONTROL_FRAME_BASE 0x50011000
-#define SBSAQEMU_WDT_IRQ 44
+#define SBSAQEMU_WDT_IRQ 48

#define GTDT_WDTIMER_EDGE_TRIGGERED EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE
#define GTDT_WDTIMER_LEVEL_TRIGGERED 0
--
2.27.0


[PATCH v1 0/1] sbsa-wdt interrupt id update

Shashi Mallela
 

Updated SBSA-wdt interrupt id in Gtdt table since
the previous value was being used by a different
source in qemu sbsa-ref platform.

Shashi Mallela (1):
Silicon/Qemu/Sbsa: sbsa-wdt interrupt id update

Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--
2.27.0


回复: [edk2-devel] MdeModulePkg: Fix SetMem parameter in OnigurumaUefiPort

gaoliming
 

Reviewed-by: Liming Gao <gaoliming@...>

 

发件人: bounce+27952+68609+4905953+8761045@groups.io <bounce+27952+68609+4905953+8761045@groups.io> 代表 Anbazhagan, Baraneedharan via groups.io
发送时间: 20201210 8:21
收件人: devel@edk2.groups.io
抄送: gaoliming@...; jian.j.wang@...; hao.a.wu@...
主题: [edk2-devel] MdeModulePkg: Fix SetMem parameter in OnigurumaUefiPort

 

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3085

 

Coding error in converting memset call to SetMem - Length and Value

is not swapped on calling SetMem

 

Signed-off-by: Baraneedharan Anbazhagan <anbazhagan@...>

---

MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)

 

diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

index 2b2b0d420d..9aa7b0a68e 100644

--- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

+++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

@@ -93,6 +93,6 @@ void* memcpy (void *dest, const void *src, unsigned int count)

 

 void* memset (void *dest, char ch, unsigned int count)

{

-  return SetMem (dest, ch, count);

+  return SetMem (dest, count, ch);

}

 

--

2.29.2.windows.3

 


Re: [PATCH v2 1/2] MdePkg/Cpuid.h: Add CPUID_HYBRID_INFORMATION Leaf(1Ah).

Ni, Ray
 

+#define CPUID_HYBRID_INFORMATION_SUB_LEAF 0x00
1. At first, I thought there is no need for a definition of xxx_SUB_LEAF. Later when
I checked the SDM, I found it says, "Hybrid Information Enumeration Leaf (EAX = 1AH, ECX = 0)".
It seems that maybe ECX=1 will be introduced in future.

But with this macro name, it's hard to choose the name for ECX=1.
So, I suggest changing the macro name to
+#define CPUID_HYBRID_INFORMATION_MAIN_LEAF 0x00


+ sub-leaf #CPUID_HYBRID_INFORMATION_SUB_LEAF.
2. Change to _xxx_MAIN_LEAF


+ UINT32 CoreType:8;
3. Please define macros for core types: Intel Atom, Intel Core.
+#define CPUID_CORE_TYPE_INTEL_ATOM 0x40
+#define CPUID_CORE_TYPE_INTEL_ATOM 0x20


Re: [edk2-non-osi] [PATCH] Maintainers.txt: Add ElkhartlakeSiliconBinPkg maintainers

Chaganty, Rangasai V
 

Reviewed-by: Sai Chaganty <rangasai.v.chaganty@intel.com>

-----Original Message-----
From: Nate DeSimone <nathaniel.l.desimone@intel.com>
Sent: Wednesday, December 09, 2020 2:27 AM
To: devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Lim, Jin Jhu <jin.jhu.lim@intel.com>
Subject: [edk2-non-osi] [PATCH] Maintainers.txt: Add ElkhartlakeSiliconBinPkg maintainers

Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Jin Jhu Lim <jin.jhu.lim@intel.com>
---
Maintainers.txt | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/Maintainers.txt b/Maintainers.txt index 9ff15dc..fb4c4a3 100644
--- a/Maintainers.txt
+++ b/Maintainers.txt
@@ -53,6 +53,11 @@ Platform/Intel/CometlakeSiliconBinPkg
M: Kathappan Esakkithevar <kathappan.esakkithevar@intel.com>
M: Sai Chaganty <rangasai.v.chaganty@intel.com>

+Silicon/Intel/ElkhartlakeSiliconBinPkg
+M: Nate DeSimone <nathaniel.l.desimone@intel.com>
+M: Sai Chaganty <rangasai.v.chaganty@intel.com>
+R: Jin Jhu Lim <jin.jhu.lim@intel.com>
+
Silicon/Intel/KabylakeSiliconBinPkg
M: Chasel Chiu <chasel.chiu@intel.com>
M: Sai Chaganty <rangasai.v.chaganty@intel.com>
--
2.27.0.windows.1


MdeModulePkg: Fix SetMem parameter in OnigurumaUefiPort

Anbazhagan, Baraneedharan
 

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3085

 

Coding error in converting memset call to SetMem - Length and Value

is not swapped on calling SetMem

 

Signed-off-by: Baraneedharan Anbazhagan <anbazhagan@...>

---

MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)

 

diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

index 2b2b0d420d..9aa7b0a68e 100644

--- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

+++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

@@ -93,6 +93,6 @@ void* memcpy (void *dest, const void *src, unsigned int count)

 void* memset (void *dest, char ch, unsigned int count)

{

-  return SetMem (dest, ch, count);

+  return SetMem (dest, count, ch);

}

--

2.29.2.windows.3

 


Re: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

Yao, Jiewen
 

Good catch Bret.

 

Currently, ArmPlatformPkg.dec is in StandaloneMmCoreEntryPoint.inf.

 

But I don’t find any real dependency. ArmSvcLib is in ArmPkg.dec.

 

Hi Sami

Is that possible that we just remove ArmPlatformPkg.dec is in StandaloneMmCoreEntryPoint.inf.

 

Thank you

Yao Jiewen

 

From: Bret Barkelew <Bret.Barkelew@...>
Sent: Thursday, December 10, 2020 4:09 AM
To: devel@edk2.groups.io; sami.mujawar@...
Cc: Sami Mujawar <sami.mujawar@...>; ard.biesheuvel@...; Yao, Jiewen <jiewen.yao@...>; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: RE: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

 

Does StandaloneMm actually need this dependency:
ArmPlatformPkg/ArmPlatformPkg.dec

 

- Bret

 

From: Sami Mujawar via groups.io
Sent: Wednesday, December 9, 2020 10:49 AM
To: devel@edk2.groups.io
Cc: Sami Mujawar; ard.biesheuvel@...; Yao, Jiewen; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

 

The TianoCore EDKII project has introduced a Core CI infrastructure
using TianoCore EDKII Tools PIP modules:
  * https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fedk2-pytool-library%2F&amp;data=04%7C01%7Cbret.barkelew%40microsoft.com%7C7cc29e73d78541c28d9608d89c7323f1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431365642465867%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=tixOyEmTzX5XCznDFLfapPvPGJ4dMFtQMknQKsivuFE%3D&amp;reserved=0
  * https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fedk2-pytool-extensions%2F&amp;data=04%7C01%7Cbret.barkelew%40microsoft.com%7C7cc29e73d78541c28d9608d89c7323f1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431365642465867%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=50ExwE9RbO44Ojgk5HD0qHeSEheAdmRX%2BG4UnrVUVyE%3D&amp;reserved=0

The edk2\.pytool\Readme.md provides information to configure the
environment and to run local builds.

This patch defines the necessary settings for enabling the Core CI
builds for StandaloneMmPkg.

Signed-off-by: Sami Mujawar <sami.mujawar@...>
---
 StandaloneMmPkg/StandaloneMmPkg.ci.yaml | 85 ++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/StandaloneMmPkg/StandaloneMmPkg.ci.yaml b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..110f461815b11b3775f3e488a46e1a35ed29b4b7
--- /dev/null
+++ b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
@@ -0,0 +1,85 @@
+## @file
+#  CI configuration for StandaloneMmPkg
+#
+#  Copyright (c) 2020, Arm Limited. All rights reserved.<BR>
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+{
+    ## options defined .pytool/Plugin/CompilerPlugin
+    "CompilerPlugin": {
+        "DscPath": "StandaloneMmPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin
+    "HostUnitTestCompilerPlugin": {
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/CharEncodingCheck
+    "CharEncodingCheck": {
+        "IgnoreFiles": []
+    },
+
+    ## options defined .pytool/Plugin/DependencyCheck
+    "DependencyCheck": {
+        "AcceptableDependencies": [
+            "ArmPkg/ArmPkg.dec",
+            "ArmPlatformPkg/ArmPlatformPkg.dec",
+            "EmbeddedPkg/EmbeddedPkg.dec",
+            "StandaloneMmPkg/StandaloneMmPkg.dec",
+            "MdeModulePkg/MdeModulePkg.dec",
+            "MdePkg/MdePkg.dec"
+        ],
+        # For host based unit tests
+        "AcceptableDependencies-HOST_APPLICATION":[
+            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
+        ],
+        # For UEFI shell based apps
+        "AcceptableDependencies-UEFI_APPLICATION":[],
+        "IgnoreInf": []
+    },
+
+    ## options defined .pytool/Plugin/DscCompleteCheck
+    "DscCompleteCheck": {
+        "IgnoreInf": [],
+        "DscPath": "StandaloneMmPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck
+    "HostUnitTestDscCompleteCheck": {
+        "IgnoreInf": [""],
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/GuidCheck
+    "GuidCheck": {
+        "IgnoreGuidName": [],
+        "IgnoreGuidValue": [],
+        "IgnoreFoldersAndFiles": [],
+        "IgnoreDuplicates": [],
+    },
+
+    ## options defined .pytool/Plugin/LibraryClassCheck
+    "LibraryClassCheck": {
+        "IgnoreHeaderFile": []
+    },
+
+    ## options defined .pytool/Plugin/SpellCheck
+    "SpellCheck": {
+        "AuditOnly": False,
+        "IgnoreFiles": [],           # use gitignore syntax to ignore errors
+                                     # in matching files
+        "ExtendWords": [
+            "Bsymbolic",
+            "FwVol",
+            "mpidr",
+            "mstrict",
+            "schedulable",
+            "StandaloneMMCore",
+        ],           # words to extend to the dictionary for this package
+        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that
+                                     # should be ignore
+        "AdditionalIncludePaths": [] # Additional paths to spell check
+                                     # (wildcards supported)
+    }
+}
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



 


Re: [PATCH v1 00/25] Enable Core CI support for StandaloneMmPkg

Yao, Jiewen
 

Acked-by: Jiewen Yao <Jiewen.yao@intel.com>

-----Original Message-----
From: Sami Mujawar <sami.mujawar@arm.com>
Sent: Thursday, December 10, 2020 2:47 AM
To: devel@edk2.groups.io
Cc: Sami Mujawar <sami.mujawar@arm.com>; ard.biesheuvel@arm.com; Yao,
Jiewen <jiewen.yao@intel.com>; lersek@redhat.com;
thomas.abraham@arm.com; Sughosh.Ganu@arm.com;
Matteo.Carlini@arm.com; Ben.Adderson@arm.com; nd@arm.com
Subject: [PATCH v1 00/25] Enable Core CI support for StandaloneMmPkg

The EDKII Core CI runs the ECC tool that checks for good coding
practices and the coding standard. This patch series fixes the
ECC errors reported in the StandaloneMmPkg and enables support
for EDKII Core CI.

The changes can be seen at:
https://github.com/samimujawar/edk2/tree/1516_standalonemmpkg_ci_v1

Sami Mujawar (25):
StandaloneMmPkg: Add library header files to DEC
StandaloneMmPkg: Add library files to DSC
StandaloneMmPkg: Fix spell check reported errors
StandaloneMmPkg: Fix ECC error 9002 in Core dispatcher
StandaloneMmPkg: Fix ECC error 1001 in SMM Memory pool management
StandaloneMmPkg: Fix ECC error 3002 in StandaloneMmCpu
StandaloneMmPkg: Fix ECC error 4002 in FwVol helper
StandaloneMmPkg: Fix ECC error 5007 in StandaloneMmCoreEntryPoint
StandaloneMmPkg: Fix ECC error 5007 in StandaloneMmCpu
StandaloneMmPkg: Fix ECC error 5007 in StandaloneMmCore
StandaloneMmPkg: Fix ECC error 10014 in StandaloneMmCpu
StandaloneMmPkg: Fix ECC error 4002 and 9002 in StandaloneMmCore
StandaloneMmPkg: Fix ECC error 4002 in StandaloneMmCoreEntryPoint
StandaloneMmPkg: Fix ECC error 9002 in StandaloneMmMemLib
StandaloneMmPkg: Fix ECC error 9002 in StandaloneMmCoreEntryPoint
StandaloneMmPkg: Fix ECC error 9003 in StandaloneMmCoreEntryPoint
StandaloneMmPkg: Fix ECC error 4002 in StandaloneMmCpu
StandaloneMmPkg: Fix ECC error 9001 in StandaloneMmCpu
StandaloneMmPkg: Fix ECC error 9001 in Standalone MM Core
StandaloneMmPkg: Fix ECC error 9002 in CoreMemoryAllocationLib
StandaloneMmPkg: Fix ECC error 4002 in StandaloneMmCpu
StandaloneMmPkg: Fix ECC error 8005 in StandaloneMmCoreEntryPoint
StandaloneMmPkg: Add EDK2 Core CI support
.azurepipelines: Add StandaloneMmPkg to CI matrix
.pytool: CI Settings to support StandaloneMmPkg

.azurepipelines/templates/pr-gate-build-job.yml
| 2 +-
.pytool/CISettings.py | 1 +
.pytool/Readme.md | 2 +-
StandaloneMmPkg/Core/Dependency.c
| 6 +-
StandaloneMmPkg/Core/Dispatcher.c
| 49 ++++++-----
StandaloneMmPkg/Core/FwVol.c
| 36 +++++----
StandaloneMmPkg/Core/Locate.c
| 6 +-
StandaloneMmPkg/Core/Mmi.c |
4 +-
StandaloneMmPkg/Core/Pool.c |
6 +-
StandaloneMmPkg/Core/StandaloneMmCore.c
| 37 ++++++---
StandaloneMmPkg/Core/StandaloneMmCore.h
| 12 +--
StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c
| 56 ++++++++++---

StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.
c | 34 ++++++--

StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.
h | 31 ++++++-

StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.
inf | 9 +--
StandaloneMmPkg/Include/Guid/MmCoreData.h
| 6 +-

StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.
h | 47 ++++++-----
StandaloneMmPkg/Include/Library/StandaloneMmDriverEntryPoint.h
| 4 +-
StandaloneMmPkg/Include/Library/StandaloneMmMemLib.h
| 6 +-

StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateH
obList.c | 6 +-

StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermi
ssions.c | 53 +++++++++++-

StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/Standalo
neMmCoreEntryPoint.c | 32 +++++---

StandaloneMmPkg/Library/StandaloneMmCoreMemoryAllocationLib/Standal
oneMmCoreMemoryAllocationLib.c | 6 +-

StandaloneMmPkg/Library/StandaloneMmCoreMemoryAllocationLib/Standal
oneMmCoreMemoryAllocationLib.inf | 4 +-
StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.c
| 10 +--

StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependenc
y.c | 4 +-

StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependenc
y.inf | 4 +-
StandaloneMmPkg/StandaloneMmPkg.ci.yaml
| 85 ++++++++++++++++++++
StandaloneMmPkg/StandaloneMmPkg.dec
| 20 ++++-
StandaloneMmPkg/StandaloneMmPkg.dsc
| 15 +++-
30 files changed, 439 insertions(+), 154 deletions(-)
create mode 100644 StandaloneMmPkg/StandaloneMmPkg.ci.yaml

--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


Re: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

Yao, Jiewen
 

Do we need wait UEFI spec update for SHA-384/512 before we commit to EDK2?

 

If this patch series is for *EDK2-staging*, Acked-by: Jiewen Yao <Jiewen.yao@...>

 

 

From: Kinney, Michael D <michael.d.kinney@...>
Sent: Thursday, December 10, 2020 5:47 AM
To: Bret Barkelew <Bret.Barkelew@...>; devel@edk2.groups.io; Wadhawan, Divneil R <divneil.r.wadhawan@...>; Kinney, Michael D <michael.d.kinney@...>
Cc: Yao, Jiewen <jiewen.yao@...>; Wang, Jian J <jian.j.wang@...>; Xu, Min M <min.m.xu@...>
Subject: RE: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

 

Hi Bret,

 

I think these patches are intended for an edk2-staging branch following Code First Process.  Not root of edk2 repo.

 

Though unit tests for auth variables in their current form could be something that could be considered for edk2 repo now and add the unit tests for SHA extensions to edk2-staging.

 

Mike

 

From: Bret Barkelew <Bret.Barkelew@...>
Sent: Wednesday, December 9, 2020 12:21 PM
To: devel@edk2.groups.io; Wadhawan, Divneil R <divneil.r.wadhawan@...>
Cc: Yao, Jiewen <jiewen.yao@...>; Wang, Jian J <jian.j.wang@...>; Xu, Min M <min.m.xu@...>; Kinney, Michael D <michael.d.kinney@...>
Subject: RE: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

 

What’s with the Markdown file being added to the root directory? Is that a mistake or part of a different release process?

 

Thanks!

 

- Bret

 

From: Wadhawan, Divneil R via groups.io
Sent: Wednesday, December 9, 2020 10:33 AM
To: devel@edk2.groups.io
Cc: Yao, Jiewen; Jian J Wang; Min Xu; Kinney, Michael D
Subject: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

 

o Existing implementation of Authenticated Variables only
  support SHA-256 digest algorithms in signing scheme.

o This has been extended to support SHA-384 and SHA-512 algorithms

Cc: Jiewen Yao <jiewen.yao@...>
Cc: Jian J Wang <jian.j.wang@...>
Cc: Min Xu <min.m.xu@...>
Cc: Michael D Kinney <michael.d.kinney@...>

Signed-off-by: Divneil Rai Wadhawan <divneil.r.wadhawan@...>
---
 SecurityPkg/Library/AuthVariableLib/AuthService.c |  8 +++--
 AuthVariableDigestUpdate.md                       | 41 +++++++++++++++++++++++
 2 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 AuthVariableDigestUpdate.md

diff --git a/SecurityPkg/Library/AuthVariableLib/AuthService.c b/SecurityPkg/Library/AuthVariableLib/AuthService.c
index 4fb609504d..8f024c42a8 100644
--- a/SecurityPkg/Library/AuthVariableLib/AuthService.c
+++ b/SecurityPkg/Library/AuthVariableLib/AuthService.c
@@ -35,6 +35,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 };
 
 CONST UINT8 mSha256OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01 };
+CONST UINT8 mSha384OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02 };
+CONST UINT8 mSha512OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03 };
 
 //
 // Requirement for different signature type which have been defined in UEFI spec.
@@ -1901,7 +1903,7 @@ VerifyTimeBasedPayload (
 
   //
   // SignedData.digestAlgorithms shall contain the digest algorithm used when preparing the
-  // signature. Only a digest algorithm of SHA-256 is accepted.
+  // signature. Digest algorithm of SHA-256, SHA-384, SHA-512 are accepted.
   //
   //    According to PKCS#7 Definition:
   //        SignedData ::= SEQUENCE {
@@ -1916,7 +1918,9 @@ VerifyTimeBasedPayload (
   if ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) {
     if (SigDataSize >= (13 + sizeof (mSha256OidValue))) {
       if (((*(SigData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE) ||
-           (CompareMem (SigData + 13, &mSha256OidValue, sizeof (mSha256OidValue)) != 0)) {
+           ((CompareMem (SigData + 13, &mSha256OidValue, sizeof (mSha256OidValue)) != 0) &&
+            (CompareMem (SigData + 13, &mSha384OidValue, sizeof (mSha384OidValue)) != 0) &&
+            (CompareMem (SigData + 13, &mSha512OidValue, sizeof (mSha512OidValue)) != 0))) {
           return EFI_SECURITY_VIOLATION;
         }
     }
diff --git a/AuthVariableDigestUpdate.md b/AuthVariableDigestUpdate.md
new file mode 100644
index 0000000000..10992845a4
--- /dev/null
+++ b/AuthVariableDigestUpdate.md
@@ -0,0 +1,41 @@
+# Title: Digest Algorithm flexibility in Authenticated Variable signatures
+
+# Status: Draft
+
+# Document: UEFI Specification Version 2.8
+
+# License
+
+SPDX-License-Identifier: CC-BY-4.0
+
+# Submitter: [TianoCore Community](https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.tianocore.org%2F&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C5b6eb98d1288493a5f7f08d89c70f78b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431356285650012%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=7mtSkIFgxu5iIg519YwkxjFfx6DeXOVJT67j58dHSK4%3D&amp;reserved=0)
+
+# Summary of the change
+EFI_VARIABLE_AUTHENTICATION_2 specifies the SignedData.digestAlgorithms to be always
+SHA256. The implication is that the signing algorithm can use RSA keys greater than
+2048 bits, but the digest algorithm remains SHA256. The proposed change is to allow
+digest algorithm to be greater than SHA256.
+
+# Benefits of the change
+This brings agility to the signing mechanism of Authenticated variables by allowing
+it to sign a larger digest.
+
+# Impact of the change
+There is no impact on the existing Authenticated variables.
+
+# Detailed description of the change [normative updates]
+
+<b>Bold text</b> indicates the proposed change
+
+8.2.2 Using the EFI_VARIABLE_AUTHENTICATION_2 descriptor
+When the attribute EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS is set, then the Data buffer shall begin with an instance of a complete (and serialized) ...
+
+Construct a DER-encoded PKCS #7 version 1.5 SignedData (see [RFC2315]) with the signed content as follows:
+
+a. SignedData.version shall be set to 1
+
+b. SignedData.digestAlgorithms shall contain the digest algorithm used when preparing the signature. <b>Only a digest algorithm greater than or equal to SHA-256 is accepted.</b>
+
+
+# Special Instructions
+NA
--
2.16.2.windows.1



 


Re: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

Michael D Kinney
 

Hi Bret,

 

I think these patches are intended for an edk2-staging branch following Code First Process.  Not root of edk2 repo.

 

Though unit tests for auth variables in their current form could be something that could be considered for edk2 repo now and add the unit tests for SHA extensions to edk2-staging.

 

Mike

 

From: Bret Barkelew <Bret.Barkelew@...>
Sent: Wednesday, December 9, 2020 12:21 PM
To: devel@edk2.groups.io; Wadhawan, Divneil R <divneil.r.wadhawan@...>
Cc: Yao, Jiewen <jiewen.yao@...>; Wang, Jian J <jian.j.wang@...>; Xu, Min M <min.m.xu@...>; Kinney, Michael D <michael.d.kinney@...>
Subject: RE: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

 

What’s with the Markdown file being added to the root directory? Is that a mistake or part of a different release process?

 

Thanks!

 

- Bret

 

From: Wadhawan, Divneil R via groups.io
Sent: Wednesday, December 9, 2020 10:33 AM
To: devel@edk2.groups.io
Cc: Yao, Jiewen; Jian J Wang; Min Xu; Kinney, Michael D
Subject: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

 

o Existing implementation of Authenticated Variables only
  support SHA-256 digest algorithms in signing scheme.

o This has been extended to support SHA-384 and SHA-512 algorithms

Cc: Jiewen Yao <jiewen.yao@...>
Cc: Jian J Wang <jian.j.wang@...>
Cc: Min Xu <min.m.xu@...>
Cc: Michael D Kinney <michael.d.kinney@...>

Signed-off-by: Divneil Rai Wadhawan <divneil.r.wadhawan@...>
---
 SecurityPkg/Library/AuthVariableLib/AuthService.c |  8 +++--
 AuthVariableDigestUpdate.md                       | 41 +++++++++++++++++++++++
 2 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 AuthVariableDigestUpdate.md

diff --git a/SecurityPkg/Library/AuthVariableLib/AuthService.c b/SecurityPkg/Library/AuthVariableLib/AuthService.c
index 4fb609504d..8f024c42a8 100644
--- a/SecurityPkg/Library/AuthVariableLib/AuthService.c
+++ b/SecurityPkg/Library/AuthVariableLib/AuthService.c
@@ -35,6 +35,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 };
 
 CONST UINT8 mSha256OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01 };
+CONST UINT8 mSha384OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02 };
+CONST UINT8 mSha512OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03 };
 
 //
 // Requirement for different signature type which have been defined in UEFI spec.
@@ -1901,7 +1903,7 @@ VerifyTimeBasedPayload (
 
   //
   // SignedData.digestAlgorithms shall contain the digest algorithm used when preparing the
-  // signature. Only a digest algorithm of SHA-256 is accepted.
+  // signature. Digest algorithm of SHA-256, SHA-384, SHA-512 are accepted.
   //
   //    According to PKCS#7 Definition:
   //        SignedData ::= SEQUENCE {
@@ -1916,7 +1918,9 @@ VerifyTimeBasedPayload (
   if ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) {
     if (SigDataSize >= (13 + sizeof (mSha256OidValue))) {
       if (((*(SigData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE) ||
-           (CompareMem (SigData + 13, &mSha256OidValue, sizeof (mSha256OidValue)) != 0)) {
+           ((CompareMem (SigData + 13, &mSha256OidValue, sizeof (mSha256OidValue)) != 0) &&
+            (CompareMem (SigData + 13, &mSha384OidValue, sizeof (mSha384OidValue)) != 0) &&
+            (CompareMem (SigData + 13, &mSha512OidValue, sizeof (mSha512OidValue)) != 0))) {
           return EFI_SECURITY_VIOLATION;
         }
     }
diff --git a/AuthVariableDigestUpdate.md b/AuthVariableDigestUpdate.md
new file mode 100644
index 0000000000..10992845a4
--- /dev/null
+++ b/AuthVariableDigestUpdate.md
@@ -0,0 +1,41 @@
+# Title: Digest Algorithm flexibility in Authenticated Variable signatures
+
+# Status: Draft
+
+# Document: UEFI Specification Version 2.8
+
+# License
+
+SPDX-License-Identifier: CC-BY-4.0
+
+# Submitter: [TianoCore Community](https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.tianocore.org%2F&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C5b6eb98d1288493a5f7f08d89c70f78b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431356285650012%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=7mtSkIFgxu5iIg519YwkxjFfx6DeXOVJT67j58dHSK4%3D&amp;reserved=0)
+
+# Summary of the change
+EFI_VARIABLE_AUTHENTICATION_2 specifies the SignedData.digestAlgorithms to be always
+SHA256. The implication is that the signing algorithm can use RSA keys greater than
+2048 bits, but the digest algorithm remains SHA256. The proposed change is to allow
+digest algorithm to be greater than SHA256.
+
+# Benefits of the change
+This brings agility to the signing mechanism of Authenticated variables by allowing
+it to sign a larger digest.
+
+# Impact of the change
+There is no impact on the existing Authenticated variables.
+
+# Detailed description of the change [normative updates]
+
+<b>Bold text</b> indicates the proposed change
+
+8.2.2 Using the EFI_VARIABLE_AUTHENTICATION_2 descriptor
+When the attribute EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS is set, then the Data buffer shall begin with an instance of a complete (and serialized) ...
+
+Construct a DER-encoded PKCS #7 version 1.5 SignedData (see [RFC2315]) with the signed content as follows:
+
+a. SignedData.version shall be set to 1
+
+b. SignedData.digestAlgorithms shall contain the digest algorithm used when preparing the signature. <b>Only a digest algorithm greater than or equal to SHA-256 is accepted.</b>
+
+
+# Special Instructions
+NA
--
2.16.2.windows.1



 


Re: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

Sami Mujawar
 

Hi Bret,

 

I think the reference to ArmPlatformPkg.dec can be removed from StandaloneMmCoreEntryPoint.inf which should fix the following error and also remove the dependency.

 

ERROR - Dependency Check: Invalid Dependency INF: StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf depends on pkg ArmPlatformPkg/ArmPlatformPkg.dec

 

I will send an updated patch with this fixed.

 

Regards,

 

Sami Mujawar

From: Bret Barkelew <Bret.Barkelew@...>
Sent: 09 December 2020 08:09 PM
To: devel@edk2.groups.io; Sami Mujawar <Sami.Mujawar@...>
Cc: Sami Mujawar <Sami.Mujawar@...>; Ard Biesheuvel <Ard.Biesheuvel@...>; Yao, Jiewen <jiewen.yao@...>; lersek@...; Thomas Abraham <thomas.abraham@...>; Sughosh Ganu <Sughosh.Ganu@...>; Matteo Carlini <Matteo.Carlini@...>; Ben Adderson <Ben.Adderson@...>; nd <nd@...>
Subject: RE: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

 

Does StandaloneMm actually need this dependency:
ArmPlatformPkg/ArmPlatformPkg.dec

 

- Bret

 

From: Sami Mujawar via groups.io
Sent: Wednesday, December 9, 2020 10:49 AM
To:
devel@edk2.groups.io
Cc:
Sami Mujawar; ard.biesheuvel@...; Yao, Jiewen; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

 

The TianoCore EDKII project has introduced a Core CI infrastructure
using TianoCore EDKII Tools PIP modules:
  *
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fedk2-pytool-library%2F&amp;data=04%7C01%7Cbret.barkelew%40microsoft.com%7C7cc29e73d78541c28d9608d89c7323f1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431365642465867%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=tixOyEmTzX5XCznDFLfapPvPGJ4dMFtQMknQKsivuFE%3D&amp;reserved=0
  *
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fedk2-pytool-extensions%2F&amp;data=04%7C01%7Cbret.barkelew%40microsoft.com%7C7cc29e73d78541c28d9608d89c7323f1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431365642465867%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=50ExwE9RbO44Ojgk5HD0qHeSEheAdmRX%2BG4UnrVUVyE%3D&amp;reserved=0

The edk2\.pytool\Readme.md provides information to configure the
environment and to run local builds.

This patch defines the necessary settings for enabling the Core CI
builds for StandaloneMmPkg.

Signed-off-by: Sami Mujawar <
sami.mujawar@...>
---
 StandaloneMmPkg/StandaloneMmPkg.ci.yaml | 85 ++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/StandaloneMmPkg/StandaloneMmPkg.ci.yaml b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..110f461815b11b3775f3e488a46e1a35ed29b4b7
--- /dev/null
+++ b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
@@ -0,0 +1,85 @@
+## @file
+#  CI configuration for StandaloneMmPkg
+#
+#  Copyright (c) 2020, Arm Limited. All rights reserved.<BR>
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+{
+    ## options defined .pytool/Plugin/CompilerPlugin
+    "CompilerPlugin": {
+        "DscPath": "StandaloneMmPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin
+    "HostUnitTestCompilerPlugin": {
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/CharEncodingCheck
+    "CharEncodingCheck": {
+        "IgnoreFiles": []
+    },
+
+    ## options defined .pytool/Plugin/DependencyCheck
+    "DependencyCheck": {
+        "AcceptableDependencies": [
+            "ArmPkg/ArmPkg.dec",
+            "ArmPlatformPkg/ArmPlatformPkg.dec",
+            "EmbeddedPkg/EmbeddedPkg.dec",
+            "StandaloneMmPkg/StandaloneMmPkg.dec",
+            "MdeModulePkg/MdeModulePkg.dec",
+            "MdePkg/MdePkg.dec"
+        ],
+        # For host based unit tests
+        "AcceptableDependencies-HOST_APPLICATION":[
+            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
+        ],
+        # For UEFI shell based apps
+        "AcceptableDependencies-UEFI_APPLICATION":[],
+        "IgnoreInf": []
+    },
+
+    ## options defined .pytool/Plugin/DscCompleteCheck
+    "DscCompleteCheck": {
+        "IgnoreInf": [],
+        "DscPath": "StandaloneMmPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck
+    "HostUnitTestDscCompleteCheck": {
+        "IgnoreInf": [""],
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/GuidCheck
+    "GuidCheck": {
+        "IgnoreGuidName": [],
+        "IgnoreGuidValue": [],
+        "IgnoreFoldersAndFiles": [],
+        "IgnoreDuplicates": [],
+    },
+
+    ## options defined .pytool/Plugin/LibraryClassCheck
+    "LibraryClassCheck": {
+        "IgnoreHeaderFile": []
+    },
+
+    ## options defined .pytool/Plugin/SpellCheck
+    "SpellCheck": {
+        "AuditOnly": False,
+        "IgnoreFiles": [],           # use gitignore syntax to ignore errors
+                                     # in matching files
+        "ExtendWords": [
+            "Bsymbolic",
+            "FwVol",
+            "mpidr",
+            "mstrict",
+            "schedulable",
+            "StandaloneMMCore",
+        ],           # words to extend to the dictionary for this package
+        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that
+                                     # should be ignore
+        "AdditionalIncludePaths": [] # Additional paths to spell check
+                                     # (wildcards supported)
+    }
+}
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



 


Re: [EXTERNAL] [edk2-devel] [PATCH v1 24/25] .azurepipelines: Add StandaloneMmPkg to CI matrix

Sami Mujawar
 

Hi Bret,

 

I will update this in the next patch.

 

Regards,

 

Sami Mujawar

 

From: Bret Barkelew <Bret.Barkelew@...>
Sent: 09 December 2020 08:10 PM
To: devel@edk2.groups.io; Sami Mujawar <Sami.Mujawar@...>
Cc: Sami Mujawar <Sami.Mujawar@...>; Ard Biesheuvel <Ard.Biesheuvel@...>; Yao, Jiewen <jiewen.yao@...>; lersek@...; Thomas Abraham <thomas.abraham@...>; Sughosh Ganu <Sughosh.Ganu@...>; Matteo Carlini <Matteo.Carlini@...>; Ben Adderson <Ben.Adderson@...>; nd <nd@...>
Subject: RE: [EXTERNAL] [edk2-devel] [PATCH v1 24/25] .azurepipelines: Add StandaloneMmPkg to CI matrix

 

Need to update the TARGET_* name.

 

Probably should add this to the PcAt and Shell target, to keep the builders balanced.

 

- Bret

 

From: Sami Mujawar via groups.io
Sent: Wednesday, December 9, 2020 10:49 AM
To: devel@edk2.groups.io
Cc: Sami Mujawar; ard.biesheuvel@...; Yao, Jiewen; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: [EXTERNAL] [edk2-devel] [PATCH v1 24/25] .azurepipelines: Add StandaloneMmPkg to CI matrix

 

Add StandaloneMmPkg to the Core CI matrix.

Signed-off-by: Sami Mujawar <sami.mujawar@...>
---
 .azurepipelines/templates/pr-gate-build-job.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.azurepipelines/templates/pr-gate-build-job.yml b/.azurepipelines/templates/pr-gate-build-job.yml
index 10df21b041a670419e54a3d727bea83f0cbda157..6b1a295aff4fa34ec1cf4ce2b005ac28e7befda2 100644
--- a/.azurepipelines/templates/pr-gate-build-job.yml
+++ b/.azurepipelines/templates/pr-gate-build-job.yml
@@ -37,7 +37,7 @@ jobs:
         Build.Pkgs: 'PcAtChipsetPkg,ShellPkg'
         Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
       TARGET_FMP_FAT_TEST:
-        Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg'
+        Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg,StandaloneMmPkg'
         Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
       TARGET_CRYPTO:
         Build.Pkgs: 'CryptoPkg'
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



 


Re: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

Bret Barkelew
 

What’s with the Markdown file being added to the root directory? Is that a mistake or part of a different release process?

 

Thanks!

 

- Bret

 

From: Wadhawan, Divneil R via groups.io
Sent: Wednesday, December 9, 2020 10:33 AM
To: devel@edk2.groups.io
Cc: Yao, Jiewen; Jian J Wang; Min Xu; Kinney, Michael D
Subject: [EXTERNAL] [edk2-devel] [Patch 2/2] SecurityPkg: Add support for SHA-384/SHA-512 digest algos

 

o Existing implementation of Authenticated Variables only
  support SHA-256 digest algorithms in signing scheme.

o This has been extended to support SHA-384 and SHA-512 algorithms

Cc: Jiewen Yao <jiewen.yao@...>
Cc: Jian J Wang <jian.j.wang@...>
Cc: Min Xu <min.m.xu@...>
Cc: Michael D Kinney <michael.d.kinney@...>

Signed-off-by: Divneil Rai Wadhawan <divneil.r.wadhawan@...>
---
 SecurityPkg/Library/AuthVariableLib/AuthService.c |  8 +++--
 AuthVariableDigestUpdate.md                       | 41 +++++++++++++++++++++++
 2 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 AuthVariableDigestUpdate.md

diff --git a/SecurityPkg/Library/AuthVariableLib/AuthService.c b/SecurityPkg/Library/AuthVariableLib/AuthService.c
index 4fb609504d..8f024c42a8 100644
--- a/SecurityPkg/Library/AuthVariableLib/AuthService.c
+++ b/SecurityPkg/Library/AuthVariableLib/AuthService.c
@@ -35,6 +35,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 };
 
 CONST UINT8 mSha256OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01 };
+CONST UINT8 mSha384OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02 };
+CONST UINT8 mSha512OidValue[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03 };
 
 //
 // Requirement for different signature type which have been defined in UEFI spec.
@@ -1901,7 +1903,7 @@ VerifyTimeBasedPayload (
 
   //
   // SignedData.digestAlgorithms shall contain the digest algorithm used when preparing the
-  // signature. Only a digest algorithm of SHA-256 is accepted.
+  // signature. Digest algorithm of SHA-256, SHA-384, SHA-512 are accepted.
   //
   //    According to PKCS#7 Definition:
   //        SignedData ::= SEQUENCE {
@@ -1916,7 +1918,9 @@ VerifyTimeBasedPayload (
   if ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) {
     if (SigDataSize >= (13 + sizeof (mSha256OidValue))) {
       if (((*(SigData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE) ||
-           (CompareMem (SigData + 13, &mSha256OidValue, sizeof (mSha256OidValue)) != 0)) {
+           ((CompareMem (SigData + 13, &mSha256OidValue, sizeof (mSha256OidValue)) != 0) &&
+            (CompareMem (SigData + 13, &mSha384OidValue, sizeof (mSha384OidValue)) != 0) &&
+            (CompareMem (SigData + 13, &mSha512OidValue, sizeof (mSha512OidValue)) != 0))) {
           return EFI_SECURITY_VIOLATION;
         }
     }
diff --git a/AuthVariableDigestUpdate.md b/AuthVariableDigestUpdate.md
new file mode 100644
index 0000000000..10992845a4
--- /dev/null
+++ b/AuthVariableDigestUpdate.md
@@ -0,0 +1,41 @@
+# Title: Digest Algorithm flexibility in Authenticated Variable signatures
+
+# Status: Draft
+
+# Document: UEFI Specification Version 2.8
+
+# License
+
+SPDX-License-Identifier: CC-BY-4.0
+
+# Submitter: [TianoCore Community](https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.tianocore.org%2F&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C5b6eb98d1288493a5f7f08d89c70f78b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431356285650012%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=7mtSkIFgxu5iIg519YwkxjFfx6DeXOVJT67j58dHSK4%3D&amp;reserved=0)
+
+# Summary of the change
+EFI_VARIABLE_AUTHENTICATION_2 specifies the SignedData.digestAlgorithms to be always
+SHA256. The implication is that the signing algorithm can use RSA keys greater than
+2048 bits, but the digest algorithm remains SHA256. The proposed change is to allow
+digest algorithm to be greater than SHA256.
+
+# Benefits of the change
+This brings agility to the signing mechanism of Authenticated variables by allowing
+it to sign a larger digest.
+
+# Impact of the change
+There is no impact on the existing Authenticated variables.
+
+# Detailed description of the change [normative updates]
+
+<b>Bold text</b> indicates the proposed change
+
+8.2.2 Using the EFI_VARIABLE_AUTHENTICATION_2 descriptor
+When the attribute EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS is set, then the Data buffer shall begin with an instance of a complete (and serialized) ...
+
+Construct a DER-encoded PKCS #7 version 1.5 SignedData (see [RFC2315]) with the signed content as follows:
+
+a. SignedData.version shall be set to 1
+
+b. SignedData.digestAlgorithms shall contain the digest algorithm used when preparing the signature. <b>Only a digest algorithm greater than or equal to SHA-256 is accepted.</b>
+
+
+# Special Instructions
+NA
--
2.16.2.windows.1





 


Re: [EXTERNAL] [edk2-devel] [Patch 1/2] MdeModulePkg: Add unit test for Authenticated Variables

Bret Barkelew
 

Can this test run on any platform? Isn’t SetSecureBootMode() going to fail without UserPhysicalPresent? Are there prerequisites to running this test?

 

It may need a Readme.

 

- Bret

 

From: Wadhawan, Divneil R via groups.io
Sent: Wednesday, December 9, 2020 10:33 AM
To: devel@edk2.groups.io
Cc: Jian J Wang; Hao A Wu; Liming Gao; Kinney, Michael D
Subject: [EXTERNAL] [edk2-devel] [Patch 1/2] MdeModulePkg: Add unit test for Authenticated Variables

 

The unit test of Authenticated Variables include the following
signing algorithms
o RSA2048/SHA256
o RSA3072/SHA256
o RSA4096/SHA256
o RSA3072/SHA384
o RSA4096/SHA512

Cc: Jian J Wang <jian.j.wang@...>
Cc: Hao A Wu <hao.a.wu@...>
Cc: Liming Gao <gaoliming@...>
Cc: Michael D Kinney <michael.d.kinney@...>

Signed-off-by: Divneil Rai Wadhawan <divneil.r.wadhawan@...>
---
 .../Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c | 494 +++++++++++++++++++++
 .../RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c       | 139 ++++++
 .../RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c       | 179 ++++++++
 .../RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c       | 179 ++++++++
 .../RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c       | 219 +++++++++
 .../RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c       | 219 +++++++++
 .../Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c | 139 ++++++
 .../Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c | 179 ++++++++
 .../Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c | 179 ++++++++
 .../Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c | 219 +++++++++
 .../Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c | 219 +++++++++
 MdeModulePkg/MdeModulePkg.dsc                      |   4 +
 .../UnitTest/AuthVarUnitTestUefiShell.inf          |  42 ++
 13 files changed, 2410 insertions(+)
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c
 create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTestUefiShell.inf

diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c
new file mode 100644
index 0000000000..ce1ed168ea
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c
@@ -0,0 +1,494 @@
+/** @file
+  Implement UnitTest for the Authenticated Variables.
+
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+#include <Uefi.h>
+#include <Library/DebugLib.h>
+#include <Library/UnitTestLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
+#include <Guid/AuthenticatedVariableFormat.h>
+#include <Guid/GlobalVariable.h>
+
+extern UINT8  gPkRsa2048Sha256[];
+extern UINT32 gPkRsa2048Sha256Size;
+extern UINT8  gPkNewRsa2048Sha256[];
+extern UINT32 gPkNewRsa2048Sha256Size;
+extern UINT8  gPkRsa3072Sha256[];
+extern UINT32 gPkRsa3072Sha256Size;
+extern UINT8  gPkNewRsa3072Sha256[];
+extern UINT32 gPkNewRsa3072Sha256Size;
+extern UINT8  gPkRsa4096Sha256[];
+extern UINT32 gPkRsa4096Sha256Size;
+extern UINT8  gPkNewRsa4096Sha256[];
+extern UINT32 gPkNewRsa4096Sha256Size;
+extern UINT8  gPkRsa3072Sha384[];
+extern UINT32 gPkRsa3072Sha384Size;
+extern UINT8  gPkNewRsa3072Sha384[];
+extern UINT32 gPkNewRsa3072Sha384Size;
+extern UINT8  gPkRsa4096Sha512[];
+extern UINT32 gPkRsa4096Sha512Size;
+extern UINT8  gPkNewRsa4096Sha512[];
+extern UINT32 gPkNewRsa4096Sha512Size;
+
+#define UNIT_TEST_NAME    "AuthVarTest"
+#define UNIT_TEST_VERSION "0.1"
+typedef enum {
+  CONTEXT_RSA2048_SHA256 = 1,
+  CONTEXT_RSA3072_SHA256,
+  CONTEXT_RSA4096_SHA256,
+  CONTEXT_RSA3072_SHA384,
+  CONTEXT_RSA4096_SHA512
+} AuthVarTestContext;
+
+
+STATIC UINT32 mRsa2048Sha256 = CONTEXT_RSA2048_SHA256;
+STATIC UINT32 mRsa3072Sha256 = CONTEXT_RSA3072_SHA256;
+STATIC UINT32 mRsa4096Sha256 = CONTEXT_RSA4096_SHA256;
+STATIC UINT32 mRsa3072Sha384 = CONTEXT_RSA3072_SHA384;
+STATIC UINT32 mRsa4096Sha512 = CONTEXT_RSA4096_SHA512;
+
+/**
+  Set the platform secure boot mode to "custom" or "standard"
+  @param[in]  CustomMode        Value of 1 indicates Custom Mode.
+                                Value of 0 indicates Standard Mode.
+
+  @retval     EFI_SUCCESS       The platform has switched to the requested mode successfully
+  @retval     other             Failure to set the required boot mode
+**/
+EFI_STATUS
+SetSecureBootMode(
+  IN  UINT8     SecureBootMode
+  )
+{
+  return gRT->SetVariable (
+              EFI_CUSTOM_MODE_NAME,
+              &gEfiCustomModeEnableGuid,
+              EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+              sizeof (UINT8),
+              &SecureBootMode
+              );
+}
+
+/**
+  Enroll the base Authenticated Variable into the storage
+  @param[in]  Context           Context is passed during test case registration.
+                                It is an integer value indicating which signed
+                                algorithm data to be used for enrollment.
+
+  @retval  UNIT_TEST_PASSED     The test case is a success
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+UNIT_TEST_STATUS
+EFIAPI
+AuthVarEnroll (
+  IN UNIT_TEST_CONTEXT  Context
+  )
+{
+  EFI_STATUS  Status;
+  UINT32      Attr;
+  UINT32      Value;
+  UINTN       DataSize;
+  VOID        *Data;
+
+  Value = *(UINT32 *)Context;
+
+  switch (Value) {
+    case CONTEXT_RSA2048_SHA256:
+      DataSize = gPkRsa2048Sha256Size;
+      Data     = gPkRsa2048Sha256;
+      break;
+
+    case CONTEXT_RSA3072_SHA256:
+      DataSize = gPkRsa3072Sha256Size;
+      Data     = gPkRsa3072Sha256;
+      break;
+
+    case CONTEXT_RSA4096_SHA256:
+      DataSize = gPkRsa4096Sha256Size;
+      Data     = gPkRsa4096Sha256;
+      break;
+
+    case CONTEXT_RSA3072_SHA384:
+      DataSize = gPkRsa3072Sha384Size;
+      Data     = gPkRsa3072Sha384;
+      break;
+
+    case CONTEXT_RSA4096_SHA512:
+      DataSize = gPkRsa4096Sha512Size;
+      Data     = gPkRsa4096Sha512;
+      break;
+
+    default:
+      UT_ASSERT_TRUE (0);
+  }
+
+  //
+  // Set the platform mode in custom mode to enroll the
+  // base variable into the Authenticated Variable storage.
+  //
+  Status = SetSecureBootMode (CUSTOM_SECURE_BOOT_MODE);
+  UT_ASSERT_TRUE (Status == EFI_SUCCESS);
+
+  //
+  // Enroll the variable to be used for sign verification
+  // for next updates.
+  //
+  Attr = EFI_VARIABLE_NON_VOLATILE |
+         EFI_VARIABLE_RUNTIME_ACCESS |
+         EFI_VARIABLE_BOOTSERVICE_ACCESS |
+         EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS;
+
+  Status = gRT->SetVariable (
+                EFI_PLATFORM_KEY_NAME,
+                &gEfiGlobalVariableGuid,
+                Attr,
+                DataSize,
+                Data
+                );
+  UT_ASSERT_TRUE (Status == EFI_SUCCESS);
+
+  //
+  // Clear the custom mode of platform
+  //
+  Status = SetSecureBootMode (STANDARD_SECURE_BOOT_MODE);
+  UT_ASSERT_TRUE (Status == EFI_SUCCESS);
+
+  return UNIT_TEST_PASSED;
+}
+
+/**
+  Update the Authenticated Variable enrolled earlier in custom mode
+  @param[in]  Context           Context is passed during test case registration.
+                                It is an integer value indicating which signed
+                                algorithm data to be used for update.
+
+  @retval  UNIT_TEST_PASSED     The test case is a success
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+UNIT_TEST_STATUS
+EFIAPI
+AuthVarUpdate (
+  IN UNIT_TEST_CONTEXT  Context
+  )
+{
+  EFI_STATUS Status;
+  UINT32     Attr;
+  UINT32      Value;
+  UINTN       DataSize;
+  VOID        *Data;
+
+  Value = *(UINT32 *) Context;
+
+  switch (Value) {
+    case CONTEXT_RSA2048_SHA256:
+      DataSize = gPkNewRsa2048Sha256Size;
+      Data     = gPkNewRsa2048Sha256;
+      break;
+
+    case CONTEXT_RSA3072_SHA256:
+      DataSize = gPkNewRsa3072Sha256Size;
+      Data     = gPkNewRsa3072Sha256;
+      break;
+
+    case CONTEXT_RSA4096_SHA256:
+      DataSize = gPkNewRsa4096Sha256Size;
+      Data     = gPkNewRsa4096Sha256;
+      break;
+
+    case CONTEXT_RSA3072_SHA384:
+      DataSize = gPkNewRsa3072Sha384Size;
+      Data     = gPkNewRsa3072Sha384;
+      break;
+
+    case CONTEXT_RSA4096_SHA512:
+      DataSize = gPkNewRsa4096Sha512Size;
+      Data     = gPkNewRsa4096Sha512;
+      break;
+
+    default:
+      UT_ASSERT_TRUE (0);
+  }
+
+  Attr = EFI_VARIABLE_NON_VOLATILE |
+         EFI_VARIABLE_RUNTIME_ACCESS |
+         EFI_VARIABLE_BOOTSERVICE_ACCESS |
+         EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS;
+
+  //
+  // Update the Authenticated Variable enrolled earlier in custom mode
+  //
+  Status = gRT->SetVariable (
+                EFI_PLATFORM_KEY_NAME,
+                &gEfiGlobalVariableGuid,
+                Attr,
+                DataSize,
+                Data
+                );
+  UT_ASSERT_TRUE (Status == EFI_SUCCESS);
+  return UNIT_TEST_PASSED;
+}
+
+/**
+  Register the test cases for RSA2048/SHA256 signing algorithm
+  @param[in]  TestSuite         Test Suite created to manage RSA2048/SHA256 test cases
+
+  @retval  UNIT_TEST_PASSED     The test case registration is successful
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+EFI_STATUS
+EFIAPI
+AuthVarRegisterRsa2048Sha256Tests (
+  IN UNIT_TEST_SUITE_HANDLE  TestSuite
+  )
+{
+  EFI_STATUS Status;
+  Status  = AddTestCase (TestSuite, "RSA2048/SHA256 Auth Var Enroll", "RSA2048.SHA256.Enroll", AuthVarEnroll, NULL, NULL, &mRsa2048Sha256);
+  Status |= AddTestCase (TestSuite, "RSA2048/SHA256 Auth Var Update", "RSA2048.SHA256.Update", AuthVarUpdate, NULL, NULL, &mRsa2048Sha256);
+  return Status;
+}
+
+/**
+  Register the test cases for RSA3072/SHA256 signing algorithm
+  @param[in]  TestSuite         Test Suite created to manage RSA3072/SHA256 test cases
+
+  @retval  UNIT_TEST_PASSED     The test case registration is successful
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+EFI_STATUS
+EFIAPI
+AuthVarRegisterRsa3072Sha256Tests (
+  IN UNIT_TEST_SUITE_HANDLE  TestSuite
+  )
+{
+  EFI_STATUS Status;
+  Status  = AddTestCase (TestSuite, "RSA3072/SHA256 Auth Var Enroll", "RSA3072.SHA256.Enroll", AuthVarEnroll, NULL, NULL, &mRsa3072Sha256);
+  Status |= AddTestCase (TestSuite, "RSA3072/SHA256 Auth Var Update", "RSA3072.SHA256.Update", AuthVarUpdate, NULL, NULL, &mRsa3072Sha256);
+  return Status;
+}
+
+/**
+  Register the test cases for RSA4096/SHA256 signing algorithm
+  @param[in]  TestSuite         Test Suite created to manage RSA4096/SHA256 test cases
+
+  @retval  UNIT_TEST_PASSED     The test case registration is successful
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+EFI_STATUS
+EFIAPI
+AuthVarRegisterRsa4096Sha256Tests (
+  IN UNIT_TEST_SUITE_HANDLE  TestSuite
+  )
+{
+  EFI_STATUS Status;
+  Status  = AddTestCase (TestSuite, "RSA4096/SHA256 Auth Var Enroll", "RSA4096.SHA256.Enroll", AuthVarEnroll, NULL, NULL, &mRsa4096Sha256);
+  Status |= AddTestCase (TestSuite, "RSA4096/SHA256 Auth Var Update", "RSA4096.SHA256.Update", AuthVarUpdate, NULL, NULL, &mRsa4096Sha256);
+  return Status;
+}
+
+/**
+  Register the test cases for RSA3072/SHA384 signing algorithm
+  @param[in]  TestSuite         Test Suite created to manage RSA3072/SHA384 test cases
+
+  @retval  UNIT_TEST_PASSED     The test case registration is successful
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+EFI_STATUS
+EFIAPI
+AuthVarRegisterRsa3072Sha384Tests (
+  IN UNIT_TEST_SUITE_HANDLE  TestSuite
+  )
+{
+  EFI_STATUS Status;
+  Status  = AddTestCase(TestSuite, "RSA3072/SHA384 Auth Var Enroll", "RSA3072.SHA384.Enroll", AuthVarEnroll, NULL, NULL, &mRsa3072Sha384);
+  Status |= AddTestCase(TestSuite, "RSA3072/SHA384 Auth Var Update", "RSA3072.SHA384.Update", AuthVarUpdate, NULL, NULL, &mRsa3072Sha384);
+  return Status;
+}
+
+/**
+  Register the test cases for RSA4096/SHA512 signing algorithm
+  @param[in]  TestSuite         Test Suite created to manage RSA4096/SHA512 test cases
+
+  @retval  UNIT_TEST_PASSED     The test case registration is successful
+  @retval  other                Unit Test Framework value from the respective assert
+**/
+EFI_STATUS
+EFIAPI
+AuthVarRegisterRsa4096Sha512Tests (
+  IN UNIT_TEST_SUITE_HANDLE  TestSuite
+  )
+{
+  EFI_STATUS Status;
+  Status  = AddTestCase (TestSuite, "RSA4096/SHA512 Auth Var Enroll", "RSA4096.SHA512.Enroll", AuthVarEnroll, NULL, NULL, &mRsa4096Sha512);
+  Status |= AddTestCase (TestSuite, "RSA4096/SHA512 Auth Var Update", "RSA4096.SHA512.Update", AuthVarUpdate, NULL, NULL, &mRsa4096Sha512);
+  return Status;
+}
+
+/**
+  Register Authenticated Variable tests based on different signing schemes.
+  The following test suites are registered
+  o RSA2048/SHA256
+  o RSA3072/SHA256
+  o RSA4096/SHA256
+  o RSA3072/SHA384
+  o RSA4096/SHA512
+
+  @retval  EFI_SUCCESS           All test suites are registered
+  @retval  EFI_OUT_OF_RESOURCES  System is out of resources for registering test suite
+**/
+EFI_STATUS
+EFIAPI
+AuthVarRegisterTests (
+ UNIT_TEST_FRAMEWORK_HANDLE Framework
+ )
+{
+  EFI_STATUS              Status;
+  UNIT_TEST_SUITE_HANDLE  Rsa2048Sha256Suite;
+  UNIT_TEST_SUITE_HANDLE  Rsa3072Sha256Suite;
+  UNIT_TEST_SUITE_HANDLE  Rsa4096Sha256Suite;
+  UNIT_TEST_SUITE_HANDLE  Rsa3072Sha384Suite;
+  UNIT_TEST_SUITE_HANDLE  Rsa4096Sha512Suite;
+
+  //
+  // Create Test Suite for Authenticated Variables signed with RSA2048/SHA256
+  //
+  Status = CreateUnitTestSuite (&Rsa2048Sha256Suite, Framework, "AuthVar RSA2048/SHA256", "RSA2048.SHA256", NULL, NULL);
+  if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "Failed to create Authenticated Variable RSA2048/SHA256 Test Suite (0x%x)", Status));
+      goto EXIT;
+  }
+
+  //
+  // Register Test cases for RSA2048/SHA256
+  //
+  Status = AuthVarRegisterRsa2048Sha256Tests(Rsa2048Sha256Suite);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to register test cases for RSA2048/SHA256 suite (0x%x)", Status));
+    goto EXIT;
+  }
+
+  //
+  // Create Test Suite for Authenticated Variables signed with RSA3072/SHA256
+  //
+  Status = CreateUnitTestSuite (&Rsa3072Sha256Suite, Framework, "AuthVar RSA3072/SHA256", "RSA3072.SHA256", NULL, NULL);
+  if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "Failed to create Authenticated Variable RSA3072/SHA256 Test Suite (0x%x)", Status));
+      goto EXIT;
+  }
+
+  //
+  // Register Test cases for RSA3072/SHA256
+  //
+  Status = AuthVarRegisterRsa3072Sha256Tests(Rsa3072Sha256Suite);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to register test cases for RSA3072/SHA256 suite (0x%x)", Status));
+    goto EXIT;
+  }
+
+  //
+  // Create Test Suite for Authenticated Variables signed with RSA4096/SHA256
+  //
+  Status = CreateUnitTestSuite (&Rsa4096Sha256Suite, Framework, "AuthVar RSA4096/SHA256", "RSA4096.SHA256", NULL, NULL);
+  if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "Failed to create Authenticated Variable RSA4096/SHA256 Test Suite (0x%x)", Status));
+      goto EXIT;
+  }
+
+  //
+  // Register Test cases for RSA4096/SHA256
+  //
+  Status = AuthVarRegisterRsa4096Sha256Tests(Rsa4096Sha256Suite);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to register test cases for RSA4096/SHA256 suite (0x%x)", Status));
+    goto EXIT;
+  }
+
+  //
+  // Create Test Suite for Authenticated Variables signed with RSA3072/SHA384
+  //
+  Status = CreateUnitTestSuite (&Rsa3072Sha384Suite, Framework, "AuthVar RSA3072/SHA384", "RSA3072.SHA384", NULL, NULL);
+  if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "Failed to create Authenticated Variable RSA3072/SHA384 Test Suite (0x%x)", Status));
+      goto EXIT;
+  }
+
+  //
+  // Register Test cases for RSA3072/SHA384
+  //
+  Status = AuthVarRegisterRsa3072Sha384Tests(Rsa3072Sha384Suite);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to register test cases for RSA3072/SHA384 suite (0x%x)", Status));
+    goto EXIT;
+  }
+
+  //
+  // Create Test Suite for Authenticated Variables signed with RSA4096/SHA512
+  //
+  Status = CreateUnitTestSuite (&Rsa4096Sha512Suite, Framework, "AuthVar RSA4096/SHA512", "RSA4096.SHA512", NULL, NULL);
+  if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "Failed to create Authenticated Variable RSA4096/SHA512 Test Suite (0x%x)", Status));
+      goto EXIT;
+  }
+
+  //
+  // Register Test cases for RSA4096/SHA512
+  //
+  Status = AuthVarRegisterRsa4096Sha512Tests (Rsa4096Sha512Suite);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to register test cases for RSA4096/SHA512 suite (0x%x)", Status));
+    goto EXIT;
+  }
+
+EXIT:
+  if (EFI_ERROR (Status)) {
+    Status = EFI_OUT_OF_RESOURCES;
+  }
+  return Status;
+}
+
+/**
+  Authenticated Variable Unit Test entry point
+**/
+EFI_STATUS
+EFIAPI
+AuthVarUnitTestEntryPoint (
+  IN EFI_HANDLE        ImageHandle,
+  IN EFI_SYSTEM_TABLE  *SystemTable
+  )
+{
+  EFI_STATUS Status;
+  UNIT_TEST_FRAMEWORK_HANDLE Framework;
+
+  Framework = NULL;
+
+  //
+  // Create a Framework object for Authenticated Variable Test
+  //
+  Status = InitUnitTestFramework (&Framework, UNIT_TEST_NAME, gEfiCallerBaseName, UNIT_TEST_VERSION);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to create Framework Object (Status: %r)\n", Status));
+    goto EXIT;
+  }
+
+  //
+  // Register all the test suites the Unit Test Framwork
+  //
+  Status = AuthVarRegisterTests (Framework);
+  if (EFI_ERROR (Status )) {
+      DEBUG ((DEBUG_ERROR, "Failed to register the test suites with the framework (Status: %r)\n", Status));
+      goto EXIT;
+  }
+
+  //
+  // Execute all the tests
+  //
+  Status = RunAllTestSuites (Framework);
+
+EXIT:
+  if (Framework) {
+    FreeUnitTestFramework (Framework);
+  }
+  return Status;
+}
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c
new file mode 100644
index 0000000000..50e50c23d3
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkNewRsa2048Sha256[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x94, 0x04, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x04, 0x78, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x02,
+  0xff, 0x30, 0x82, 0x02, 0xfb, 0x30, 0x82, 0x01, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x41, 0xcf, 0xa4, 0x01, 0xb8, 0x94, 0x1e, 0x75, 0xb8, 0xc8, 0xe0, 0x5a, 0x29, 0xd4, 0xbb, 0x12,
+  0xd1, 0x78, 0xfa, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x30, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xb9, 0x6f, 0x6d, 0x8f, 0xe4, 0xc3, 0x53, 0xa3, 0x7e, 0xe4, 0x02, 0x02, 0x6d, 0x3e,
+  0x1b, 0xae, 0x2a, 0xd1, 0x78, 0xbb, 0xc3, 0x6d, 0xff, 0x66, 0xc9, 0x38, 0x03, 0xda, 0x1f, 0x44,
+  0x84, 0x0b, 0xa2, 0xf3, 0x3b, 0x57, 0xb9, 0xc2, 0xfb, 0x5e, 0xbe, 0x57, 0x70, 0x44, 0xe7, 0xc7,
+  0x7d, 0xcb, 0x82, 0x54, 0x29, 0x01, 0x3b, 0x00, 0x0c, 0x31, 0x8e, 0x81, 0x1c, 0x25, 0x76, 0x76,
+  0x1d, 0xcc, 0x33, 0xbf, 0xfa, 0x50, 0xd5, 0xd5, 0xb1, 0x25, 0x66, 0x9d, 0x1d, 0x83, 0x01, 0x3b,
+  0x7e, 0x4f, 0xf2, 0xf9, 0x47, 0x59, 0x07, 0x5e, 0x46, 0x1d, 0x17, 0x6a, 0xd9, 0x56, 0x94, 0x54,
+  0xba, 0xb7, 0xe8, 0x55, 0x9a, 0x14, 0x23, 0x9d, 0x08, 0xf4, 0x0d, 0x6b, 0xe1, 0xe9, 0x1a, 0x60,
+  0xec, 0x4b, 0x09, 0x7b, 0x91, 0xb4, 0x66, 0x1a, 0xb0, 0xfc, 0x22, 0x0f, 0xc3, 0x35, 0xa5, 0x46,
+  0x9a, 0x91, 0x5a, 0x59, 0x62, 0x84, 0xba, 0xba, 0x8a, 0x1a, 0x24, 0x4d, 0x72, 0x06, 0xbc, 0x49,
+  0x22, 0x28, 0x3c, 0x75, 0x9c, 0xfd, 0x39, 0x58, 0xd7, 0xf8, 0xfe, 0x45, 0xba, 0x63, 0x59, 0xe1,
+  0x97, 0xf9, 0xf9, 0x52, 0x49, 0x1d, 0x4e, 0x01, 0x07, 0xa6, 0xf1, 0x1e, 0x30, 0xd0, 0x29, 0x97,
+  0x4e, 0xcb, 0x32, 0x9c, 0xa6, 0xa3, 0x1b, 0x10, 0x17, 0xd0, 0xe4, 0x63, 0x04, 0x67, 0x1e, 0xe2,
+  0xc3, 0x5c, 0xd0, 0xdc, 0x37, 0x5a, 0x4c, 0x62, 0xe4, 0x49, 0x22, 0x32, 0x08, 0xec, 0x1a, 0x2b,
+  0x07, 0x7b, 0xb8, 0xa2, 0x45, 0xad, 0x3b, 0x3a, 0xca, 0x7f, 0x24, 0xbf, 0x8f, 0x30, 0xa4, 0x19,
+  0x7c, 0xc3, 0xc0, 0x36, 0xec, 0x9b, 0x72, 0x86, 0x29, 0x94, 0x04, 0xe0, 0x12, 0xd3, 0xa8, 0x57,
+  0x66, 0x5a, 0xa1, 0x94, 0x0f, 0xe6, 0x2a, 0x6a, 0x8f, 0xe7, 0x9f, 0x17, 0xb2, 0xdb, 0xf4, 0x74,
+  0xd2, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x8e, 0xa8, 0x8c, 0xce, 0x26, 0xa5, 0xdc, 0x83, 0x6a, 0x9f,
+  0x19, 0x9a, 0x88, 0xd1, 0x87, 0x20, 0x9d, 0x41, 0x4e, 0xf2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x8e, 0xa8, 0x8c, 0xce, 0x26, 0xa5, 0xdc, 0x83, 0x6a,
+  0x9f, 0x19, 0x9a, 0x88, 0xd1, 0x87, 0x20, 0x9d, 0x41, 0x4e, 0xf2, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+  0x92, 0x2b, 0x85, 0xe1, 0x6f, 0x60, 0x63, 0x97, 0x7d, 0x76, 0x42, 0x05, 0xbb, 0x92, 0x5e, 0x78,
+  0x15, 0xd3, 0xcd, 0xde, 0xae, 0x8b, 0x5e, 0x0e, 0xc8, 0xf0, 0x91, 0x45, 0xd1, 0x65, 0xc0, 0xcb,
+  0xc6, 0x0d, 0x3b, 0xd5, 0xe9, 0x14, 0x07, 0x7a, 0x7c, 0xc5, 0xd6, 0x6e, 0x17, 0xaa, 0xdc, 0x2b,
+  0x00, 0x01, 0x9e, 0xdb, 0xd8, 0xdb, 0x65, 0x9b, 0xe0, 0xf7, 0x9a, 0x71, 0x71, 0xe3, 0x06, 0xb0,
+  0xa4, 0x98, 0x89, 0xa6, 0x13, 0x20, 0x58, 0x2e, 0xb6, 0xf9, 0xa6, 0x43, 0x8a, 0xce, 0x83, 0xdc,
+  0x10, 0xd2, 0xba, 0xe3, 0x97, 0x3b, 0x1e, 0xf5, 0x11, 0x7d, 0x32, 0x61, 0x62, 0xbe, 0x82, 0x79,
+  0xb2, 0x14, 0x1e, 0x02, 0xb7, 0x8d, 0x5b, 0x23, 0xe5, 0x99, 0xf0, 0x6b, 0x10, 0xec, 0x78, 0x6e,
+  0x3f, 0x1e, 0xb4, 0xb0, 0x62, 0x1f, 0x2b, 0x68, 0xa2, 0x2c, 0x34, 0x02, 0xc9, 0x5a, 0x6a, 0xb8,
+  0xb5, 0x73, 0xb8, 0x31, 0x0a, 0x0e, 0x62, 0xed, 0x34, 0x08, 0x0c, 0x45, 0x9e, 0xc2, 0x3b, 0xd9,
+  0x97, 0x4c, 0xd4, 0xba, 0xa0, 0xd9, 0x61, 0xc3, 0xb2, 0x71, 0x38, 0x2a, 0xed, 0x6a, 0xb7, 0xe0,
+  0xfb, 0x6c, 0xca, 0x20, 0xd4, 0x82, 0xfc, 0xee, 0x1e, 0x94, 0xae, 0xd7, 0x30, 0xfd, 0x54, 0x46,
+  0xda, 0xe0, 0xbb, 0x30, 0xf6, 0x98, 0xf7, 0x74, 0xa2, 0x21, 0x91, 0xf1, 0x23, 0x67, 0x58, 0x4d,
+  0x05, 0x9f, 0xd5, 0xa6, 0xf3, 0x9e, 0x34, 0xde, 0xd7, 0x2b, 0x8a, 0x5f, 0x76, 0x25, 0xb2, 0xd6,
+  0x56, 0x65, 0x2d, 0x25, 0x10, 0x6f, 0x26, 0x1e, 0x35, 0x01, 0x93, 0xe2, 0xf0, 0x3f, 0xa1, 0x23,
+  0xd4, 0x27, 0xb5, 0x81, 0x74, 0xf1, 0x91, 0xbf, 0x91, 0x5a, 0x1b, 0xa3, 0x0e, 0x20, 0x56, 0xd0,
+  0x17, 0x17, 0x2a, 0xfe, 0xba, 0x88, 0xeb, 0x5d, 0xa8, 0xa9, 0x73, 0x0f, 0x34, 0x92, 0x83, 0x2a,
+  0x31, 0x82, 0x01, 0x50, 0x30, 0x82, 0x01, 0x4c, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x41, 0xcf,
+  0xa4, 0x01, 0xb8, 0x94, 0x1e, 0x75, 0xb8, 0xc8, 0xe0, 0x5a, 0x29, 0xd4, 0xbb, 0x12, 0xd1, 0x78,
+  0xfa, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x01, 0x00, 0x2a, 0xe9, 0x0b, 0x40, 0x0e, 0xe1, 0xc6, 0xc5, 0xdc, 0xed, 0xbf, 0x9d,
+  0xc7, 0x5c, 0x17, 0xa0, 0xa6, 0x65, 0xaf, 0xff, 0x84, 0x4c, 0x91, 0x00, 0x6b, 0x0a, 0x3d, 0x21,
+  0x0e, 0xfb, 0x73, 0x1b, 0x5b, 0x5f, 0x05, 0x1b, 0x43, 0x20, 0xa7, 0x29, 0x68, 0x0d, 0x3f, 0xd9,
+  0x47, 0xed, 0x31, 0x87, 0x45, 0x69, 0x10, 0x1b, 0x6c, 0xb5, 0x62, 0xe6, 0xa2, 0xd7, 0x33, 0xb4,
+  0x1c, 0x1a, 0x8e, 0xa7, 0xa9, 0x6d, 0xde, 0x48, 0x17, 0xad, 0xea, 0x64, 0x01, 0xb6, 0xaa, 0xd6,
+  0x10, 0x22, 0xc7, 0x15, 0xaf, 0xb5, 0x2e, 0xb8, 0x93, 0x36, 0x03, 0x2a, 0x51, 0x9d, 0xc3, 0xf1,
+  0x0a, 0xbe, 0x94, 0x62, 0x24, 0xad, 0x2c, 0x3e, 0x7f, 0xaa, 0x85, 0xb2, 0x3d, 0x8a, 0xe2, 0xa4,
+  0x32, 0x0a, 0x87, 0x0c, 0xf0, 0xa1, 0x19, 0x29, 0xd0, 0x31, 0x63, 0x48, 0xb9, 0x36, 0x67, 0xea,
+  0x9a, 0x91, 0xc6, 0xa9, 0x51, 0x67, 0x76, 0xe1, 0xa3, 0x00, 0x26, 0x9e, 0x84, 0x80, 0xe3, 0x41,
+  0xa8, 0xc8, 0x60, 0xd8, 0xf7, 0xd3, 0x52, 0x71, 0x26, 0xe6, 0xee, 0xa5, 0x3f, 0x39, 0x75, 0x52,
+  0x56, 0x4f, 0xb5, 0xb4, 0xe7, 0xc2, 0x08, 0x7d, 0xe7, 0x9a, 0x8b, 0x7c, 0x5e, 0xdd, 0x4d, 0x1f,
+  0xfe, 0x1b, 0xc4, 0xee, 0x08, 0xa8, 0xf8, 0x41, 0x9f, 0x78, 0x51, 0x1b, 0x57, 0xc9, 0x58, 0x9b,
+  0xca, 0xa6, 0x3c, 0xef, 0xc1, 0x12, 0xab, 0x14, 0xde, 0xe3, 0x6a, 0x0d, 0xb3, 0xb1, 0x90, 0x4d,
+  0xf3, 0x39, 0x12, 0xa9, 0xee, 0x90, 0x88, 0xaf, 0x5b, 0xb7, 0x39, 0xfd, 0xe2, 0x76, 0xe6, 0x20,
+  0xe2, 0xc2, 0x09, 0x13, 0xaa, 0xa6, 0x87, 0x11, 0x11, 0x34, 0x64, 0x15, 0xf2, 0x41, 0xf2, 0xad,
+  0x6e, 0xa6, 0x3e, 0xf3, 0xc7, 0x5d, 0xa5, 0xb8, 0xdb, 0x73, 0x06, 0x86, 0x6e, 0x39, 0x0d, 0xe6,
+  0xa4, 0xee, 0x69, 0x9f, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x03, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x02, 0xfb, 0x30, 0x82, 0x01, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x51,
+  0xc5, 0x6a, 0xc5, 0x75, 0xf6, 0xc1, 0xaf, 0xca, 0xce, 0x5e, 0xac, 0x62, 0x2e, 0xb1, 0x17, 0xf2,
+  0x6b, 0xcd, 0xa3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x32,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xb7, 0x41, 0x78, 0xd1, 0x4f, 0xff, 0x26, 0xee, 0x2f, 0x18, 0x21, 0x2a, 0x2a, 0x93, 0x3c,
+  0xde, 0xc3, 0x15, 0x59, 0x8b, 0xa3, 0xb7, 0x97, 0xba, 0xbf, 0x96, 0x89, 0x88, 0xcc, 0xf5, 0xb1,
+  0xc0, 0x72, 0x58, 0x8d, 0xcc, 0x3d, 0xe6, 0x86, 0x72, 0xfc, 0x77, 0x46, 0xce, 0x7d, 0xbb, 0x53,
+  0xd0, 0xed, 0x97, 0xe5, 0xa4, 0x5d, 0x1c, 0x59, 0x14, 0x21, 0x97, 0xe7, 0xdf, 0x77, 0xba, 0x19,
+  0x95, 0xee, 0xac, 0x3d, 0xaf, 0xd6, 0x08, 0xe9, 0x61, 0x17, 0x3e, 0x53, 0x45, 0x9f, 0x47, 0x27,
+  0x07, 0xc5, 0xd1, 0xf2, 0x1c, 0xc5, 0x9a, 0x0e, 0x60, 0xd3, 0x06, 0x2c, 0xbb, 0x05, 0xae, 0xed,
+  0x49, 0x28, 0x4b, 0xbe, 0x5c, 0x0e, 0xee, 0x9d, 0xcd, 0x5e, 0xd4, 0x2d, 0xc0, 0xd2, 0x61, 0xd5,
+  0x4a, 0xbd, 0xd5, 0xa4, 0x5f, 0xfb, 0x29, 0xc0, 0x1d, 0x9b, 0xd7, 0x4f, 0xa4, 0xae, 0x08, 0xfd,
+  0x88, 0xb1, 0x60, 0x61, 0x05, 0xf2, 0xc5, 0xca, 0x66, 0x7b, 0x83, 0x79, 0xb8, 0xee, 0x49, 0x21,
+  0x4f, 0x76, 0xd7, 0x3b, 0x32, 0x36, 0x4a, 0x26, 0x2c, 0x24, 0x67, 0xe6, 0xbe, 0x76, 0x23, 0x73,
+  0x4e, 0xf3, 0xc6, 0x32, 0xe0, 0x26, 0x61, 0x2f, 0x16, 0x15, 0xbf, 0xfd, 0x66, 0xa2, 0x6c, 0x9b,
+  0x25, 0x3d, 0xdf, 0xf8, 0x95, 0xa7, 0xda, 0x33, 0x59, 0xda, 0xf7, 0xea, 0x8f, 0xac, 0x11, 0xb2,
+  0xc4, 0x21, 0xfd, 0x30, 0x8d, 0x13, 0x61, 0x1e, 0xe5, 0x86, 0xd6, 0x48, 0xd1, 0xae, 0x92, 0xb6,
+  0x7c, 0x8c, 0xc7, 0x9f, 0x22, 0x64, 0x76, 0x88, 0xc3, 0x20, 0xe3, 0xd3, 0x9e, 0x1e, 0xe0, 0x1c,
+  0xad, 0xa2, 0x99, 0xb4, 0x0d, 0x0c, 0x62, 0x43, 0x41, 0x32, 0x68, 0x20, 0x0f, 0x8e, 0xdd, 0xb6,
+  0x0f, 0xa2, 0xea, 0x4c, 0xa9, 0xcf, 0x95, 0xc4, 0xa7, 0xd9, 0x1a, 0x09, 0x22, 0xa8, 0xfb, 0x72,
+  0x3b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xc3, 0xab, 0xf0, 0xb9, 0x41, 0x55, 0x4b, 0xbd, 0xf2, 0x45, 0x0c,
+  0x3a, 0xb1, 0xc7, 0x09, 0x7a, 0xf5, 0xf8, 0x65, 0x28, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc3, 0xab, 0xf0, 0xb9, 0x41, 0x55, 0x4b, 0xbd, 0xf2, 0x45,
+  0x0c, 0x3a, 0xb1, 0xc7, 0x09, 0x7a, 0xf5, 0xf8, 0x65, 0x28, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x1f,
+  0x2f, 0x49, 0xe9, 0x99, 0x0c, 0x0d, 0x17, 0x74, 0x2b, 0x21, 0x60, 0x99, 0xd2, 0xea, 0x35, 0x07,
+  0x6f, 0xf8, 0x09, 0x73, 0xf0, 0xba, 0x18, 0xf6, 0xe9, 0x1d, 0x35, 0xe1, 0x0f, 0x01, 0xa9, 0x5a,
+  0x13, 0xcc, 0xb7, 0xbb, 0xbf, 0x4b, 0xbc, 0x53, 0xc6, 0xac, 0xd9, 0x7e, 0x0f, 0xd0, 0xf1, 0xd4,
+  0x58, 0xdb, 0x95, 0x70, 0x3b, 0x93, 0xf1, 0x57, 0xbf, 0x73, 0xbd, 0xd9, 0xc2, 0x86, 0x47, 0x89,
+  0x86, 0x8f, 0x90, 0x1a, 0xd5, 0x42, 0x1a, 0xfc, 0x58, 0xb9, 0x10, 0xcd, 0x79, 0xca, 0x11, 0x6a,
+  0xd0, 0x56, 0x4e, 0x6a, 0x49, 0x4a, 0xaa, 0x1e, 0xe0, 0xee, 0xa2, 0x26, 0x6c, 0xb1, 0x40, 0x4d,
+  0x99, 0x41, 0xc0, 0xe3, 0x1f, 0xb0, 0xfc, 0x39, 0xcc, 0x06, 0x2a, 0xc9, 0x57, 0x84, 0xa6, 0xbf,
+  0x8f, 0x3e, 0x84, 0x81, 0x37, 0x8b, 0xed, 0x5c, 0xb5, 0xe1, 0x26, 0xe1, 0x9c, 0xc3, 0x22, 0xf3,
+  0xeb, 0xb6, 0x31, 0x08, 0xcf, 0x0c, 0x51, 0xe6, 0x0e, 0xb1, 0x26, 0x7e, 0x10, 0xb6, 0x1d, 0x7f,
+  0x28, 0x7e, 0xda, 0x9c, 0x11, 0x34, 0xdd, 0xf0, 0xc8, 0x4e, 0xf0, 0x91, 0xb3, 0x9f, 0x46, 0x36,
+  0x75, 0x52, 0x4e, 0xd6, 0x27, 0x1d, 0x85, 0x1b, 0x78, 0x97, 0x1e, 0x31, 0x39, 0x26, 0x8b, 0x59,
+  0x2e, 0xc2, 0x68, 0xb7, 0xf1, 0xbd, 0x07, 0x22, 0x91, 0x2a, 0x82, 0x33, 0x05, 0x75, 0x86, 0xd3,
+  0x23, 0x68, 0xb9, 0x87, 0xdc, 0x7e, 0xdc, 0x6b, 0x45, 0xa0, 0xac, 0x61, 0x3c, 0xc5, 0xf6, 0xbc,
+  0x56, 0xf0, 0xd0, 0xa1, 0x9d, 0xff, 0xa5, 0xee, 0xdc, 0xa7, 0x98, 0x75, 0xb0, 0x81, 0x75, 0xe6,
+  0x19, 0xd3, 0x67, 0x48, 0x07, 0x5c, 0xc4, 0x43, 0x90, 0x6d, 0xab, 0x18, 0xf2, 0xc0, 0xf6, 0x08,
+  0x84, 0x1a, 0x34, 0x45, 0xa3, 0x9e, 0x4f, 0xdd, 0x8e, 0xa3, 0xb0, 0x6a, 0x08, 0x0c, 0x6f
+};
+
+UINT32 gPkNewRsa2048Sha256Size = sizeof(gPkNewRsa2048Sha256);
\ No newline at end of file
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c
new file mode 100644
index 0000000000..c9de91552b
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkNewRsa3072Sha256[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x14, 0x06, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x05, 0xf8, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x03,
+  0xff, 0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x0e, 0xa9, 0x76, 0xb9, 0x2d, 0x79, 0xbe, 0xc2, 0xc2, 0xd8, 0x07, 0x15, 0xb8, 0x33, 0x3e, 0x89,
+  0x03, 0xb6, 0xe3, 0x05, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x32, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01,
+  0x81, 0x00, 0xbb, 0xbf, 0xa1, 0xf3, 0x31, 0x4e, 0x48, 0xaf, 0x6e, 0xa9, 0x11, 0x1e, 0x4f, 0x60,
+  0xbb, 0x03, 0xac, 0x64, 0x03, 0x56, 0xed, 0x09, 0xc8, 0x64, 0x2a, 0xe7, 0x8a, 0x60, 0x2a, 0x3e,
+  0x44, 0xc1, 0xbd, 0x47, 0x30, 0x0c, 0xb1, 0x95, 0x62, 0x5b, 0xd1, 0x05, 0xa2, 0x37, 0x9e, 0x91,
+  0x9d, 0x96, 0x08, 0x27, 0x29, 0xb7, 0x44, 0x9f, 0x06, 0xce, 0x7d, 0xf1, 0xcd, 0x0d, 0x0c, 0x6a,
+  0x0b, 0x89, 0xb4, 0x7f, 0x8a, 0x77, 0xdd, 0x93, 0xab, 0x19, 0x60, 0x8f, 0xa0, 0xd3, 0x67, 0x4c,
+  0x56, 0x6c, 0xdc, 0x65, 0x27, 0x2d, 0x12, 0x82, 0x8b, 0x22, 0xcd, 0x3e, 0x8e, 0x7a, 0xf9, 0x5f,
+  0x4c, 0xff, 0x4a, 0xa6, 0x52, 0x25, 0xf3, 0xc2, 0x97, 0x41, 0x45, 0x7d, 0xd9, 0x04, 0xd0, 0x8c,
+  0x7b, 0x40, 0xcf, 0x04, 0x1b, 0x5e, 0x85, 0xe9, 0x8f, 0xfa, 0x7b, 0xde, 0x88, 0x5e, 0xd2, 0xf0,
+  0x87, 0xb2, 0x9f, 0x7d, 0x18, 0x29, 0xa9, 0xbc, 0x0c, 0x8a, 0x3d, 0x79, 0xbe, 0x6d, 0x38, 0x67,
+  0xbe, 0x90, 0xaa, 0xf9, 0x2b, 0xbc, 0x3c, 0x41, 0x84, 0xf0, 0x7e, 0xb3, 0x2c, 0x54, 0x83, 0x77,
+  0x50, 0x1a, 0x59, 0x5e, 0xe4, 0x75, 0x29, 0xb0, 0xf7, 0xea, 0xb9, 0x71, 0x8e, 0x68, 0xbf, 0xf2,
+  0xba, 0xbf, 0x85, 0xae, 0x35, 0xa2, 0xfa, 0x23, 0x45, 0x07, 0xd0, 0xc8, 0xb2, 0xd4, 0xc0, 0x4f,
+  0x66, 0x55, 0x53, 0x0e, 0x49, 0x00, 0x2b, 0xd8, 0x13, 0xb7, 0x17, 0x42, 0xea, 0x94, 0xd2, 0xab,
+  0x88, 0x06, 0xb1, 0x0a, 0x1b, 0x73, 0xde, 0xdb, 0x46, 0xfa, 0xfa, 0x3d, 0xb8, 0x07, 0xd5, 0xf8,
+  0x8b, 0xc9, 0x37, 0x83, 0x77, 0x12, 0xbc, 0xee, 0xd0, 0xcd, 0xa2, 0xbb, 0xa6, 0x7e, 0x08, 0xc0,
+  0x94, 0xa8, 0x38, 0x08, 0xff, 0xce, 0xd3, 0x3c, 0xa1, 0x03, 0xef, 0x37, 0xaa, 0x60, 0x08, 0xa4,
+  0xf5, 0x11, 0xae, 0xa2, 0x0f, 0x87, 0x49, 0xeb, 0x7e, 0x69, 0xe8, 0xba, 0xc3, 0xab, 0xc8, 0x12,
+  0xa5, 0x3d, 0x32, 0xff, 0x69, 0x2c, 0x25, 0x6d, 0xe0, 0x4d, 0x31, 0xb6, 0x6f, 0x7b, 0x3a, 0xb9,
+  0x84, 0x56, 0x5b, 0xfb, 0xf1, 0xce, 0x2a, 0xcd, 0x04, 0xb5, 0x1e, 0x3e, 0xa1, 0x1a, 0xdf, 0x0e,
+  0xbe, 0x5d, 0x8d, 0x49, 0xef, 0xaa, 0x68, 0xfc, 0xe3, 0x7a, 0x4c, 0xf4, 0xbd, 0xd4, 0xf7, 0x53,
+  0x7b, 0xb1, 0x94, 0x68, 0x2f, 0xe5, 0x24, 0x52, 0xd4, 0xbd, 0x33, 0x8a, 0xa0, 0xf7, 0x4c, 0x25,
+  0x57, 0x3f, 0x64, 0xb6, 0x9e, 0x7d, 0x14, 0x0d, 0xc9, 0xa2, 0x9b, 0x74, 0x14, 0xd3, 0xe6, 0xf8,
+  0x8f, 0xfe, 0x41, 0x9c, 0xe9, 0xeb, 0xbe, 0x3e, 0xbc, 0xe5, 0xd5, 0x89, 0x77, 0xc8, 0xc7, 0xc2,
+  0x60, 0xa6, 0x2e, 0xb3, 0xfe, 0x03, 0xa5, 0x0b, 0x41, 0xe6, 0x2e, 0xd1, 0xd6, 0xac, 0x02, 0x89,
+  0x46, 0x15, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd4, 0xe9, 0x80, 0xf0, 0xb4, 0xb9, 0x68, 0x8b, 0x8b, 0xfe,
+  0x4d, 0xa8, 0x76, 0xf7, 0x5a, 0xfc, 0x3b, 0xc8, 0xd6, 0x49, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd4, 0xe9, 0x80, 0xf0, 0xb4, 0xb9, 0x68, 0x8b, 0x8b,
+  0xfe, 0x4d, 0xa8, 0x76, 0xf7, 0x5a, 0xfc, 0x3b, 0xc8, 0xd6, 0x49, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00,
+  0x48, 0x49, 0xa3, 0x80, 0x34, 0xf4, 0xb5, 0x92, 0xb4, 0x94, 0x02, 0x39, 0x6a, 0xfb, 0x1e, 0xc1,
+  0xbf, 0xfc, 0xcd, 0x3d, 0xcd, 0x02, 0x43, 0x2c, 0xe8, 0xa0, 0xcf, 0x5e, 0xbf, 0x78, 0x3a, 0x6e,
+  0x6f, 0x42, 0x87, 0x80, 0xee, 0x13, 0x7c, 0x88, 0x38, 0xa4, 0x36, 0x9f, 0xd5, 0x33, 0xc7, 0x0a,
+  0x0a, 0x46, 0x05, 0xf8, 0xa9, 0x50, 0x38, 0x3d, 0x44, 0x44, 0x21, 0x10, 0xcf, 0x06, 0xf7, 0x09,
+  0xd0, 0x06, 0xff, 0x3d, 0x3e, 0x0a, 0xd7, 0x27, 0xb6, 0x82, 0x37, 0x68, 0xd0, 0x22, 0xd1, 0x2a,
+  0x9e, 0xc1, 0x62, 0xc8, 0x5f, 0x43, 0xb4, 0x23, 0xe0, 0x98, 0x3c, 0x69, 0x36, 0x2d, 0x4a, 0x2a,
+  0xd3, 0xbd, 0x00, 0x9c, 0x1e, 0x7e, 0xd9, 0xaa, 0xf8, 0x00, 0x5f, 0xd9, 0x6a, 0xea, 0x4e, 0x8c,
+  0xe2, 0x03, 0x28, 0x4d, 0xd6, 0xa3, 0xd2, 0x3e, 0xa2, 0x95, 0x6a, 0xe8, 0x2a, 0x6d, 0xde, 0xa4,
+  0x1e, 0xda, 0xd4, 0xb6, 0xfa, 0xb9, 0x76, 0x35, 0x7e, 0x5c, 0xf4, 0xb0, 0x72, 0xf5, 0x82, 0x3c,
+  0xa9, 0x37, 0x5f, 0x49, 0x5c, 0x4a, 0x18, 0xd7, 0xa7, 0x79, 0xd0, 0x26, 0x26, 0xe8, 0x5b, 0x2f,
+  0x67, 0x90, 0x7a, 0xe9, 0x67, 0x2e, 0xec, 0x14, 0x01, 0x9a, 0x69, 0xb7, 0x59, 0xb6, 0x66, 0xfc,
+  0x5c, 0xd8, 0x0a, 0x78, 0x94, 0x2e, 0x90, 0x28, 0x22, 0xc9, 0xfa, 0xf9, 0x0e, 0x8d, 0x8e, 0x15,
+  0xc2, 0xc1, 0x62, 0xae, 0xec, 0xba, 0xec, 0x5d, 0x95, 0xb4, 0x11, 0x2c, 0xb5, 0x69, 0xd1, 0xcd,
+  0x2f, 0xb2, 0xfb, 0xc2, 0x50, 0xe3, 0xf2, 0xf8, 0x1a, 0xe8, 0x7c, 0xf5, 0x62, 0x3b, 0x3d, 0xcc,
+  0x1e, 0x7d, 0xe7, 0x54, 0x8f, 0x82, 0xc5, 0x93, 0x7b, 0x3f, 0x3a, 0x41, 0x7f, 0x32, 0x01, 0xdb,
+  0x87, 0x7c, 0x95, 0xf2, 0x2a, 0x7c, 0x30, 0x7b, 0x80, 0xe1, 0x24, 0x8c, 0x18, 0x5c, 0xdd, 0xba,
+  0xeb, 0x96, 0x2b, 0x73, 0x96, 0x87, 0x6d, 0xc5, 0xe1, 0x76, 0xc3, 0x07, 0x1e, 0x36, 0x06, 0x11,
+  0x6c, 0xd7, 0x7e, 0xe8, 0xbd, 0x9d, 0xb4, 0xd7, 0x0d, 0xf4, 0xef, 0x34, 0xc1, 0x75, 0x99, 0x29,
+  0x39, 0x81, 0x31, 0xbe, 0xa6, 0xf7, 0x26, 0xc0, 0xcf, 0xe3, 0x4c, 0x4d, 0xca, 0x86, 0x91, 0x4b,
+  0xeb, 0x8b, 0x2c, 0x45, 0x5c, 0x80, 0x37, 0xa8, 0xa5, 0x71, 0xce, 0x92, 0x72, 0x90, 0xae, 0x6f,
+  0x87, 0x48, 0xcf, 0x62, 0xe1, 0x5d, 0x74, 0xfa, 0xf3, 0xd2, 0x69, 0x7a, 0xee, 0x1e, 0x5b, 0xdf,
+  0x69, 0x47, 0x7d, 0x77, 0xb6, 0x64, 0xc7, 0xd0, 0xcf, 0xb1, 0xe9, 0xa8, 0xfc, 0x36, 0x7f, 0xaa,
+  0x0c, 0xe2, 0x8d, 0xaf, 0x6c, 0x96, 0x8d, 0x97, 0xf7, 0x1d, 0x95, 0xa2, 0x27, 0xc6, 0xfa, 0xb7,
+  0xf9, 0xf9, 0xab, 0x29, 0x77, 0xe3, 0x08, 0x20, 0x7b, 0xe6, 0xa5, 0x3a, 0xa5, 0x01, 0xbd, 0xea,
+  0x31, 0x82, 0x01, 0xd0, 0x30, 0x82, 0x01, 0xcc, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x0e, 0xa9,
+  0x76, 0xb9, 0x2d, 0x79, 0xbe, 0xc2, 0xc2, 0xd8, 0x07, 0x15, 0xb8, 0x33, 0x3e, 0x89, 0x03, 0xb6,
+  0xe3, 0x05, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x01, 0x80, 0xaf, 0xb5, 0xc9, 0xa8, 0xa0, 0x86, 0xd8, 0xbc, 0xa5, 0xc3, 0xfb, 0xc3,
+  0xef, 0x1f, 0x92, 0xd6, 0x20, 0x9c, 0x42, 0xea, 0xfa, 0xdd, 0x17, 0x13, 0xa1, 0xdb, 0x4a, 0x51,
+  0xe4, 0xa8, 0x49, 0xb5, 0xbf, 0xb8, 0x13, 0xa5, 0xa8, 0xa6, 0xb5, 0x69, 0x39, 0x93, 0xba, 0xa1,
+  0x50, 0x4f, 0x7a, 0xa4, 0x57, 0xba, 0x9f, 0xf4, 0xab, 0x4d, 0xf0, 0xb6, 0x60, 0xf2, 0x94, 0xd0,
+  0x42, 0x40, 0x23, 0xbc, 0xab, 0x56, 0xa1, 0xc8, 0xd5, 0xe5, 0x8a, 0xde, 0x6d, 0x51, 0xff, 0x75,
+  0x69, 0x32, 0x2f, 0xa5, 0x05, 0x39, 0xbc, 0x3e, 0x20, 0x89, 0x3d, 0x2d, 0x9c, 0x74, 0xfa, 0x75,
+  0x60, 0xaf, 0xfd, 0x7e, 0x94, 0x8e, 0xbc, 0x39, 0x15, 0x8c, 0x5f, 0x61, 0x96, 0x22, 0xd2, 0x05,
+  0x9d, 0x79, 0x6a, 0xe6, 0xf9, 0xa5, 0x4a, 0x95, 0x0a, 0x3b, 0x46, 0x3c, 0x50, 0x86, 0x42, 0xa6,
+  0x39, 0x5a, 0x13, 0xd4, 0x92, 0xe1, 0x05, 0x16, 0xae, 0xd7, 0x82, 0x79, 0x8e, 0xea, 0xf3, 0xe3,
+  0x67, 0xa7, 0xc9, 0xdb, 0x00, 0x52, 0xab, 0x32, 0xcb, 0x34, 0x30, 0x55, 0x14, 0xf1, 0x03, 0xbf,
+  0x31, 0x11, 0x91, 0xc2, 0x2a, 0xb9, 0x3d, 0xa8, 0x2d, 0x7b, 0x29, 0x20, 0x13, 0xda, 0x7c, 0x2d,
+  0x5e, 0x3b, 0xcd, 0xbd, 0xdf, 0x46, 0xba, 0x71, 0xc7, 0xfd, 0x50, 0x7f, 0x10, 0x15, 0xaf, 0x9f,
+  0xb3, 0xda, 0xe2, 0xad, 0xe2, 0xca, 0x0e, 0x95, 0x54, 0xd2, 0x4d, 0x33, 0x71, 0xff, 0x9d, 0x33,
+  0xc0, 0xb2, 0x77, 0xa2, 0xa5, 0x64, 0x59, 0x1f, 0xb3, 0x59, 0x4e, 0x96, 0x07, 0x55, 0xeb, 0xdf,
+  0xa9, 0x61, 0x7b, 0xb4, 0xb3, 0x5d, 0x4f, 0xbd, 0x5b, 0xfe, 0x0b, 0xdd, 0x31, 0x0a, 0xb8, 0x64,
+  0x7c, 0x0a, 0xd1, 0x57, 0x31, 0x89, 0xec, 0xa2, 0x41, 0x31, 0x9f, 0xf0, 0xc6, 0xf4, 0xb4, 0x8a,
+  0x24, 0xbb, 0x4d, 0x88, 0x42, 0xb6, 0xb4, 0x6e, 0x8b, 0x43, 0x9c, 0x0a, 0xf6, 0x30, 0xce, 0x28,
+  0xb6, 0x64, 0x75, 0xc2, 0xd0, 0xb5, 0xe6, 0xbf, 0x8b, 0x61, 0x8a, 0x51, 0xc7, 0x70, 0x1f, 0x6c,
+  0x34, 0xa5, 0x1d, 0x5c, 0xc3, 0xa3, 0x7c, 0x7e, 0x95, 0xab, 0xcc, 0x8a, 0xa0, 0x68, 0x17, 0x8a,
+  0xbf, 0x0d, 0x50, 0x99, 0x23, 0x77, 0x9c, 0xee, 0xb3, 0xa5, 0x42, 0x6e, 0x0d, 0xc6, 0xe5, 0x99,
+  0x0a, 0xff, 0x79, 0xbf, 0xc3, 0xf4, 0x4b, 0xe7, 0xdf, 0x14, 0x9c, 0x91, 0xac, 0x98, 0x7b, 0x16,
+  0x58, 0x56, 0xc9, 0x48, 0xfe, 0xc0, 0xf4, 0x07, 0x49, 0x32, 0x2e, 0x7c, 0x76, 0xaf, 0xba, 0x1c,
+  0x83, 0x9b, 0x33, 0xfa, 0x88, 0x13, 0x5b, 0xde, 0x36, 0xb5, 0x9c, 0x3d, 0x38, 0x2f, 0x08, 0x37,
+  0x5d, 0x95, 0x5c, 0xfd, 0x7b, 0xe5, 0xd2, 0xf8, 0xfc, 0x20, 0x92, 0x79, 0x6a, 0xc9, 0x53, 0xbc,
+  0xfb, 0x68, 0x25, 0xee, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x04, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x7f,
+  0x2f, 0x45, 0x86, 0x22, 0x18, 0x3b, 0xb6, 0x27, 0x30, 0x62, 0x62, 0xe6, 0x6d, 0xc4, 0xcc, 0x1c,
+  0x88, 0xd6, 0x58, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x35, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x35,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
+  0x00, 0x9d, 0x57, 0x22, 0x1a, 0xec, 0x4b, 0x4e, 0xa8, 0x2b, 0x8b, 0x3b, 0x08, 0xf6, 0x71, 0x86,
+  0x94, 0x38, 0x66, 0xff, 0xef, 0x9c, 0xbe, 0x51, 0x87, 0x26, 0x35, 0x02, 0xfd, 0xa0, 0xd7, 0x53,
+  0xe4, 0x98, 0x52, 0xe9, 0x73, 0xea, 0x40, 0x9e, 0xa0, 0x75, 0x90, 0x20, 0xbe, 0x1d, 0x61, 0x85,
+  0xb5, 0xc9, 0x8f, 0xf3, 0x23, 0x61, 0x07, 0x7f, 0x9d, 0xf6, 0x52, 0xd2, 0x9a, 0xea, 0x97, 0x8b,
+  0xc0, 0x73, 0x89, 0xcb, 0x8b, 0x28, 0xfa, 0x45, 0xf5, 0x43, 0x15, 0x91, 0x1c, 0x21, 0xab, 0xb5,
+  0x7f, 0x86, 0x34, 0xea, 0x25, 0xea, 0x9f, 0xc4, 0xcd, 0x34, 0xe6, 0xb7, 0xd9, 0xba, 0xaf, 0x55,
+  0x96, 0x68, 0xf8, 0x8a, 0x9c, 0xa3, 0x87, 0xf1, 0x82, 0x44, 0xcc, 0xe7, 0x0b, 0xd6, 0xfb, 0x17,
+  0x01, 0x01, 0x4d, 0x5b, 0x0d, 0x25, 0xe3, 0x69, 0xf0, 0x15, 0x29, 0xf8, 0x16, 0x11, 0x63, 0xd1,
+  0xb7, 0x21, 0x18, 0x7c, 0x75, 0xaa, 0xec, 0x35, 0xe7, 0x2e, 0x94, 0x79, 0x95, 0x3d, 0x7f, 0xa2,
+  0x2a, 0x73, 0x62, 0x81, 0x6b, 0xcc, 0x35, 0xe6, 0x0c, 0x4c, 0x87, 0xb2, 0xcb, 0xa0, 0xfc, 0x10,
+  0x2e, 0x81, 0x4f, 0x39, 0xbf, 0xff, 0x89, 0x4b, 0xff, 0x8b, 0x86, 0x37, 0xfa, 0x80, 0x44, 0x2c,
+  0x61, 0x23, 0xfd, 0x7e, 0x9e, 0xc1, 0xc8, 0x46, 0xb9, 0x25, 0xc4, 0x24, 0x06, 0x99, 0xf0, 0x11,
+  0xc8, 0xfc, 0x55, 0x98, 0x5c, 0xd8, 0xf2, 0x26, 0x09, 0x60, 0x02, 0x94, 0x47, 0xbf, 0x86, 0x0b,
+  0x59, 0x9c, 0xb5, 0x5f, 0x13, 0xd3, 0x68, 0x11, 0xbb, 0xd6, 0xd2, 0x99, 0x35, 0x21, 0xfa, 0x7f,
+  0x6a, 0x3d, 0x3e, 0x9e, 0x2b, 0x65, 0x07, 0x1e, 0x54, 0xba, 0x56, 0xf1, 0x82, 0xa2, 0xd8, 0x7e,
+  0xd9, 0xca, 0x22, 0x75, 0x6a, 0x79, 0x14, 0x66, 0x2f, 0xbb, 0xe9, 0x67, 0x9b, 0x1c, 0x28, 0x06,
+  0x13, 0xaf, 0xbd, 0xab, 0xda, 0x98, 0xc4, 0x90, 0xed, 0xba, 0x7b, 0xe9, 0xe6, 0x90, 0x4c, 0x82,
+  0xfd, 0x34, 0x02, 0xea, 0x76, 0x9f, 0xb0, 0x8d, 0x42, 0xda, 0xd9, 0x0a, 0x56, 0x8e, 0xe9, 0x01,
+  0xb5, 0xc2, 0xa3, 0xfc, 0xc9, 0x73, 0xef, 0x72, 0x92, 0xa5, 0xe7, 0x27, 0x93, 0x63, 0x2e, 0xe7,
+  0x0b, 0x61, 0x94, 0x50, 0x94, 0x29, 0x3c, 0x67, 0x87, 0xa7, 0xf7, 0x5b, 0x09, 0x1f, 0xfa, 0x7b,
+  0xdd, 0x83, 0x7b, 0xc4, 0x3e, 0xd9, 0x04, 0xbf, 0x4e, 0x5b, 0x79, 0x1a, 0x37, 0x4f, 0x4d, 0xd5,
+  0x4b, 0x5b, 0x99, 0xe2, 0xc6, 0x6a, 0xa7, 0x75, 0x53, 0xab, 0xaa, 0xaa, 0xaf, 0x1e, 0x3b, 0xa1,
+  0x64, 0x4d, 0x75, 0x83, 0x84, 0x09, 0x92, 0x53, 0x32, 0x52, 0x8b, 0x86, 0xdd, 0x02, 0x69, 0xa2,
+  0xbc, 0x4e, 0xc5, 0xa4, 0x13, 0xc2, 0x36, 0x2f, 0x31, 0x60, 0xa4, 0x30, 0x93, 0x51, 0x5f, 0x0c,
+  0xa1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x91, 0xb2, 0xbc, 0x33, 0xaa, 0xaa, 0x08, 0x05, 0x34, 0x2b, 0xa4,
+  0xbc, 0x4e, 0xe7, 0x87, 0xdb, 0x42, 0x92, 0xe6, 0x1a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x91, 0xb2, 0xbc, 0x33, 0xaa, 0xaa, 0x08, 0x05, 0x34, 0x2b,
+  0xa4, 0xbc, 0x4e, 0xe7, 0x87, 0xdb, 0x42, 0x92, 0xe6, 0x1a, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00, 0x8c,
+  0xfe, 0x86, 0x60, 0x54, 0xf8, 0x9b, 0x13, 0xfc, 0xae, 0x43, 0xda, 0x43, 0xc8, 0x1c, 0xa4, 0x40,
+  0x62, 0xdb, 0x4d, 0x1f, 0x81, 0xf0, 0xf1, 0xf6, 0xb9, 0xfa, 0x3a, 0x14, 0x1e, 0x3c, 0x60, 0x54,
+  0x91, 0x06, 0x85, 0x56, 0x95, 0x4d, 0x20, 0x00, 0xd5, 0x26, 0x3b, 0xa5, 0x49, 0xaa, 0x95, 0x61,
+  0x09, 0x17, 0xf2, 0xa4, 0x58, 0xcd, 0x8f, 0xf9, 0xf0, 0xb8, 0xbd, 0x2d, 0x5d, 0x07, 0x13, 0x01,
+  0xb9, 0xe8, 0x88, 0x1b, 0x4d, 0xa3, 0x97, 0xc2, 0xb5, 0xf2, 0x15, 0xe1, 0xaa, 0xf0, 0xfd, 0x17,
+  0x88, 0x5f, 0xb4, 0xcc, 0xa9, 0x30, 0x2f, 0x8f, 0xd9, 0x3f, 0x18, 0xf2, 0x8a, 0x9c, 0xd3, 0xba,
+  0x1c, 0x6f, 0xf2, 0x10, 0xb5, 0xa6, 0x69, 0x8a, 0x9d, 0xd7, 0x6f, 0xea, 0xcc, 0x4b, 0x05, 0x08,
+  0xb6, 0xff, 0x4f, 0xae, 0xa4, 0xec, 0x10, 0xef, 0x02, 0x35, 0xac, 0x6a, 0xe0, 0x67, 0x68, 0x7f,
+  0x2a, 0x3c, 0x7f, 0x4d, 0x30, 0x38, 0x59, 0x81, 0x0b, 0xc4, 0x1c, 0x8c, 0x80, 0x16, 0x0a, 0x94,
+  0x67, 0x0d, 0xf6, 0x6b, 0xe5, 0xaf, 0x0d, 0x05, 0x27, 0x41, 0x79, 0x33, 0xc0, 0x6b, 0x34, 0xa2,
+  0xb6, 0x22, 0x26, 0x20, 0xeb, 0xee, 0x33, 0x1c, 0x43, 0x7f, 0x4d, 0x5b, 0x97, 0x74, 0x49, 0x00,
+  0xbd, 0xd7, 0x91, 0xdd, 0xc9, 0xa1, 0x6f, 0xfc, 0x65, 0x1b, 0x18, 0x4c, 0xb6, 0x5c, 0xca, 0xe1,
+  0xe1, 0x53, 0xc3, 0xc5, 0xa3, 0x23, 0x28, 0xaa, 0xec, 0x83, 0xe2, 0xd7, 0xc4, 0xb3, 0x97, 0xf0,
+  0xc3, 0x4c, 0x91, 0x3d, 0x0f, 0xc0, 0x68, 0xd2, 0x33, 0x8a, 0xce, 0xee, 0xe8, 0x7f, 0xc3, 0x81,
+  0x9d, 0xf6, 0xc6, 0xd0, 0xe9, 0x01, 0xd4, 0x52, 0x6b, 0xb7, 0x56, 0xc1, 0x20, 0x3b, 0x11, 0x18,
+  0xc6, 0xd9, 0x44, 0x07, 0x22, 0xe4, 0x61, 0xa5, 0x48, 0x54, 0xff, 0xb4, 0x74, 0x68, 0x6c, 0x2e,
+  0x6a, 0x61, 0x00, 0xfa, 0x90, 0x58, 0x53, 0x42, 0x2b, 0xe9, 0x16, 0xf2, 0x35, 0x08, 0xbc, 0xbb,
+  0x0c, 0xca, 0x56, 0xf8, 0x50, 0xae, 0x15, 0xba, 0xa0, 0x80, 0x97, 0xf3, 0x0a, 0xe2, 0x11, 0xed,
+  0x7d, 0x24, 0xdc, 0xb5, 0xbe, 0xc0, 0xd8, 0xd5, 0x96, 0x83, 0xbc, 0xca, 0x6e, 0x0a, 0x82, 0x56,
+  0x84, 0x9c, 0x16, 0xc5, 0xbb, 0x7e, 0x54, 0x2e, 0x6a, 0xfa, 0x88, 0x4d, 0x32, 0xdb, 0x42, 0xb5,
+  0xa5, 0x01, 0xfc, 0x36, 0x50, 0x68, 0xdb, 0xc0, 0x7c, 0x20, 0x70, 0x34, 0x2f, 0x53, 0x09, 0x2c,
+  0xd7, 0xaa, 0x21, 0xa9, 0xa1, 0x37, 0x70, 0xe9, 0x83, 0x13, 0xb1, 0x7d, 0x8b, 0x16, 0x04, 0xd5,
+  0x92, 0x78, 0x83, 0xbc, 0x22, 0x25, 0xbc, 0xd1, 0x72, 0xee, 0x53, 0x3c, 0xf3, 0x5f, 0xa7, 0x78,
+  0xb9, 0xce, 0x03, 0xe0, 0xe4, 0xcf, 0x80, 0x94, 0xdc, 0x0d, 0xd8, 0x53, 0xc1, 0x83, 0xbd
+};
+
+UINT32 gPkNewRsa3072Sha256Size = sizeof(gPkNewRsa3072Sha256);
\ No newline at end of file
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c
new file mode 100644
index 0000000000..8e7c2d64f1
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkNewRsa3072Sha384[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x14, 0x06, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x05, 0xf8, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x03,
+  0xff, 0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x70, 0x25, 0x22, 0x46, 0xb2, 0xc0, 0xa9, 0x51, 0x32, 0xb1, 0xd2, 0xa3, 0xa2, 0x1c, 0xf5, 0x61,
+  0x90, 0x43, 0x95, 0x99, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0c, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x39, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x39, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01,
+  0x81, 0x00, 0xac, 0x30, 0xdc, 0x67, 0x6b, 0xf0, 0x73, 0xd4, 0x6c, 0xae, 0x0b, 0xbb, 0x81, 0x45,
+  0x0d, 0x22, 0x62, 0xb4, 0x7a, 0x67, 0x02, 0x3a, 0x74, 0x86, 0x58, 0xfd, 0x33, 0xb2, 0xf4, 0x50,
+  0x2f, 0x64, 0xa7, 0xce, 0x20, 0x83, 0x76, 0x00, 0x3f, 0xce, 0xd3, 0xbd, 0x92, 0xfe, 0x48, 0x1e,
+  0x8f, 0x18, 0xd7, 0x61, 0xfd, 0xbc, 0x5c, 0xf6, 0x54, 0x8a, 0xb8, 0xd9, 0x19, 0xc4, 0x5e, 0x2b,
+  0x5a, 0x23, 0xab, 0x62, 0x6c, 0xf9, 0x59, 0x1a, 0xf8, 0x99, 0xec, 0x9e, 0xea, 0x09, 0x1a, 0xe7,
+  0x4c, 0x55, 0x50, 0x33, 0x96, 0x51, 0xd3, 0xc4, 0x4d, 0x6d, 0xf0, 0x77, 0x63, 0x54, 0x37, 0xda,
+  0x8d, 0x9b, 0xdb, 0x01, 0x59, 0x2e, 0x0f, 0xd0, 0x03, 0xf6, 0x4d, 0x63, 0x78, 0xd2, 0x17, 0xa2,
+  0x13, 0x92, 0x1a, 0x7d, 0x16, 0xf4, 0x84, 0x20, 0xc4, 0xb1, 0x38, 0x24, 0xe4, 0xef, 0x52, 0xca,
+  0x66, 0x00, 0xfb, 0x0b, 0x66, 0x91, 0xb3, 0x0b, 0x80, 0xd4, 0xd2, 0x94, 0xa4, 0x47, 0x83, 0xca,
+  0xe4, 0xba, 0xa0, 0xd9, 0x77, 0x83, 0xc7, 0x37, 0xad, 0xca, 0x5a, 0xae, 0xf3, 0x48, 0x52, 0x68,
+  0xa5, 0x8f, 0x27, 0x58, 0x2e, 0xaa, 0x0a, 0x75, 0x9c, 0x1c, 0x00, 0x60, 0xbc, 0xdd, 0xf5, 0xb8,
+  0xbb, 0xc4, 0x62, 0x8b, 0x9e, 0x7a, 0xaf, 0xd3, 0x2f, 0x5d, 0xcc, 0xbe, 0x8f, 0x24, 0x31, 0xf8,
+  0xff, 0xb2, 0xbd, 0xc0, 0xe9, 0x26, 0x0e, 0x79, 0x65, 0xf8, 0xa1, 0x7f, 0x99, 0x54, 0x9a, 0x6f,
+  0xa0, 0x41, 0x8e, 0x97, 0xff, 0x5d, 0xe4, 0xc2, 0x69, 0xb2, 0x46, 0xb3, 0x7e, 0x26, 0xd4, 0xdc,
+  0x14, 0x2e, 0x72, 0xb5, 0x1e, 0xbd, 0xbb, 0x4c, 0x8b, 0xc3, 0x60, 0xa6, 0x43, 0x37, 0x0a, 0x3b,
+  0x88, 0xc4, 0x47, 0xde, 0x01, 0xda, 0x7c, 0xdd, 0xc2, 0x02, 0x27, 0x56, 0xaa, 0x1b, 0x6f, 0x3a,
+  0x48, 0x38, 0x14, 0xb0, 0x1c, 0xeb, 0xf4, 0x74, 0xdd, 0xc5, 0xd3, 0xa0, 0x77, 0x67, 0xe9, 0x16,
+  0x66, 0xd1, 0x50, 0x9b, 0xca, 0x72, 0x4f, 0x2a, 0x08, 0x1f, 0xbd, 0x36, 0xd3, 0x0d, 0x1c, 0x79,
+  0xf4, 0x7d, 0x5c, 0xf8, 0xe6, 0x3b, 0x9e, 0xce, 0xe4, 0x2a, 0xaa, 0x29, 0x07, 0xd0, 0x2a, 0xcc,
+  0xb8, 0x3b, 0xe5, 0x4b, 0x20, 0xe7, 0xcb, 0x7f, 0x28, 0x92, 0x84, 0x23, 0x13, 0x87, 0x44, 0x57,
+  0x68, 0xaa, 0xf0, 0x56, 0xc4, 0xc0, 0x01, 0xc3, 0x59, 0xb2, 0x87, 0x99, 0x97, 0x02, 0x01, 0x27,
+  0x83, 0x5c, 0xb7, 0x86, 0xbf, 0xac, 0xe6, 0xad, 0x91, 0x48, 0x2d, 0x95, 0x6e, 0x4d, 0x94, 0x88,
+  0xb2, 0xd1, 0x9b, 0xa7, 0xca, 0x91, 0xc0, 0xf1, 0xb4, 0xa8, 0xc1, 0x0e, 0xae, 0x68, 0x70, 0xc5,
+  0x5e, 0x95, 0x8c, 0x8a, 0x07, 0xe1, 0xf3, 0x8d, 0xd9, 0x82, 0x84, 0x09, 0x5d, 0x94, 0x09, 0x0b,
+  0x4e, 0xed, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x8f, 0xf2, 0x44, 0x50, 0x0b, 0xa8, 0x40, 0xc5, 0xd1, 0xb3,
+  0x57, 0x0c, 0x47, 0x5b, 0xe1, 0x51, 0x98, 0x7f, 0x1b, 0x6a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x8f, 0xf2, 0x44, 0x50, 0x0b, 0xa8, 0x40, 0xc5, 0xd1,
+  0xb3, 0x57, 0x0c, 0x47, 0x5b, 0xe1, 0x51, 0x98, 0x7f, 0x1b, 0x6a, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00,
+  0xa2, 0x77, 0xf3, 0x1d, 0x71, 0x09, 0x47, 0x1c, 0x6f, 0x39, 0x6b, 0xec, 0xbd, 0x14, 0x9a, 0xa4,
+  0x6e, 0xec, 0xe8, 0x7d, 0xfa, 0x5a, 0x52, 0x98, 0xc7, 0x16, 0xe3, 0x14, 0x7c, 0x20, 0x06, 0x8d,
+  0xc6, 0xd5, 0x27, 0x01, 0x78, 0x05, 0x71, 0xe3, 0xaa, 0x70, 0xcc, 0x56, 0xc2, 0x73, 0x0d, 0xb7,
+  0xa8, 0x36, 0xa4, 0x34, 0x2d, 0xe5, 0x21, 0x76, 0x60, 0xe4, 0xef, 0x7b, 0x9b, 0x3e, 0x00, 0xc3,
+  0xf8, 0xe9, 0x51, 0x2e, 0x7d, 0x59, 0x8a, 0x82, 0x1f, 0xd1, 0x65, 0x1b, 0x8e, 0xbe, 0x6d, 0xd5,
+  0xab, 0x43, 0xbd, 0x3f, 0xc6, 0x91, 0x4a, 0xd4, 0x56, 0x3a, 0xb7, 0x4b, 0x7b, 0xd1, 0xc1, 0xe2,
+  0xa3, 0xae, 0xc7, 0x3d, 0x90, 0xb6, 0x04, 0x05, 0x45, 0xe8, 0x45, 0x31, 0x6b, 0xbc, 0xe0, 0x14,
+  0xed, 0xda, 0xce, 0xf8, 0x87, 0xca, 0xda, 0x08, 0x5d, 0x7c, 0x89, 0xbb, 0xe1, 0xe9, 0x17, 0x00,
+  0x78, 0x7a, 0x06, 0xa9, 0x47, 0x79, 0xf4, 0x6a, 0x99, 0xa8, 0x3a, 0x6f, 0xe5, 0xf1, 0x82, 0xa6,
+  0x1a, 0xa3, 0xfb, 0xfd, 0x1b, 0xe4, 0xd2, 0x0e, 0x52, 0x1e, 0x04, 0x38, 0x4b, 0xf5, 0x17, 0xb2,
+  0x55, 0xc9, 0x2a, 0xbb, 0x1b, 0x8f, 0xe3, 0x54, 0xcc, 0xcb, 0x42, 0x50, 0x9b, 0x30, 0x43, 0x38,
+  0xf5, 0x2a, 0xe7, 0x71, 0x04, 0x7f, 0xb5, 0x1d, 0xe2, 0x7b, 0xeb, 0xf4, 0x90, 0x53, 0x73, 0x42,
+  0xdb, 0x3b, 0x19, 0xe1, 0x8d, 0xdb, 0x86, 0x66, 0x0d, 0xed, 0x77, 0xbf, 0xb2, 0x51, 0xd5, 0xf1,
+  0xa2, 0x94, 0x59, 0xae, 0x8f, 0x49, 0x4e, 0xe0, 0xa6, 0x45, 0x9d, 0x3a, 0x89, 0xaa, 0xb6, 0x61,
+  0x12, 0x61, 0xad, 0x7f, 0x03, 0x4d, 0xb0, 0xc6, 0x9a, 0x60, 0xc4, 0x6c, 0x9d, 0xc6, 0xa7, 0x93,
+  0x1b, 0x27, 0x6b, 0x76, 0xbd, 0x13, 0x8e, 0x92, 0x49, 0x78, 0x2d, 0x54, 0xa7, 0x16, 0x71, 0x01,
+  0x8f, 0xa6, 0xf1, 0xe3, 0xd9, 0x7e, 0x12, 0x75, 0x15, 0x31, 0xd5, 0x3c, 0xa0, 0x2c, 0xbc, 0xc1,
+  0x0c, 0x87, 0xa8, 0x3a, 0x02, 0x87, 0x7d, 0xe5, 0x76, 0xd8, 0xa0, 0x90, 0x97, 0x80, 0xb0, 0x5b,
+  0x77, 0x6e, 0x3a, 0xcd, 0x9f, 0x88, 0xc8, 0xff, 0xe3, 0xf6, 0x16, 0xa1, 0x9c, 0xe2, 0x98, 0x74,
+  0x45, 0x12, 0xf9, 0x88, 0x78, 0xd8, 0x62, 0x1e, 0xff, 0xeb, 0x68, 0x26, 0xa9, 0x64, 0x07, 0xfc,
+  0xa7, 0x58, 0x49, 0xfd, 0x3b, 0x92, 0x83, 0x29, 0xd1, 0xaa, 0xa2, 0x66, 0x76, 0x38, 0x62, 0x9e,
+  0x88, 0x55, 0x83, 0xa6, 0x9e, 0xc1, 0xa2, 0x73, 0xec, 0x03, 0x70, 0x72, 0xb3, 0xd4, 0x01, 0x07,
+  0xd3, 0xbd, 0xba, 0xe7, 0xf5, 0x98, 0xb6, 0x0f, 0x92, 0xa5, 0xf2, 0x9e, 0x44, 0x2d, 0xbb, 0x12,
+  0x1d, 0xbc, 0x1f, 0x63, 0x60, 0x3a, 0xf4, 0xd9, 0xb1, 0x8c, 0x59, 0xc9, 0xc4, 0xa9, 0x77, 0x31,
+  0x31, 0x82, 0x01, 0xd0, 0x30, 0x82, 0x01, 0xcc, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x70, 0x25,
+  0x22, 0x46, 0xb2, 0xc0, 0xa9, 0x51, 0x32, 0xb1, 0xd2, 0xa3, 0xa2, 0x1c, 0xf5, 0x61, 0x90, 0x43,
+  0x95, 0x99, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x01, 0x80, 0x53, 0x5f, 0x07, 0x58, 0x7a, 0x77, 0x36, 0x03, 0x4e, 0xa8, 0x30, 0x83,
+  0x5d, 0x9b, 0xad, 0x4a, 0x1d, 0x08, 0xd9, 0xc5, 0x95, 0x28, 0x81, 0xb9, 0x89, 0x62, 0x5b, 0x03,
+  0xf2, 0x2c, 0xf0, 0xf1, 0x86, 0x01, 0x13, 0x5d, 0xb6, 0xc2, 0x30, 0x93, 0xa3, 0x0f, 0x37, 0x24,
+  0x89, 0x60, 0xfd, 0x0b, 0x43, 0x84, 0x79, 0x21, 0xed, 0x57, 0x89, 0x7f, 0x63, 0xf0, 0xf2, 0x82,
+  0x01, 0x5d, 0x39, 0x8a, 0x1c, 0xe3, 0x37, 0xff, 0x92, 0xc2, 0xbd, 0x0e, 0x5a, 0x84, 0x05, 0xe2,
+  0x50, 0x11, 0x58, 0xec, 0x2f, 0x69, 0x3d, 0xbe, 0x14, 0xe2, 0x45, 0x36, 0x3b, 0x49, 0x1d, 0x10,
+  0xf2, 0x53, 0x99, 0x4f, 0x96, 0x05, 0x48, 0xba, 0xfe, 0xb5, 0x6e, 0xf4, 0x4f, 0x48, 0xc6, 0x82,
+  0xaa, 0x80, 0x31, 0x07, 0x42, 0x81, 0xdc, 0x37, 0xca, 0xd4, 0xaf, 0xd0, 0x7b, 0x29, 0xeb, 0x62,
+  0x7c, 0x98, 0x5a, 0xf2, 0x35, 0xaf, 0x75, 0x24, 0xad, 0x3d, 0x1e, 0xe8, 0xa8, 0xaa, 0xfd, 0x6a,
+  0xd6, 0x6e, 0xed, 0xdd, 0x00, 0x7e, 0x2c, 0x9a, 0x57, 0xbf, 0xd0, 0x41, 0x36, 0x18, 0x76, 0x9e,
+  0x29, 0x70, 0x88, 0xfd, 0x1e, 0x5f, 0x5f, 0xd7, 0x72, 0x1a, 0xda, 0xf4, 0xe8, 0x55, 0x7e, 0x2d,
+  0xf4, 0x9a, 0x43, 0x9b, 0x06, 0xcf, 0x28, 0x28, 0xd7, 0x00, 0x24, 0xf9, 0x9b, 0xc4, 0xa6, 0xa8,
+  0x6e, 0x6d, 0x3f, 0x16, 0x0e, 0x37, 0x56, 0x74, 0x02, 0x5c, 0x81, 0xae, 0x21, 0x1a, 0x44, 0xf3,
+  0x16, 0xbe, 0xf3, 0x60, 0xf8, 0x33, 0x34, 0xab, 0x21, 0xdb, 0x31, 0x56, 0xa6, 0x79, 0xdc, 0x2a,
+  0xcc, 0x6c, 0x57, 0x2c, 0xff, 0x56, 0x5d, 0xb8, 0x45, 0x86, 0xd5, 0xeb, 0x63, 0xc2, 0x0f, 0xc8,
+  0xb8, 0xc2, 0x17, 0x58, 0xf0, 0x5d, 0xc0, 0xc2, 0x4c, 0x18, 0x3d, 0x0f, 0x15, 0x05, 0x62, 0xca,
+  0x74, 0x85, 0x46, 0x43, 0x19, 0x7f, 0x55, 0xef, 0xa8, 0xbc, 0x74, 0x05, 0xbe, 0x50, 0x35, 0x83,
+  0x22, 0x6c, 0xa1, 0x8a, 0xf0, 0xe0, 0x3b, 0xac, 0x2a, 0xee, 0x40, 0x5b, 0x01, 0xbe, 0x34, 0x3a,
+  0x65, 0x3b, 0xde, 0x60, 0x90, 0x7b, 0x45, 0x79, 0x44, 0x24, 0xf6, 0x12, 0xf9, 0x04, 0x09, 0xec,
+  0x39, 0x95, 0x33, 0x0f, 0xb5, 0x77, 0x65, 0xb6, 0x1d, 0x00, 0xa2, 0x78, 0x4b, 0xc9, 0x9a, 0x76,
+  0xb0, 0x56, 0x94, 0xb8, 0xa1, 0xc1, 0xd9, 0x56, 0xe4, 0x74, 0xee, 0x2e, 0x16, 0x4d, 0xae, 0x40,
+  0xcf, 0xf1, 0xaa, 0x61, 0xac, 0x06, 0x3a, 0x3b, 0xe9, 0xf4, 0x09, 0x36, 0xa8, 0x0c, 0x42, 0x3b,
+  0x3e, 0x04, 0xd9, 0x4c, 0x75, 0xeb, 0x43, 0x41, 0x11, 0x5a, 0xb8, 0xff, 0x8d, 0xaf, 0x79, 0x50,
+  0xff, 0x72, 0xa6, 0xa4, 0xba, 0xde, 0xe0, 0x03, 0x96, 0xca, 0x55, 0x56, 0xfe, 0x91, 0x1f, 0xf6,
+  0x79, 0xbd, 0xa4, 0x9a, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x04, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x62,
+  0x34, 0x16, 0x1f, 0x52, 0x09, 0x02, 0x83, 0xf4, 0x74, 0x86, 0xf3, 0xf5, 0xbe, 0xe4, 0x7c, 0xec,
+  0xe3, 0x7d, 0x29, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x31,
+  0x31, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x31, 0x31,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
+  0x00, 0x9d, 0x39, 0x0e, 0x96, 0x5e, 0xb8, 0x06, 0x19, 0xad, 0xf9, 0xfd, 0xcf, 0xcd, 0xc4, 0x8f,
+  0xd8, 0xd5, 0x8a, 0xc1, 0xdf, 0x84, 0x0c, 0x34, 0x4e, 0x0d, 0xf9, 0x60, 0x7c, 0xd5, 0xc1, 0x8e,
+  0xc1, 0x40, 0x52, 0xda, 0xc6, 0xd0, 0x41, 0x4f, 0xa7, 0x16, 0xc9, 0x97, 0x89, 0x8c, 0x5e, 0x7a,
+  0xea, 0x3e, 0xe9, 0xc0, 0x1e, 0x57, 0x21, 0xda, 0x94, 0x8b, 0xba, 0xd6, 0xcf, 0x3d, 0xb0, 0x28,
+  0x98, 0xa9, 0x61, 0xc4, 0x5b, 0xc3, 0xf5, 0x46, 0xfb, 0x3a, 0x57, 0xc1, 0x78, 0xa0, 0x1d, 0xd7,
+  0x35, 0x72, 0xb4, 0x37, 0xc8, 0xbe, 0xf0, 0xb3, 0x7d, 0xb7, 0xfb, 0x2f, 0x6a, 0x7a, 0x4e, 0x28,
+  0xb3, 0xe6, 0x79, 0xdc, 0xe0, 0xf7, 0x5f, 0x66, 0xa4, 0x56, 0x79, 0x8e, 0x2b, 0xa5, 0x06, 0xe2,
+  0x3d, 0x48, 0xb3, 0x4f, 0x7d, 0xba, 0x4a, 0x44, 0x33, 0xbb, 0x14, 0x13, 0x54, 0x90, 0x89, 0x80,
+  0xe9, 0x57, 0x43, 0xf7, 0xb1, 0x59, 0xec, 0xbf, 0x41, 0xe1, 0xf3, 0xb5, 0x19, 0xd1, 0x3d, 0x2b,
+  0x05, 0x66, 0x58, 0xb5, 0xcd, 0x2a, 0xfe, 0x54, 0xa0, 0x13, 0xe9, 0x89, 0x4c, 0xd1, 0xb8, 0xd3,
+  0xf3, 0xc9, 0x1c, 0xe4, 0xe4, 0xa4, 0x97, 0xc6, 0x55, 0x5b, 0x78, 0xb0, 0x4f, 0x90, 0x52, 0x82,
+  0x32, 0xd0, 0xc7, 0x0a, 0xa6, 0x25, 0xfb, 0xf1, 0x13, 0xfc, 0x78, 0xeb, 0x58, 0xd6, 0x33, 0x24,
+  0xc9, 0xa7, 0xb9, 0x14, 0x8f, 0x9d, 0x05, 0xbd, 0x44, 0x2e, 0x76, 0xb1, 0x00, 0x9e, 0x09, 0xd6,
+  0x4a, 0x17, 0x6c, 0x9c, 0xf4, 0xa2, 0xa6, 0xe7, 0x48, 0x96, 0x29, 0x6e, 0x62, 0x07, 0xd9, 0xd2,
+  0x84, 0x18, 0xd7, 0x3b, 0x29, 0x8d, 0x2d, 0x13, 0x88, 0xbd, 0xed, 0x78, 0x06, 0x5e, 0x8d, 0x4e,
+  0xb0, 0xed, 0xf7, 0x60, 0x4b, 0x81, 0x71, 0x6e, 0x31, 0x21, 0x95, 0x8f, 0xed, 0x05, 0x86, 0x49,
+  0xff, 0xc6, 0x66, 0xf6, 0xa5, 0xf2, 0x56, 0xb3, 0x1e, 0xb6, 0x25, 0xac, 0x2c, 0x0d, 0x43, 0xfb,
+  0xac, 0xa6, 0x49, 0xe7, 0xae, 0x05, 0x79, 0xd3, 0x98, 0xad, 0xdf, 0xae, 0x13, 0x7a, 0xd5, 0x78,
+  0x14, 0xcb, 0xe7, 0x66, 0x85, 0xf8, 0x50, 0x50, 0xd2, 0x60, 0xfa, 0x9d, 0x94, 0x71, 0x4e, 0x9a,
+  0xd7, 0x9e, 0x17, 0x06, 0xc2, 0x94, 0x07, 0xb7, 0xf7, 0x07, 0xf0, 0x23, 0x11, 0x50, 0x58, 0x16,
+  0x6e, 0x52, 0xcd, 0x83, 0x06, 0xfb, 0x33, 0x7b, 0x6f, 0x30, 0x01, 0x62, 0x0a, 0x63, 0x32, 0x2e,
+  0x99, 0xee, 0x26, 0xa2, 0x07, 0x02, 0x6b, 0x45, 0xd1, 0x46, 0x2c, 0xa1, 0x3f, 0x9b, 0xfe, 0x58,
+  0x20, 0xc8, 0xd8, 0x3e, 0xc5, 0xc0, 0x11, 0xa0, 0x30, 0xac, 0x0d, 0x6b, 0x4b, 0x45, 0xab, 0xca,
+  0x10, 0x66, 0x77, 0x35, 0x57, 0x72, 0x67, 0xc2, 0x99, 0xe9, 0x9b, 0xc7, 0x2a, 0x5c, 0x84, 0x8f,
+  0x55, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x88, 0xe3, 0x9c, 0xbd, 0x68, 0xf0, 0x93, 0x4d, 0x10, 0xf8, 0x70,
+  0x33, 0x27, 0x69, 0x5f, 0x99, 0x27, 0x09, 0x99, 0xdd, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x88, 0xe3, 0x9c, 0xbd, 0x68, 0xf0, 0x93, 0x4d, 0x10, 0xf8,
+  0x70, 0x33, 0x27, 0x69, 0x5f, 0x99, 0x27, 0x09, 0x99, 0xdd, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00, 0x91,
+  0x61, 0x62, 0xff, 0x17, 0xb7, 0x31, 0x14, 0x72, 0x53, 0x61, 0xc4, 0xfd, 0xc9, 0x45, 0xfa, 0x39,
+  0x58, 0x0c, 0x9a, 0xc0, 0x45, 0x50, 0xd3, 0xb1, 0x95, 0x85, 0x0e, 0x3c, 0xc7, 0xbe, 0xa2, 0x81,
+  0x99, 0x19, 0x9e, 0x80, 0xa6, 0x35, 0xa4, 0x56, 0x85, 0xea, 0x91, 0x2c, 0xf8, 0xd9, 0x4e, 0x7c,
+  0xf4, 0x59, 0x81, 0xd2, 0xb9, 0x85, 0xe0, 0x14, 0x6f, 0xd3, 0xfa, 0xb4, 0xf9, 0xcf, 0x4b, 0x9c,
+  0x81, 0x55, 0x67, 0xe9, 0x48, 0xee, 0x9e, 0xd8, 0x89, 0xe0, 0xba, 0x3e, 0x04, 0x86, 0x8e, 0x42,
+  0xf0, 0x72, 0x61, 0x76, 0xdb, 0x25, 0xea, 0x82, 0x2f, 0x78, 0xc6, 0x5a, 0xa9, 0xef, 0x85, 0x03,
+  0xb9, 0xa1, 0x66, 0x8e, 0xb2, 0xc0, 0xfe, 0xad, 0x6b, 0xda, 0x32, 0xd4, 0x85, 0x2a, 0xa6, 0xcd,
+  0xde, 0xce, 0xe1, 0x64, 0x5a, 0x09, 0x63, 0xf0, 0xf1, 0x68, 0x66, 0xa3, 0x41, 0x72, 0x67, 0xd2,
+  0x56, 0x1c, 0x53, 0x58, 0x4a, 0xd6, 0x8b, 0xfc, 0x15, 0xb5, 0x8b, 0xeb, 0x6d, 0x84, 0x37, 0x77,
+  0x42, 0xae, 0x9e, 0x21, 0x9c, 0x4b, 0x4b, 0x4e, 0x32, 0x78, 0x07, 0x81, 0x19, 0xf2, 0xce, 0x4c,
+  0xc4, 0xaf, 0xa3, 0xe7, 0x67, 0x4f, 0x8f, 0xd2, 0xda, 0x73, 0x7f, 0x87, 0xff, 0x57, 0xbf, 0x4a,
+  0x15, 0x98, 0x9c, 0xf1, 0x1c, 0x1f, 0x89, 0x91, 0x4c, 0xcf, 0xa8, 0xfb, 0x38, 0x73, 0xb7, 0xb6,
+  0xa1, 0x80, 0xb2, 0x39, 0xe6, 0x43, 0xbf, 0x4d, 0xb1, 0x4f, 0xbf, 0x4c, 0x13, 0x98, 0xa5, 0x52,
+  0xc7, 0x50, 0xe2, 0x17, 0xc7, 0x0b, 0xee, 0xcb, 0xa9, 0x3a, 0x93, 0xa1, 0x89, 0xb3, 0x39, 0x04,
+  0x4e, 0x75, 0xc6, 0x40, 0x18, 0x80, 0x95, 0xed, 0xd3, 0x79, 0x1c, 0xa2, 0xe2, 0x6e, 0x65, 0x85,
+  0xec, 0xbf, 0x62, 0xe5, 0x5b, 0xd3, 0x07, 0xf0, 0x6a, 0x43, 0xd5, 0xee, 0x2f, 0x3c, 0x43, 0x3e,
+  0x74, 0xdb, 0x2b, 0xec, 0x01, 0x50, 0xc9, 0x09, 0xf9, 0xeb, 0x39, 0xcc, 0x4d, 0x6a, 0x38, 0x15,
+  0xe6, 0x26, 0xb9, 0x32, 0xe2, 0xf4, 0x5f, 0x9d, 0xac, 0x52, 0x55, 0xe8, 0x73, 0xf4, 0x4b, 0xf3,
+  0xf5, 0x3b, 0x13, 0x44, 0x07, 0x2f, 0x5f, 0x3a, 0x45, 0x38, 0xd5, 0x2b, 0xce, 0x63, 0x41, 0x41,
+  0x9d, 0x04, 0x31, 0xa7, 0x31, 0x1e, 0x20, 0xfc, 0xd9, 0xab, 0x70, 0x4e, 0xd4, 0xc1, 0x75, 0xff,
+  0x76, 0xa8, 0x9c, 0x89, 0x00, 0xc3, 0xb9, 0x15, 0x30, 0xf4, 0xa0, 0x19, 0x1b, 0xab, 0xad, 0x41,
+  0x72, 0x75, 0x41, 0x26, 0x58, 0x8f, 0xe1, 0x33, 0xd5, 0xae, 0x2b, 0xf0, 0xb9, 0x6f, 0x3b, 0x35,
+  0x65, 0xde, 0x2a, 0x99, 0xed, 0xc3, 0x3f, 0xb0, 0xb6, 0x1d, 0xe9, 0x2f, 0x38, 0xc2, 0xf8, 0x57,
+  0xd4, 0xe0, 0x06, 0x24, 0x71, 0xe5, 0x90, 0xf5, 0xfc, 0x4d, 0x11, 0xa7, 0xb7, 0xfc, 0xb2
+};
+
+UINT32 gPkNewRsa3072Sha384Size = sizeof(gPkNewRsa3072Sha384);
\ No newline at end of file
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c
new file mode 100644
index 0000000000..5d59baf091
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkNewRsa4096Sha256[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x94, 0x07, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x07, 0x78, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x04,
+  0xff, 0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x3b, 0x44, 0x8b, 0x2f, 0xc5, 0x9a, 0xca, 0x99, 0x02, 0x57, 0x60, 0xc2, 0x22, 0x9e, 0xe1, 0x4e,
+  0x8d, 0x77, 0xbb, 0x21, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x35, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x35, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
+  0x01, 0x00, 0xb6, 0x62, 0x79, 0x48, 0x3a, 0x7d, 0xd1, 0xbc, 0x10, 0xb4, 0x66, 0x71, 0x34, 0x75,
+  0x72, 0x9c, 0x9e, 0x38, 0x1b, 0x65, 0x9f, 0x0b, 0x4f, 0xdc, 0x66, 0xb2, 0x46, 0x4b, 0x31, 0x30,
+  0xf6, 0xd6, 0xe4, 0x3d, 0x07, 0x95, 0x72, 0x4f, 0xec, 0x50, 0x3c, 0x22, 0x35, 0x43, 0xeb, 0x7c,
+  0xa1, 0x62, 0x17, 0xbd, 0xc7, 0xda, 0xe3, 0x6b, 0x7e, 0xe0, 0xb0, 0x02, 0x31, 0xd5, 0x33, 0x6c,
+  0xc6, 0xaf, 0x21, 0x54, 0x7f, 0x6f, 0xe6, 0x9b, 0x62, 0xc4, 0xde, 0xc5, 0x17, 0xf2, 0x5e, 0xad,
+  0x6a, 0xf6, 0x41, 0x96, 0xd8, 0x98, 0xd4, 0x85, 0xea, 0x58, 0x6b, 0x2f, 0x5d, 0xae, 0xc1, 0xcb,
+  0xc2, 0x7d, 0x9d, 0x03, 0xde, 0xd8, 0x24, 0x5b, 0xec, 0xb9, 0x0e, 0x56, 0x86, 0x19, 0x5e, 0x9c,
+  0xc4, 0x7f, 0xaa, 0x79, 0x37, 0xab, 0xca, 0x45, 0x66, 0x43, 0x6b, 0xab, 0xf9, 0xfa, 0x13, 0xdb,
+  0x05, 0xd2, 0x31, 0xc2, 0x40, 0xc3, 0xeb, 0x15, 0x2a, 0x09, 0x97, 0x7b, 0x87, 0xa2, 0x30, 0x1a,
+  0x66, 0x73, 0xf6, 0x93, 0x80, 0xaf, 0xfc, 0x1a, 0xba, 0xbf, 0x51, 0xdb, 0x06, 0x75, 0x46, 0xb7,
+  0xdc, 0x2c, 0xa4, 0x93, 0x58, 0x01, 0x4d, 0x95, 0x01, 0x81, 0x52, 0xe5, 0xd8, 0xf8, 0xc6, 0x53,
+  0x22, 0xee, 0xf1, 0x45, 0xe4, 0xfa, 0x7b, 0xac, 0x81, 0xd9, 0x98, 0x8d, 0x00, 0x03, 0xf0, 0xd3,
+  0x41, 0x91, 0xa9, 0x34, 0x40, 0xf5, 0xd2, 0x7a, 0xe3, 0x57, 0x67, 0x37, 0x6b, 0x27, 0x3b, 0x10,
+  0x21, 0x7c, 0xa2, 0x77, 0x57, 0xfe, 0x9b, 0x9f, 0x91, 0x3e, 0x8f, 0x19, 0x1b, 0x8b, 0xb3, 0xa7,
+  0x46, 0x45, 0xdb, 0x9e, 0xf6, 0x90, 0x1a, 0xa9, 0x9c, 0x64, 0xdc, 0xf3, 0x10, 0x2b, 0x32, 0x88,
+  0xb5, 0xd7, 0x3d, 0x94, 0x64, 0xfd, 0x0e, 0x15, 0xe8, 0x3a, 0x69, 0x33, 0x80, 0x7a, 0x31, 0xfc,
+  0x74, 0xc3, 0xa9, 0xfc, 0xad, 0xce, 0x6b, 0xe5, 0x38, 0xb3, 0x33, 0xf6, 0xc4, 0x48, 0x43, 0xf3,
+  0x81, 0xd0, 0xcd, 0x87, 0x54, 0x64, 0xf3, 0xbd, 0x96, 0x79, 0x36, 0x3a, 0x8c, 0x05, 0x80, 0xd8,
+  0x4c, 0x83, 0x73, 0x36, 0x31, 0xd9, 0x76, 0x62, 0xc1, 0x3d, 0x44, 0xe6, 0x02, 0xc9, 0x50, 0xa4,
+  0x01, 0x67, 0xb5, 0x77, 0xb9, 0x1c, 0x83, 0xb8, 0xe8, 0x16, 0x9d, 0x48, 0x70, 0x1e, 0xf0, 0x7c,
+  0x0f, 0x7c, 0x77, 0xac, 0x4b, 0xda, 0xd4, 0x2a, 0x10, 0x40, 0x2b, 0x7a, 0x5e, 0xba, 0x35, 0x83,
+  0xa9, 0x5a, 0x52, 0x18, 0x07, 0x73, 0x10, 0xaf, 0x09, 0x31, 0xd5, 0xdc, 0xdb, 0x80, 0xd0, 0xa7,
+  0x7b, 0x4f, 0x06, 0x47, 0x4f, 0x22, 0xd9, 0xb0, 0x8e, 0xca, 0x61, 0x17, 0x37, 0x97, 0x8b, 0x2f,
+  0xf0, 0xca, 0x68, 0x6d, 0xbf, 0x76, 0xfe, 0xe6, 0xe3, 0x47, 0xbd, 0xb4, 0xed, 0x7f, 0x32, 0x18,
+  0x82, 0xfd, 0x63, 0xb3, 0xf1, 0x99, 0xab, 0x57, 0x00, 0x7b, 0xe2, 0x62, 0x20, 0xb5, 0x17, 0x70,
+  0xa1, 0x3d, 0xf1, 0x94, 0x09, 0xcf, 0xde, 0x94, 0x9f, 0x7d, 0xc9, 0xd2, 0x08, 0x66, 0x04, 0x85,
+  0xa6, 0xb3, 0x63, 0xde, 0xce, 0x86, 0x05, 0x6e, 0x8c, 0x8e, 0x63, 0x06, 0xf2, 0x63, 0xd6, 0x97,
+  0x14, 0x46, 0x1e, 0xf0, 0x25, 0x63, 0xa1, 0x14, 0xaa, 0x68, 0x13, 0xaf, 0xd9, 0x5a, 0xd5, 0x10,
+  0x91, 0xe2, 0x2d, 0xff, 0x02, 0xb9, 0x5a, 0xec, 0x5a, 0x44, 0x6e, 0x48, 0xf7, 0x8b, 0x1b, 0x1c,
+  0x44, 0xac, 0x07, 0x69, 0x67, 0xc8, 0x23, 0x92, 0x74, 0xb3, 0x49, 0x84, 0xb0, 0xe9, 0xbc, 0xd8,
+  0xe9, 0x89, 0x6a, 0xf4, 0xc5, 0xe5, 0xf6, 0xb0, 0xa8, 0x2e, 0xaa, 0xb6, 0x90, 0x19, 0x0a, 0x5f,
+  0x5b, 0x58, 0xce, 0x8b, 0xe2, 0x4b, 0xee, 0x39, 0x74, 0x92, 0x90, 0xd1, 0x11, 0xb8, 0x36, 0x24,
+  0x42, 0x75, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x73, 0xc0, 0x61, 0x65, 0x69, 0x11, 0xcc, 0xcd, 0x43, 0x26,
+  0x5f, 0x20, 0x0e, 0xc0, 0xb9, 0x08, 0xa3, 0x30, 0x25, 0xb0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x73, 0xc0, 0x61, 0x65, 0x69, 0x11, 0xcc, 0xcd, 0x43,
+  0x26, 0x5f, 0x20, 0x0e, 0xc0, 0xb9, 0x08, 0xa3, 0x30, 0x25, 0xb0, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+  0x57, 0x9d, 0x92, 0x11, 0x4a, 0x30, 0x8f, 0x17, 0x19, 0x0c, 0x97, 0xea, 0x4c, 0xd7, 0x93, 0x18,
+  0x28, 0x06, 0x09, 0x16, 0xc1, 0x26, 0x59, 0x58, 0x87, 0xee, 0x2a, 0x9f, 0x63, 0x32, 0xcb, 0x66,
+  0x44, 0xa0, 0xe1, 0x63, 0x8c, 0x54, 0x11, 0x5f, 0x73, 0xbd, 0xff, 0x6b, 0xb5, 0x0a, 0xec, 0x7c,
+  0xd1, 0x5c, 0x17, 0x6f, 0x32, 0x1a, 0x28, 0x0b, 0x63, 0xa6, 0x05, 0x9e, 0x13, 0x9b, 0x62, 0xa6,
+  0xca, 0xa5, 0xeb, 0x90, 0x3e, 0x99, 0xae, 0xdb, 0xf0, 0x6d, 0x38, 0x37, 0xf1, 0x29, 0xce, 0x6f,
+  0x15, 0xec, 0x5a, 0xb5, 0x00, 0xd3, 0x80, 0x08, 0xfa, 0x58, 0xa6, 0x82, 0xe6, 0x54, 0xc5, 0xf7,
+  0xcd, 0xa8, 0x0a, 0xc3, 0x1b, 0xf7, 0x60, 0x17, 0xc9, 0xe5, 0xd4, 0x24, 0xa8, 0xe4, 0x4d, 0x1f,
+  0xc7, 0x40, 0x2d, 0x2c, 0x49, 0x99, 0xc0, 0x17, 0xf9, 0x35, 0x63, 0x3c, 0xa1, 0x48, 0xc7, 0x8c,
+  0xc0, 0xc3, 0x6c, 0xf9, 0xb3, 0x83, 0x0d, 0xed, 0xf3, 0x78, 0x23, 0x5c, 0xfe, 0x7e, 0x78, 0x9a,
+  0x94, 0xc6, 0xa3, 0x5b, 0xb6, 0x03, 0xcd, 0x50, 0x92, 0xc3, 0x91, 0x0b, 0x34, 0xdd, 0x85, 0xbe,
+  0xef, 0xa9, 0x93, 0x31, 0x8f, 0x1e, 0xf2, 0x5e, 0xa8, 0xac, 0x0f, 0xcb, 0xf4, 0x60, 0x04, 0x5b,
+  0xed, 0xeb, 0xde, 0x35, 0x20, 0x7c, 0x7b, 0x62, 0xfb, 0xf5, 0x34, 0x1b, 0xab, 0x35, 0xbe, 0x55,
+  0xc3, 0x31, 0x06, 0x93, 0xb8, 0x48, 0x45, 0xd7, 0xa6, 0x41, 0xd4, 0x23, 0x6d, 0xfa, 0x0c, 0x90,
+  0x9e, 0x0b, 0xea, 0x5e, 0xed, 0xdf, 0xcb, 0x95, 0x0b, 0x96, 0x5f, 0x27, 0x6a, 0xee, 0xa7, 0x3e,
+  0x0d, 0xea, 0x88, 0x73, 0x0d, 0x37, 0x0e, 0xc5, 0xd9, 0x48, 0x2f, 0xcc, 0x25, 0x17, 0x1e, 0x61,
+  0xa8, 0xcd, 0x3d, 0x66, 0x73, 0xe3, 0xd4, 0x40, 0xa5, 0x46, 0x9b, 0x08, 0x55, 0xb2, 0x0f, 0x44,
+  0x85, 0xc3, 0xd9, 0x4f, 0xf9, 0xca, 0x1f, 0xba, 0x0d, 0x9d, 0xe1, 0xb3, 0x77, 0x3f, 0xc9, 0x82,
+  0xde, 0xbf, 0xff, 0xc1, 0x0f, 0xc8, 0x03, 0x4e, 0x39, 0x2b, 0x54, 0x60, 0xcf, 0x91, 0x75, 0xdc,
+  0x59, 0x39, 0xbc, 0x3f, 0x8d, 0x0c, 0xa3, 0xba, 0x3d, 0x77, 0x2d, 0x25, 0x79, 0x52, 0xcf, 0x5c,
+  0xef, 0xc1, 0x61, 0xe2, 0xf1, 0xd4, 0x63, 0x13, 0xbc, 0xf4, 0x53, 0x89, 0xed, 0x0d, 0x22, 0x18,
+  0x72, 0xf4, 0x30, 0x29, 0x1c, 0x04, 0x38, 0xf3, 0x4a, 0xc3, 0x24, 0xe1, 0x23, 0x90, 0xbb, 0x51,
+  0x38, 0x98, 0x73, 0x7c, 0x05, 0x07, 0x64, 0x01, 0x59, 0x2e, 0x85, 0x8d, 0xb6, 0xe8, 0x8f, 0xe4,
+  0xd8, 0x9a, 0xf9, 0xc4, 0x77, 0x07, 0xd2, 0x8b, 0x24, 0x51, 0x49, 0x9c, 0xf3, 0x90, 0x30, 0x14,
+  0xa7, 0xb4, 0xb5, 0xb7, 0xec, 0x35, 0x09, 0x0e, 0xd5, 0x09, 0xfd, 0x20, 0xcf, 0x86, 0x53, 0x2c,
+  0xaa, 0x43, 0x0e, 0x28, 0x6b, 0x5c, 0x11, 0x82, 0x8d, 0xec, 0x5d, 0x68, 0x9a, 0x3e, 0xd5, 0x20,
+  0xa2, 0xc9, 0x91, 0xcb, 0x27, 0xcd, 0xd0, 0x55, 0x55, 0xed, 0x1d, 0xfe, 0x33, 0x56, 0xe3, 0x19,
+  0x50, 0xf9, 0x6d, 0xb4, 0xd4, 0xaa, 0x31, 0x7f, 0xff, 0xc4, 0x22, 0xf1, 0xac, 0xb7, 0xc6, 0xe5,
+  0xc1, 0x51, 0x8b, 0xf9, 0xf2, 0x15, 0x2c, 0x72, 0xdb, 0x50, 0x85, 0xd8, 0x01, 0x7d, 0xc7, 0x85,
+  0xdb, 0x21, 0x47, 0x78, 0x4a, 0xcb, 0xdc, 0xcb, 0xa6, 0x50, 0x31, 0x35, 0xe9, 0x5e, 0xc3, 0x5d,
+  0x0a, 0xc3, 0xda, 0x61, 0x1a, 0x60, 0xd2, 0xd9, 0x2b, 0x3a, 0x7a, 0xc2, 0x92, 0x9c, 0x3b, 0x60,
+  0x1b, 0xb1, 0x71, 0x06, 0x00, 0x4a, 0x1f, 0x2e, 0x2f, 0xa2, 0xf9, 0x64, 0x5a, 0x2b, 0x15, 0x2c,
+  0xc0, 0xae, 0xf8, 0x4a, 0x5e, 0x46, 0xc0, 0xaa, 0xba, 0xe5, 0x7e, 0xa9, 0xbf, 0x26, 0x78, 0x46,
+  0x31, 0x82, 0x02, 0x50, 0x30, 0x82, 0x02, 0x4c, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x3b, 0x44,
+  0x8b, 0x2f, 0xc5, 0x9a, 0xca, 0x99, 0x02, 0x57, 0x60, 0xc2, 0x22, 0x9e, 0xe1, 0x4e, 0x8d, 0x77,
+  0xbb, 0x21, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x02, 0x00, 0x06, 0x6f, 0x06, 0xe8, 0xd0, 0xa6, 0x98, 0x26, 0x9f, 0xf2, 0xd2, 0xa8,
+  0x50, 0x96, 0xa1, 0x34, 0xe9, 0xd5, 0xcd, 0x31, 0x40, 0x78, 0x2f, 0x58, 0x80, 0xa3, 0xf9, 0x69,
+  0x9b, 0xd8, 0x81, 0xe2, 0x32, 0xa7, 0xa6, 0x52, 0xc4, 0xb4, 0x3b, 0xf6, 0xe8, 0x14, 0x38, 0xe8,
+  0x08, 0x8d, 0x96, 0x17, 0x05, 0x15, 0xc5, 0x80, 0x61, 0xd7, 0x43, 0x20, 0xdf, 0x90, 0x85, 0x4a,
+  0xaa, 0x18, 0x5b, 0xb5, 0x0e, 0xdc, 0xb6, 0x13, 0xbf, 0x6e, 0xe8, 0x1c, 0x15, 0xec, 0xea, 0xc1,
+  0x80, 0x96, 0xbd, 0x90, 0xdf, 0x52, 0x89, 0xfa, 0x12, 0xa4, 0xc4, 0xfc, 0xcb, 0xc6, 0x78, 0xea,
+  0xee, 0xff, 0x47, 0x9c, 0xa2, 0xd5, 0xaa, 0xe8, 0x06, 0x89, 0xe1, 0xdc, 0xcd, 0x91, 0x76, 0x61,
+  0x92, 0x8a, 0x2f, 0x88, 0xb5, 0x10, 0xd6, 0xa3, 0xbe, 0x0e, 0x9b, 0x6a, 0xbf, 0xdd, 0x5b, 0xdc,
+  0x8d, 0x81, 0x15, 0x84, 0x24, 0x92, 0x64, 0x37, 0x1b, 0x31, 0x7c, 0x4e, 0x88, 0x64, 0xd1, 0x99,
+  0xab, 0x57, 0xc5, 0xc5, 0x74, 0xe7, 0x03, 0x34, 0xf8, 0xc8, 0x0f, 0x05, 0x6f, 0xc6, 0x2c, 0x55,
+  0x82, 0x9b, 0xd5, 0xfd, 0x7e, 0x81, 0x74, 0x5e, 0xbe, 0xee, 0x6a, 0x3a, 0x3c, 0xae, 0x6a, 0x21,
+  0x47, 0x7b, 0x11, 0xb2, 0x7e, 0x84, 0xcb, 0x62, 0x7f, 0xbd, 0x47, 0x4a, 0xbe, 0x33, 0x95, 0xd0,
+  0x49, 0xf0, 0xfc, 0x4d, 0xdc, 0x56, 0x24, 0xa5, 0x13, 0xcc, 0x2f, 0x70, 0xeb, 0x04, 0x38, 0xd1,
+  0xe2, 0xa2, 0x4d, 0xbe, 0x00, 0x4e, 0xa4, 0xee, 0x08, 0x97, 0x56, 0xc4, 0x82, 0xfa, 0x41, 0x24,
+  0x5d, 0xf8, 0xa4, 0xfa, 0x44, 0xc6, 0x88, 0x63, 0x08, 0xc9, 0xc6, 0xd0, 0x07, 0xef, 0x02, 0x1a,
+  0x5e, 0x2a, 0x5f, 0x15, 0x67, 0x35, 0x7f, 0xcf, 0x07, 0x4f, 0x9c, 0xfb, 0x13, 0xe7, 0x79, 0x43,
+  0xa5, 0xd4, 0xc6, 0x20, 0x07, 0x86, 0x8d, 0xdf, 0x5e, 0x94, 0xf8, 0x91, 0xab, 0x05, 0xf1, 0xd6,
+  0x1c, 0x93, 0x1b, 0x33, 0xdb, 0x0f, 0x03, 0x35, 0xbf, 0x93, 0xc9, 0xb9, 0x35, 0x5f, 0x59, 0x50,
+  0xd7, 0xef, 0x23, 0x16, 0xdf, 0x83, 0x6a, 0x6a, 0x3a, 0xc0, 0xc6, 0x74, 0x80, 0xb3, 0x86, 0x83,
+  0xe7, 0xef, 0x08, 0x2d, 0x5a, 0x6c, 0xa9, 0xc7, 0x33, 0x07, 0xe4, 0x22, 0x0f, 0xdf, 0x1f, 0x15,
+  0x0c, 0x56, 0x01, 0xcf, 0x97, 0x50, 0x7e, 0x2c, 0xc5, 0xd4, 0xea, 0x2a, 0x4a, 0x95, 0xcb, 0x55,
+  0xa4, 0x7f, 0xaf, 0x7b, 0xad, 0x10, 0x84, 0x4f, 0x39, 0xbe, 0x19, 0x1a, 0x63, 0x19, 0x8e, 0x24,
+  0x38, 0xca, 0x5b, 0x2b, 0x02, 0x16, 0xa9, 0x29, 0xd0, 0x0c, 0x1b, 0x12, 0xd5, 0x44, 0x0f, 0x17,
+  0x4a, 0x77, 0x3e, 0x46, 0xaa, 0x17, 0x9f, 0xc6, 0xb6, 0x84, 0x73, 0x82, 0x4d, 0xdc, 0x35, 0x3e,
+  0xa3, 0x57, 0x08, 0x89, 0x6a, 0x12, 0x03, 0xd6, 0xc2, 0xb4, 0x3b, 0xae, 0xfe, 0xa0, 0x39, 0x92,
+  0x34, 0xf4, 0x4c, 0x1a, 0x12, 0x96, 0xae, 0xf5, 0x51, 0x27, 0xf6, 0x2b, 0x2e, 0x9a, 0x9a, 0x18,
+  0xd5, 0x77, 0xf0, 0x73, 0x7c, 0x2f, 0x8d, 0xbd, 0x9f, 0xec, 0x15, 0x92, 0x58, 0x5f, 0x69, 0x97,
+  0x23, 0x02, 0x1f, 0xe1, 0x42, 0xb4, 0x55, 0x94, 0x92, 0x89, 0x7a, 0xaf, 0x52, 0x86, 0x4f, 0x70,
+  0x65, 0x6c, 0x84, 0x24, 0x93, 0xc0, 0xac, 0x1b, 0x45, 0xf7, 0x4a, 0x20, 0x9e, 0xc0, 0x00, 0x6b,
+  0x93, 0x97, 0x20, 0xc7, 0x6f, 0x3d, 0x48, 0xd0, 0xe3, 0x21, 0x2e, 0xb7, 0x94, 0x16, 0xb7, 0xa4,
+  0x29, 0xb3, 0xe3, 0x07, 0x7e, 0x3b, 0xc3, 0x1a, 0x89, 0xee, 0x5b, 0xeb, 0xb8, 0x83, 0xb5, 0x15,
+  0xb5, 0x7a, 0xee, 0xec, 0x94, 0x34, 0x8b, 0x88, 0xde, 0x83, 0x70, 0xaa, 0x3b, 0xfc, 0xd3, 0xcc,
+  0x2f, 0xad, 0x35, 0xd4, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x0f,
+  0x71, 0x2e, 0x15, 0x55, 0x8b, 0x4a, 0xc1, 0x31, 0x73, 0x6b, 0x12, 0x3a, 0xbd, 0x29, 0x5d, 0x7b,
+  0xac, 0x57, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x38, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x38,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01,
+  0x00, 0xb5, 0x96, 0xc3, 0x48, 0xea, 0x90, 0xb8, 0x77, 0x42, 0xea, 0x55, 0x12, 0x15, 0x58, 0x91,
+  0x8e, 0x09, 0xae, 0xf5, 0x5c, 0xf6, 0x1a, 0x64, 0x62, 0xa5, 0xc0, 0xf0, 0x54, 0x60, 0xa0, 0xa6,
+  0x9c, 0x11, 0xa8, 0x62, 0x25, 0xa5, 0x6e, 0x0e, 0xc2, 0x3f, 0x90, 0xbe, 0xe2, 0x10, 0xcd, 0x98,
+  0xc1, 0xc9, 0x35, 0x39, 0x62, 0x0b, 0x50, 0x04, 0x4c, 0xc9, 0xe4, 0x31, 0x1d, 0xd8, 0xde, 0x9d,
+  0x49, 0xeb, 0x68, 0x67, 0xae, 0x75, 0x84, 0x88, 0xff, 0x9d, 0xc8, 0xab, 0x36, 0x40, 0x92, 0x3f,
+  0x50, 0x6c, 0x80, 0x93, 0x06, 0xd7, 0xb7, 0x1d, 0xb4, 0x02, 0xe2, 0x43, 0xd0, 0x04, 0xe3, 0x8f,
+  0xc5, 0xc2, 0xdd, 0x92, 0xaf, 0xb7, 0xc2, 0x46, 0xdc, 0x3a, 0x42, 0xa2, 0x93, 0xbb, 0x57, 0x72,
+  0x2b, 0x7c, 0xf4, 0x30, 0x86, 0x01, 0x85, 0x1a, 0xe1, 0xb0, 0x57, 0xc3, 0xe0, 0xe5, 0xb2, 0xe1,
+  0xcc, 0x72, 0xbb, 0xe7, 0xef, 0x38, 0xb0, 0xf9, 0x22, 0x05, 0xeb, 0x49, 0xbe, 0xe4, 0x3b, 0x1a,
+  0xc5, 0xe0, 0xa3, 0xb4, 0x3a, 0xcf, 0xa5, 0xcc, 0x53, 0x1c, 0x5a, 0x1f, 0x69, 0x76, 0x23, 0x6e,
+  0xcd, 0x3c, 0x96, 0xae, 0x8e, 0xda, 0x18, 0xec, 0xc4, 0x8e, 0x30, 0x87, 0x09, 0xbb, 0x00, 0xf0,
+  0x36, 0x3a, 0x59, 0x48, 0x09, 0x83, 0xab, 0x2e, 0x7c, 0x07, 0xef, 0xdc, 0x02, 0x2c, 0xde, 0x85,
+  0x0b, 0xe4, 0xd2, 0xe6, 0x1d, 0x51, 0x89, 0x43, 0x60, 0x43, 0x3c, 0x57, 0x61, 0x05, 0x5f, 0x6b,
+  0x3c, 0x5c, 0x4f, 0xef, 0x9f, 0xba, 0xed, 0xa5, 0xfa, 0xfd, 0xf4, 0x25, 0xa9, 0x61, 0xc6, 0x28,
+  0x13, 0x23, 0xaa, 0x63, 0xf4, 0xbe, 0xae, 0x7e, 0x10, 0x57, 0x55, 0xcd, 0x5a, 0xde, 0xb3, 0x1f,
+  0x2d, 0x97, 0x03, 0xc1, 0x85, 0xdb, 0xf7, 0xdf, 0xc4, 0x78, 0x6e, 0x26, 0xa8, 0x47, 0xd5, 0xd5,
+  0x09, 0x16, 0x5d, 0x6d, 0x7e, 0xc1, 0x4f, 0x98, 0x53, 0xe2, 0x76, 0x09, 0xe0, 0x38, 0xcf, 0xa0,
+  0x93, 0xd3, 0x20, 0x50, 0xeb, 0x4f, 0xff, 0xa4, 0x03, 0xbf, 0x6f, 0xe0, 0x91, 0x51, 0x00, 0x52,
+  0x1a, 0xe7, 0x40, 0x03, 0xa7, 0xd2, 0xa6, 0x89, 0xb1, 0x78, 0xc4, 0xfd, 0xc5, 0xbf, 0x69, 0x9b,
+  0x42, 0xbd, 0x75, 0x28, 0x5e, 0xa9, 0x73, 0xb8, 0xdf, 0x81, 0x12, 0xfe, 0x89, 0x61, 0x97, 0x1d,
+  0x4b, 0x9a, 0x9a, 0xc1, 0x76, 0x34, 0x6a, 0x51, 0x6b, 0xf9, 0x0e, 0x75, 0xfd, 0x12, 0xdd, 0xe4,
+  0x82, 0x1b, 0x6b, 0xbb, 0x89, 0xf4, 0x03, 0xa8, 0xc9, 0xea, 0x97, 0x78, 0xfc, 0xa2, 0xa9, 0xb5,
+  0xad, 0x21, 0xc3, 0x15, 0xe0, 0x26, 0x37, 0x17, 0x81, 0x11, 0x14, 0x39, 0x25, 0x5f, 0xb4, 0x1f,
+  0x97, 0x35, 0xef, 0x40, 0xf9, 0x41, 0xaa, 0xf1, 0x36, 0xfd, 0xcf, 0x19, 0xf2, 0xb7, 0xf2, 0xbb,
+  0x9f, 0xb8, 0x43, 0xbc, 0x93, 0x61, 0x29, 0xb4, 0xee, 0x62, 0x41, 0xd9, 0x79, 0x87, 0x00, 0xea,
+  0x69, 0x6d, 0x7c, 0xeb, 0xb3, 0x55, 0x0c, 0x23, 0xa5, 0xb0, 0x73, 0x57, 0x1e, 0x16, 0x74, 0x23,
+  0x6d, 0xb7, 0x74, 0x92, 0x14, 0xa0, 0x4b, 0x75, 0x99, 0x97, 0xbb, 0x0f, 0xe3, 0xae, 0xe2, 0xfd,
+  0xa5, 0x23, 0x98, 0x4d, 0x61, 0xde, 0x5e, 0xd0, 0x27, 0x6f, 0xc3, 0x89, 0xe9, 0xea, 0x01, 0x09,
+  0x2b, 0x74, 0x64, 0x7b, 0x89, 0xc5, 0xe6, 0xa4, 0x26, 0x13, 0xf2, 0x3c, 0xa1, 0x9f, 0x40, 0xe3,
+  0xcf, 0x00, 0xe0, 0x92, 0x38, 0xee, 0xe5, 0x62, 0xb1, 0x3b, 0xc3, 0x5b, 0xbe, 0xf3, 0xee, 0x20,
+  0x41, 0xaf, 0x56, 0x66, 0xfa, 0x0c, 0x68, 0xc8, 0x3d, 0x52, 0x13, 0xcb, 0xab, 0x86, 0xbf, 0x54,
+  0x8b, 0x3f, 0xf3, 0x1f, 0xc2, 0xc2, 0xf9, 0xe4, 0xdf, 0x32, 0x2a, 0xb4, 0x1b, 0x83, 0x5f, 0xe6,
+  0x31, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x0a, 0x73, 0x53, 0x49, 0xf1, 0x15, 0x45, 0x66, 0x31, 0x19, 0x6c,
+  0x63, 0xd5, 0xf4, 0xe9, 0x38, 0xe4, 0x9e, 0x6f, 0xf3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x0a, 0x73, 0x53, 0x49, 0xf1, 0x15, 0x45, 0x66, 0x31, 0x19,
+  0x6c, 0x63, 0xd5, 0xf4, 0xe9, 0x38, 0xe4, 0x9e, 0x6f, 0xf3, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x34,
+  0xa1, 0xf6, 0xaa, 0xb3, 0x23, 0xe4, 0x50, 0x14, 0x36, 0xb2, 0x15, 0x1e, 0xbc, 0x52, 0x6d, 0x8b,
+  0x64, 0x95, 0x37, 0x2c, 0x73, 0x1a, 0x7e, 0x78, 0x5c, 0x83, 0x15, 0x09, 0xc0, 0xaf, 0x46, 0x6c,
+  0x11, 0xf5, 0x99, 0x9e, 0x69, 0x10, 0x11, 0x70, 0x81, 0x35, 0xa0, 0xef, 0x55, 0x3e, 0xa3, 0x17,
+  0x12, 0xdc, 0x55, 0x88, 0x5d, 0xb8, 0xe9, 0x89, 0xdf, 0x78, 0xaa, 0x5e, 0x14, 0x5d, 0x44, 0x46,
+  0x1e, 0x6b, 0xbc, 0xfa, 0x42, 0x07, 0x74, 0x26, 0xb5, 0x41, 0xad, 0xf8, 0x5f, 0xbb, 0x62, 0xfd,
+  0x86, 0xd5, 0xe0, 0x3d, 0x6f, 0xb2, 0x7f, 0x81, 0x65, 0x41, 0x65, 0xd6, 0x57, 0xc9, 0x61, 0x6c,
+  0x78, 0x90, 0xa9, 0x75, 0x6e, 0xbf, 0xc6, 0xed, 0xdc, 0x72, 0x37, 0x93, 0xd2, 0xb9, 0x64, 0xe1,
+  0xa0, 0x41, 0x66, 0x86, 0x8a, 0x9a, 0xae, 0x14, 0x3e, 0x5e, 0x19, 0x4a, 0xaa, 0xd2, 0xff, 0xa6,
+  0xd3, 0xac, 0x73, 0xbf, 0x6b, 0x5a, 0x38, 0x1b, 0xd9, 0x32, 0x02, 0xab, 0x70, 0xe2, 0xa5, 0x73,
+  0x9f, 0x8b, 0xab, 0xed, 0xe4, 0x0b, 0xb4, 0xfd, 0x8e, 0x45, 0xc4, 0x2d, 0xa7, 0xb0, 0x5e, 0x0a,
+  0xc7, 0x97, 0x6b, 0x91, 0x78, 0x3b, 0x90, 0x16, 0x10, 0xb3, 0xf9, 0x06, 0xfa, 0x1e, 0xc1, 0xfc,
+  0xc3, 0x15, 0x04, 0x90, 0xe9, 0x46, 0x94, 0xe6, 0xe9, 0x70, 0x12, 0x35, 0x36, 0xdc, 0xad, 0x7f,
+  0x59, 0x34, 0x91, 0xf7, 0x23, 0xe9, 0x4c, 0x39, 0x6e, 0xe9, 0x63, 0x72, 0x55, 0x1b, 0xbc, 0x91,
+  0xec, 0x1a, 0x66, 0x48, 0xa6, 0x84, 0xa2, 0x7f, 0xe7, 0x35, 0x49, 0xea, 0xe0, 0x85, 0x55, 0x9c,
+  0xee, 0xfa, 0x64, 0xfe, 0xb0, 0x34, 0x99, 0x3b, 0x84, 0xe1, 0x13, 0x19, 0xeb, 0x89, 0x40, 0xb3,
+  0x56, 0x0d, 0xdc, 0xe9, 0x63, 0xdc, 0x0b, 0x70, 0xc9, 0x9c, 0x46, 0xb5, 0x18, 0x0f, 0x85, 0xda,
+  0x31, 0x11, 0x8a, 0x54, 0x6a, 0x2e, 0x2e, 0x62, 0x93, 0x1c, 0xef, 0xdc, 0x12, 0x77, 0xe9, 0x93,
+  0xcc, 0x40, 0xb3, 0x43, 0x0d, 0x7c, 0x27, 0x12, 0x81, 0x57, 0x81, 0x4c, 0x07, 0xda, 0x2b, 0x99,
+  0xb6, 0xb1, 0xef, 0x93, 0x0e, 0xff, 0x26, 0x83, 0xd3, 0xb7, 0x43, 0xa4, 0x59, 0x64, 0x23, 0xe1,
+  0xde, 0x9a, 0xf1, 0xf9, 0xf6, 0xba, 0x10, 0x3c, 0x25, 0x22, 0x7e, 0x0a, 0x2f, 0x49, 0x29, 0xa9,
+  0xd3, 0x17, 0x03, 0x7d, 0x63, 0x39, 0x11, 0x51, 0x68, 0x8d, 0x92, 0xf8, 0x8c, 0xf4, 0xfc, 0x0d,
+  0xe1, 0x9e, 0xbc, 0x67, 0x08, 0x3f, 0xf8, 0xb4, 0x0d, 0x4d, 0xc5, 0x02, 0xdd, 0x4c, 0xa8, 0x86,
+  0x70, 0x3a, 0x73, 0x60, 0xe1, 0x40, 0xc4, 0x7f, 0xe6, 0xb8, 0xf5, 0xac, 0xd8, 0xcc, 0xed, 0x14,
+  0x0f, 0x5e, 0x02, 0xbb, 0x7e, 0x50, 0x7d, 0xd3, 0x45, 0xf5, 0x26, 0x59, 0x83, 0x3d, 0xb5, 0x23,
+  0xe5, 0xab, 0xb4, 0xd0, 0xfe, 0x52, 0xeb, 0xfd, 0x96, 0x3d, 0x8b, 0x7d, 0x80, 0x58, 0xcb, 0x98,
+  0xe9, 0x13, 0x7c, 0x8d, 0x33, 0x26, 0x3d, 0x34, 0x29, 0x9f, 0x2c, 0x36, 0xca, 0xe2, 0x2c, 0x4d,
+  0x7a, 0x1f, 0x2e, 0x4d, 0x63, 0x57, 0xda, 0xdd, 0x99, 0x1f, 0x94, 0x7c, 0xe3, 0x41, 0x2f, 0x84,
+  0x57, 0xfe, 0x10, 0x39, 0x4b, 0x73, 0xe6, 0xe2, 0xb1, 0xc9, 0xe0, 0xbc, 0x60, 0x2c, 0xe1, 0xe3,
+  0x93, 0xc3, 0x2f, 0xb9, 0x65, 0x40, 0x6c, 0xcb, 0x7a, 0xef, 0xe5, 0x45, 0xf4, 0x68, 0x7a, 0x94,
+  0xff, 0xe2, 0x15, 0xee, 0x77, 0x4c, 0xa3, 0x53, 0x84, 0x41, 0xb0, 0xe7, 0x29, 0x1e, 0x88, 0x6e,
+  0xc7, 0x69, 0x79, 0x01, 0x62, 0xd1, 0x5e, 0xa7, 0xb2, 0x40, 0xab, 0x71, 0x2c, 0x3d, 0x9b, 0xe1,
+  0xb4, 0xa1, 0xc9, 0xda, 0x05, 0xd1, 0xfb, 0x19, 0x3c, 0x22, 0x26, 0x20, 0x4e, 0xdf, 0x45
+};
+
+UINT32 gPkNewRsa4096Sha256Size = sizeof(gPkNewRsa4096Sha256);
\ No newline at end of file
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c
new file mode 100644
index 0000000000..be0bfc5032
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkNewRsa4096Sha512[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x94, 0x07, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x07, 0x78, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x04,
+  0xff, 0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x62, 0x10, 0xfc, 0x73, 0x8d, 0x2e, 0xec, 0xe0, 0x17, 0x1d, 0x5f, 0xb7, 0xd7, 0xbd, 0xfe, 0xa2,
+  0xb8, 0x5a, 0x7f, 0xb2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0d, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x31, 0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x31,
+  0x32, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
+  0x01, 0x00, 0xcf, 0x28, 0xb4, 0x76, 0x60, 0xcf, 0xae, 0xfe, 0xfb, 0x82, 0xb3, 0xe9, 0x73, 0xf2,
+  0x7b, 0x95, 0xee, 0x5e, 0xb2, 0x2e, 0x91, 0x4e, 0x0b, 0x06, 0xbc, 0x92, 0xc1, 0xc3, 0xe3, 0x61,
+  0xbf, 0xbb, 0xca, 0x96, 0x79, 0x46, 0x7f, 0x04, 0x57, 0x3c, 0x5b, 0x5e, 0xcf, 0x91, 0x87, 0x6b,
+  0x41, 0x19, 0x6b, 0x20, 0x1e, 0x46, 0x25, 0x13, 0x42, 0x8a, 0x2c, 0x8e, 0x88, 0x98, 0xf4, 0xeb,
+  0x37, 0xd1, 0x3e, 0xa7, 0xb7, 0xd4, 0xdd, 0xb5, 0xa5, 0xab, 0xe3, 0x7b, 0x04, 0xe6, 0x7e, 0xb8,
+  0xdb, 0x39, 0x3b, 0x0b, 0x59, 0x76, 0xc7, 0x39, 0xeb, 0xe0, 0x60, 0x2c, 0x54, 0x82, 0x51, 0x70,
+  0xc0, 0xd5, 0xa7, 0x7d, 0x6a, 0x2b, 0x01, 0x2f, 0x12, 0xa5, 0x6b, 0x73, 0xca, 0x8d, 0xf7, 0xdf,
+  0x27, 0xb7, 0xf0, 0xca, 0xd7, 0x92, 0xd9, 0x98, 0xe8, 0x62, 0x7a, 0x03, 0x5b, 0x8c, 0x43, 0x81,
+  0xd2, 0x21, 0x21, 0x7f, 0xea, 0x4f, 0x20, 0x90, 0x81, 0x40, 0x00, 0x21, 0x77, 0x11, 0x0c, 0xb8,
+  0xe3, 0x0c, 0x35, 0xda, 0xcb, 0x24, 0x09, 0xb2, 0xf6, 0x14, 0x45, 0x6b, 0x7a, 0xeb, 0x9c, 0x19,
+  0x88, 0x34, 0xe4, 0xea, 0xca, 0xc8, 0x46, 0x5b, 0x65, 0xaf, 0x9a, 0xc1, 0x27, 0xdd, 0xca, 0xe5,
+  0x55, 0x63, 0x95, 0xdf, 0x61, 0xf1, 0xcf, 0x0a, 0xe9, 0x5b, 0xef, 0xb4, 0xbb, 0xed, 0x8a, 0x90,
+  0x90, 0x52, 0x66, 0xc2, 0x93, 0xbf, 0x0d, 0x98, 0x50, 0x97, 0xd0, 0xe1, 0xe0, 0x55, 0x42, 0x03,
+  0x7d, 0xa3, 0xd1, 0x5e, 0x40, 0x26, 0x05, 0x05, 0x48, 0x70, 0x1f, 0x84, 0xc8, 0xf7, 0x1a, 0xb8,
+  0x7e, 0x73, 0x0b, 0x86, 0x88, 0xf4, 0x4a, 0xf3, 0x9c, 0x63, 0x50, 0x07, 0xab, 0x22, 0x08, 0x41,
+  0x78, 0xe6, 0x80, 0x3f, 0x82, 0xa8, 0x54, 0x4f, 0xb6, 0x4b, 0xf1, 0xf4, 0xdd, 0x0d, 0x8e, 0xa0,
+  0xd4, 0x53, 0xa6, 0x2b, 0x8c, 0x73, 0xe1, 0x7f, 0xb1, 0xae, 0x8f, 0x5d, 0x3e, 0xa9, 0x3c, 0xd0,
+  0x4b, 0x1d, 0xc9, 0xe5, 0x54, 0x1a, 0x5c, 0x05, 0x3c, 0x3b, 0xea, 0xd6, 0x4b, 0x53, 0x3d, 0xa7,
+  0x00, 0xe8, 0x31, 0x66, 0x83, 0x96, 0x88, 0x85, 0x9f, 0x2b, 0xf5, 0x87, 0x41, 0x71, 0x50, 0x65,
+  0xb8, 0xa2, 0xe7, 0x38, 0x47, 0x93, 0x50, 0xd2, 0x05, 0x17, 0x5f, 0x43, 0x0e, 0x47, 0x0b, 0xb5,
+  0xcc, 0xba, 0x91, 0x7e, 0x91, 0x03, 0x77, 0xd0, 0x21, 0x3f, 0x15, 0x7f, 0xb9, 0xd2, 0xdf, 0x2b,
+  0x06, 0x1a, 0xd1, 0x71, 0x5a, 0xba, 0x30, 0x8b, 0xb5, 0x2b, 0xd0, 0x99, 0xf1, 0x41, 0x03, 0x31,
+  0x65, 0xb3, 0x44, 0x38, 0x10, 0x7c, 0xf8, 0xed, 0x28, 0x40, 0x2d, 0xd7, 0x05, 0xd9, 0xf1, 0x08,
+  0x4b, 0xa5, 0x93, 0xa9, 0x58, 0x76, 0xcf, 0x7e, 0x2c, 0x9d, 0x3e, 0xfa, 0x76, 0x9a, 0x81, 0x69,
+  0xf4, 0x11, 0x1e, 0x87, 0xbe, 0x94, 0xec, 0x5d, 0x82, 0x19, 0x15, 0xfa, 0x50, 0x4e, 0x7a, 0xb4,
+  0xb0, 0x33, 0xea, 0x15, 0x88, 0x67, 0xb4, 0x6d, 0x1b, 0x02, 0x30, 0xa5, 0xd6, 0xaf, 0x2b, 0xc3,
+  0xf4, 0x5c, 0x51, 0xe3, 0x4d, 0x9f, 0xf0, 0x1a, 0x89, 0xba, 0xcd, 0x1d, 0xdf, 0x3f, 0x8b, 0x0e,
+  0xa9, 0x14, 0x85, 0x95, 0xd8, 0xde, 0xdc, 0x12, 0x99, 0xe8, 0x96, 0x6e, 0xff, 0x3c, 0x7e, 0x58,
+  0x86, 0xe2, 0x92, 0x9e, 0x78, 0x36, 0xd3, 0x49, 0xd2, 0xd7, 0xfe, 0x72, 0x94, 0xce, 0x7a, 0xf6,
+  0x8a, 0x7d, 0x3a, 0xc0, 0xdd, 0xa3, 0x91, 0x30, 0xfa, 0xaa, 0xad, 0xaf, 0x92, 0xeb, 0x6b, 0x65,
+  0x8b, 0x26, 0x62, 0xdc, 0x50, 0x65, 0xce, 0x5a, 0x10, 0xaf, 0x3a, 0x62, 0xc6, 0x6f, 0x8e, 0xa0,
+  0x76, 0xb6, 0x80, 0x6a, 0x8a, 0xe2, 0xd5, 0x94, 0x7f, 0xbe, 0x91, 0xa4, 0x51, 0x80, 0x2d, 0x44,
+  0xf4, 0xcd, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x7a, 0x04, 0x6e, 0x0b, 0x56, 0x2a, 0x0c, 0x4f, 0x9a,
+  0x77, 0x3f, 0xe8, 0x69, 0xc8, 0xe9, 0x18, 0x8b, 0x7c, 0x44, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xf0, 0x7a, 0x04, 0x6e, 0x0b, 0x56, 0x2a, 0x0c, 0x4f,
+  0x9a, 0x77, 0x3f, 0xe8, 0x69, 0xc8, 0xe9, 0x18, 0x8b, 0x7c, 0x44, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+  0x72, 0xc5, 0xad, 0xca, 0xc0, 0x23, 0xb2, 0x7d, 0xc1, 0x0d, 0x17, 0xd9, 0x2d, 0x95, 0xf0, 0x3e,
+  0xe4, 0xfd, 0xbf, 0xcc, 0x8b, 0xf3, 0x52, 0x24, 0xbf, 0x9f, 0xee, 0x6f, 0xac, 0x30, 0x8e, 0x00,
+  0x65, 0x11, 0x55, 0x42, 0x26, 0x9c, 0x29, 0x9a, 0x82, 0x3d, 0xab, 0x6e, 0x32, 0xe3, 0x96, 0x47,
+  0xbf, 0xe4, 0xa8, 0xb8, 0x8b, 0x14, 0x07, 0x4a, 0xbf, 0x60, 0xd3, 0x7b, 0x67, 0x38, 0x4f, 0x8c,
+  0x11, 0x09, 0x78, 0x1c, 0xeb, 0xea, 0xc6, 0x8b, 0xfa, 0xbe, 0x8c, 0x5b, 0x57, 0xa5, 0xbf, 0x2e,
+  0x81, 0xaa, 0xdc, 0x56, 0xe1, 0x98, 0xb8, 0x1a, 0x28, 0xbf, 0x15, 0xb6, 0xae, 0xe9, 0x86, 0x53,
+  0xff, 0xb8, 0xb5, 0x6e, 0x4b, 0x84, 0xed, 0xeb, 0xed, 0x93, 0xf9, 0x08, 0x69, 0x8e, 0xc2, 0xf8,
+  0xc2, 0x44, 0x5f, 0x17, 0x94, 0x36, 0xf3, 0x00, 0x6d, 0xa1, 0x52, 0xd7, 0x80, 0x43, 0xd5, 0x3b,
+  0x2a, 0x70, 0x21, 0xcc, 0xed, 0xc0, 0x96, 0x5b, 0x5f, 0x1e, 0xcb, 0x7b, 0x5a, 0x28, 0xd5, 0x3f,
+  0x90, 0x1b, 0x8c, 0x57, 0xd8, 0x4d, 0xcc, 0x43, 0x9c, 0x94, 0x4d, 0x99, 0xcd, 0x03, 0x1f, 0x53,
+  0x3f, 0xab, 0xb2, 0x56, 0x1e, 0x70, 0x36, 0xda, 0x4a, 0x16, 0xb7, 0xca, 0xbe, 0x4b, 0x3e, 0x43,
+  0x4e, 0x08, 0xb1, 0x39, 0x18, 0x55, 0x54, 0x1b, 0x29, 0x0a, 0xdf, 0x83, 0x01, 0x33, 0xb2, 0xdb,
+  0x21, 0x87, 0x52, 0xe1, 0xc8, 0x2b, 0x92, 0x5c, 0x3a, 0x9f, 0xc7, 0x3c, 0x01, 0x76, 0x75, 0xe1,
+  0x25, 0xef, 0x21, 0xbd, 0x21, 0xe3, 0x0a, 0x9c, 0x31, 0x45, 0xf5, 0x18, 0xc9, 0xef, 0x01, 0xe2,
+  0x5b, 0x9e, 0xd7, 0xd5, 0x69, 0xcd, 0x6e, 0x01, 0x6f, 0x24, 0x58, 0x7e, 0x15, 0xb2, 0x8e, 0x94,
+  0xd4, 0xef, 0xf6, 0xf6, 0x1d, 0xc1, 0xaa, 0x5c, 0xe6, 0xbb, 0xd8, 0x50, 0x25, 0x45, 0x86, 0xb8,
+  0xe5, 0x2b, 0x83, 0x75, 0xbe, 0x7a, 0xa0, 0x36, 0x04, 0x50, 0xec, 0xfa, 0xa8, 0xb1, 0x0f, 0x9b,
+  0xe5, 0x99, 0x15, 0x1d, 0xd3, 0x58, 0x9b, 0xa2, 0xc9, 0x94, 0xe1, 0x77, 0x16, 0x88, 0xcc, 0x17,
+  0x4c, 0x9b, 0xc5, 0x32, 0x33, 0xfa, 0x7c, 0xa3, 0x8e, 0xcd, 0xdf, 0xf6, 0x8f, 0xb5, 0x76, 0xfb,
+  0x4b, 0x7f, 0xe1, 0x09, 0x6b, 0x94, 0xfa, 0x1d, 0x4f, 0xab, 0xd4, 0x62, 0xe2, 0xe8, 0xb8, 0xfa,
+  0x12, 0xc8, 0x9f, 0x63, 0xf4, 0xb8, 0x7e, 0x74, 0x59, 0x9e, 0x88, 0x3d, 0x53, 0xba, 0x1b, 0xa5,
+  0x98, 0x97, 0xf9, 0x7d, 0xac, 0xf8, 0xf7, 0xdf, 0x16, 0x16, 0x4c, 0x9f, 0x0f, 0x82, 0x86, 0x18,
+  0x28, 0x6d, 0x50, 0xc3, 0x7e, 0xf2, 0x8f, 0x5e, 0xd9, 0x91, 0x14, 0x96, 0x8f, 0x38, 0x20, 0x9f,
+  0xed, 0xc4, 0x65, 0x10, 0x5b, 0x34, 0x51, 0xcc, 0x16, 0xbe, 0xd1, 0x53, 0xe4, 0x72, 0xc3, 0x59,
+  0x97, 0x1f, 0x65, 0xaa, 0xcd, 0xab, 0xa8, 0x00, 0x27, 0xee, 0x08, 0x84, 0x6b, 0xfb, 0x37, 0xc5,
+  0xeb, 0x81, 0x64, 0x0d, 0x3d, 0x8f, 0xe2, 0xa0, 0x92, 0x8e, 0x4d, 0xba, 0x52, 0xbb, 0xd3, 0x7d,
+  0xef, 0x75, 0x29, 0x01, 0x6a, 0x59, 0x3a, 0xe2, 0xab, 0x33, 0xde, 0x6b, 0xec, 0xa7, 0xd6, 0xc4,
+  0x19, 0xd3, 0x25, 0x2a, 0xa8, 0xd3, 0x18, 0x2c, 0x33, 0x1f, 0x70, 0x51, 0x0d, 0xaa, 0xe5, 0x00,
+  0x52, 0x74, 0x74, 0xdd, 0x44, 0x3a, 0xe5, 0x2c, 0x87, 0xd5, 0x6d, 0x4c, 0x35, 0x98, 0x14, 0x90,
+  0x4d, 0xd7, 0xd4, 0xb9, 0x12, 0x20, 0xe8, 0xfe, 0xd3, 0x2d, 0x38, 0xdf, 0xef, 0x25, 0x5c, 0x78,
+  0x13, 0x18, 0x02, 0xbd, 0xfb, 0xfb, 0xf5, 0x5c, 0x6f, 0xc2, 0xad, 0xba, 0xe5, 0x42, 0x09, 0x82,
+  0xca, 0x7d, 0xb2, 0x41, 0x35, 0x96, 0x48, 0x8d, 0xd9, 0x4c, 0xce, 0x29, 0xd6, 0xf0, 0x9e, 0xef,
+  0x31, 0x82, 0x02, 0x50, 0x30, 0x82, 0x02, 0x4c, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x62, 0x10,
+  0xfc, 0x73, 0x8d, 0x2e, 0xec, 0xe0, 0x17, 0x1d, 0x5f, 0xb7, 0xd7, 0xbd, 0xfe, 0xa2, 0xb8, 0x5a,
+  0x7f, 0xb2, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x02, 0x00, 0x1c, 0x11, 0x07, 0x0c, 0xb8, 0xdb, 0x8f, 0x18, 0x8f, 0xac, 0x12, 0xc9,
+  0x31, 0xea, 0x4f, 0x7e, 0x57, 0xe6, 0xd5, 0x8f, 0x5c, 0xf8, 0x7f, 0x2f, 0xff, 0x14, 0x49, 0x4c,
+  0x0b, 0xef, 0xa1, 0x56, 0x92, 0x99, 0x4f, 0x5e, 0xc2, 0xb2, 0x79, 0x58, 0x84, 0xb3, 0x55, 0xff,
+  0x5d, 0x6e, 0x87, 0x44, 0x20, 0xad, 0x7a, 0xc9, 0xe5, 0xb1, 0x4b, 0x2b, 0xff, 0x95, 0x53, 0xbc,
+  0xff, 0x0d, 0xb1, 0xbb, 0x87, 0x06, 0xf1, 0x1d, 0xea, 0xc9, 0x88, 0x1b, 0x85, 0xe8, 0xe9, 0x87,
+  0xff, 0x12, 0xf9, 0xea, 0x69, 0x15, 0x4a, 0x1d, 0x58, 0x93, 0xed, 0x03, 0xfe, 0x9c, 0x27, 0x8e,
+  0x1d, 0xfd, 0x18, 0x20, 0x1c, 0x5d, 0x82, 0xd7, 0x4d, 0x97, 0x1a, 0xa6, 0x0a, 0x6b, 0x17, 0x8b,
+  0xab, 0xaa, 0x78, 0x82, 0xdd, 0x4a, 0xec, 0x95, 0xaa, 0x0f, 0x12, 0x40, 0x4d, 0xad, 0xf1, 0x11,
+  0xbf, 0x59, 0x09, 0x4a, 0x42, 0x55, 0xa6, 0x65, 0xb8, 0x75, 0x83, 0xdb, 0x19, 0x50, 0x82, 0x66,
+  0xf6, 0xaf, 0x72, 0xb2, 0x39, 0x72, 0xad, 0x92, 0x45, 0xdf, 0x93, 0x88, 0xe0, 0x0b, 0xe6, 0x62,
+  0x4d, 0x21, 0x05, 0x92, 0xf1, 0x12, 0x5f, 0x1a, 0xbe, 0x14, 0xd4, 0x78, 0x66, 0x48, 0xa8, 0xa5,
+  0xb5, 0xf5, 0x84, 0x42, 0xad, 0x82, 0xc7, 0x75, 0xce, 0x4b, 0xed, 0x1b, 0xc4, 0x3b, 0x80, 0xa8,
+  0x75, 0x42, 0xef, 0xb7, 0x8b, 0x37, 0xa7, 0x82, 0xd2, 0x21, 0xae, 0x8f, 0x95, 0xf4, 0xbc, 0xbf,
+  0x1d, 0xfc, 0x34, 0x44, 0x17, 0x35, 0x1b, 0xc3, 0x4b, 0x1d, 0x2b, 0x85, 0xc3, 0x86, 0x8d, 0xb4,
+  0x63, 0x56, 0x2d, 0x3a, 0xfc, 0x22, 0x30, 0xb3, 0xc1, 0x8b, 0x3b, 0xc6, 0x5c, 0x8a, 0x3d, 0x91,
+  0x99, 0x21, 0x97, 0x10, 0xba, 0xd0, 0x8d, 0x7b, 0x28, 0x35, 0xcd, 0x4a, 0xa0, 0x1b, 0xcd, 0x3c,
+  0x6f, 0xb3, 0xe7, 0x3e, 0x51, 0xa0, 0xf8, 0xb1, 0xd9, 0xe5, 0xe3, 0xfb, 0x44, 0xaa, 0xdb, 0x88,
+  0xf5, 0x65, 0xea, 0xd8, 0x80, 0xf7, 0x40, 0x4e, 0xb4, 0xa8, 0x47, 0x7f, 0x50, 0xa1, 0xe1, 0x88,
+  0x5d, 0x13, 0xc9, 0x2c, 0x09, 0x63, 0x51, 0x70, 0x1e, 0xa8, 0x9e, 0x8f, 0xee, 0x40, 0x1a, 0x68,
+  0x13, 0x05, 0x6a, 0xb1, 0xa9, 0x5d, 0x91, 0x06, 0x03, 0xf2, 0x94, 0x0c, 0x21, 0xe8, 0x0c, 0xc0,
+  0x73, 0x1c, 0x76, 0x15, 0x80, 0xe5, 0x63, 0xce, 0xc0, 0x20, 0x58, 0x75, 0xde, 0xaf, 0x34, 0x73,
+  0xff, 0x59, 0x20, 0x7b, 0x2e, 0xc2, 0xc8, 0x5d, 0xcf, 0x1e, 0x84, 0x11, 0x56, 0x79, 0x8e, 0x76,
+  0xe8, 0x11, 0xff, 0xeb, 0x0e, 0x68, 0x36, 0x6c, 0x2a, 0x93, 0xde, 0x7c, 0xe0, 0x3b, 0x9b, 0x73,
+  0x87, 0x82, 0x2e, 0x56, 0xfb, 0x8f, 0x58, 0x4c, 0x6c, 0x0c, 0x1f, 0xf3, 0x47, 0xe7, 0x05, 0xaa,
+  0x85, 0x61, 0x02, 0x7e, 0x88, 0x78, 0xc0, 0xfb, 0x4f, 0xe9, 0xb7, 0x00, 0xdb, 0x5b, 0x6b, 0x0f,
+  0x2e, 0xa2, 0xc1, 0x19, 0xea, 0x0a, 0x49, 0x63, 0x07, 0x7a, 0x9a, 0x09, 0x2c, 0x82, 0x28, 0x85,
+  0xe6, 0x8f, 0x76, 0x1c, 0xc2, 0xba, 0xb7, 0x1c, 0x4e, 0x2c, 0xcd, 0xd3, 0xe4, 0x27, 0xf8, 0x81,
+  0x5b, 0xbf, 0x51, 0x17, 0x03, 0x14, 0xa0, 0x70, 0xe5, 0x3d, 0x12, 0x66, 0x4f, 0xa3, 0xb1, 0x88,
+  0x77, 0xfd, 0x34, 0x9f, 0xc7, 0x94, 0xc4, 0x85, 0xc9, 0x43, 0x34, 0x22, 0x0a, 0x40, 0x80, 0xbd,
+  0xd9, 0xdf, 0xa3, 0xf3, 0xc6, 0x39, 0x15, 0xbe, 0x92, 0x54, 0xd3, 0x7a, 0x46, 0xd0, 0x11, 0xac,
+  0x13, 0x70, 0x05, 0xc8, 0xca, 0xcb, 0xad, 0x31, 0xcc, 0xb5, 0x6c, 0xb8, 0x66, 0xab, 0x8a, 0x87,
+  0xd5, 0x04, 0x26, 0x8e, 0x51, 0x88, 0x42, 0x7d, 0xc9, 0x71, 0x42, 0xcd, 0x11, 0x5e, 0x6d, 0xf1,
+  0xb2, 0xfd, 0x3d, 0x52, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x70,
+  0xf1, 0x26, 0x06, 0x11, 0xd9, 0x7a, 0xc4, 0xf3, 0x97, 0x36, 0xde, 0x6d, 0x9a, 0xa4, 0xde, 0xeb,
+  0x03, 0x3e, 0x70, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x31,
+  0x35, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x31, 0x35,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01,
+  0x00, 0x97, 0x6d, 0x00, 0x5e, 0xb1, 0x15, 0x9b, 0x3a, 0xaf, 0x49, 0xc9, 0x5a, 0xdf, 0xce, 0x14,
+  0x58, 0xa3, 0x8c, 0xbf, 0x01, 0x16, 0x87, 0xbd, 0xe8, 0x2e, 0x34, 0x96, 0x74, 0xc5, 0xd1, 0x35,
+  0x30, 0x9e, 0xbc, 0x25, 0x2e, 0x28, 0xf5, 0xaf, 0xaa, 0xbc, 0x3a, 0x20, 0x14, 0xc3, 0xc4, 0x1a,
+  0x5e, 0x46, 0x8c, 0x1e, 0xd3, 0x3c, 0x54, 0x60, 0xa5, 0x9e, 0x67, 0xf5, 0xca, 0x27, 0xc4, 0x21,
+  0x33, 0xa9, 0xaa, 0x4e, 0xdc, 0xa9, 0x12, 0xb4, 0xf5, 0x37, 0xba, 0xcf, 0xee, 0x2e, 0x04, 0x95,
+  0x8c, 0x36, 0x0b, 0x8c, 0x4a, 0xda, 0xb9, 0x17, 0xf3, 0x14, 0xd2, 0x5f, 0x2d, 0xd5, 0x9e, 0x54,
+  0x77, 0xa4, 0x62, 0x6e, 0x3b, 0x64, 0x71, 0x98, 0xe7, 0x2f, 0x37, 0xdf, 0xbb, 0x15, 0xb6, 0xf9,
+  0xb7, 0xaf, 0x4a, 0xf4, 0xcf, 0xb0, 0x8c, 0x14, 0x0c, 0x20, 0xc8, 0x70, 0x68, 0x8d, 0x6a, 0x10,
+  0x8b, 0x2e, 0x70, 0xc3, 0xc1, 0x1e, 0x9c, 0xd4, 0xa7, 0x80, 0x21, 0xda, 0xac, 0x41, 0x75, 0x23,
+  0xb2, 0x5e, 0xa2, 0x5e, 0xfd, 0x2c, 0x94, 0x10, 0x0a, 0xfb, 0xe7, 0x6e, 0x77, 0x99, 0x60, 0x6f,
+  0xc8, 0x51, 0x38, 0xf5, 0xdb, 0xe1, 0x38, 0x43, 0x50, 0x6b, 0x18, 0xde, 0x37, 0xc2, 0xe1, 0x88,
+  0x62, 0x3e, 0xac, 0xc4, 0x40, 0xc6, 0x57, 0x1d, 0xe0, 0x56, 0xad, 0x30, 0x58, 0x7d, 0xbb, 0x4b,
+  0x1d, 0x73, 0x18, 0x80, 0xaf, 0x77, 0x98, 0x17, 0x87, 0x67, 0x47, 0x41, 0xb6, 0x55, 0x10, 0x9b,
+  0x80, 0x33, 0x14, 0x46, 0x5d, 0xa0, 0xb2, 0xca, 0x9b, 0xc8, 0xac, 0x19, 0x2b, 0x2e, 0xe8, 0x8a,
+  0x08, 0x9e, 0xae, 0x47, 0xeb, 0x20, 0x7c, 0xaa, 0x56, 0xb8, 0x44, 0x5e, 0xdc, 0x74, 0x56, 0x6b,
+  0x42, 0x14, 0xf9, 0xb0, 0x09, 0xf2, 0x89, 0xad, 0xc4, 0xda, 0x07, 0x5a, 0xe5, 0xf0, 0xe3, 0x0e,
+  0x27, 0x31, 0x79, 0x5f, 0x63, 0x4c, 0xad, 0x7d, 0x7a, 0xd2, 0xf8, 0x79, 0x6f, 0x05, 0x22, 0x20,
+  0x19, 0x98, 0x22, 0x63, 0xef, 0x33, 0x90, 0x32, 0xbb, 0x87, 0x0d, 0x77, 0x90, 0x4c, 0xb8, 0x5d,
+  0x34, 0x2b, 0xda, 0x3b, 0xb9, 0x5e, 0xc6, 0xab, 0x35, 0x38, 0x69, 0xd3, 0xf9, 0xd9, 0xac, 0x29,
+  0x39, 0x59, 0xea, 0x30, 0xa4, 0xed, 0x26, 0x91, 0xd3, 0xe3, 0x74, 0x73, 0x4f, 0x0d, 0x1e, 0xbd,
+  0xe2, 0x66, 0x67, 0xa3, 0x90, 0x3d, 0x34, 0x4e, 0x07, 0x39, 0x19, 0x78, 0x30, 0x24, 0xff, 0x41,
+  0x1d, 0x3e, 0x75, 0x03, 0xdd, 0x5b, 0xf8, 0xea, 0xe4, 0x8c, 0x2e, 0xdd, 0x47, 0x5f, 0x42, 0x15,
+  0xe4, 0x0e, 0x21, 0x6b, 0xe1, 0x4c, 0xf5, 0x78, 0x17, 0x92, 0xb2, 0xba, 0xc2, 0x12, 0x3d, 0x1f,
+  0x81, 0xdd, 0x62, 0x14, 0xc9, 0xd0, 0xc8, 0x8f, 0x74, 0xe2, 0x46, 0x8d, 0x6f, 0xa2, 0x77, 0x6a,
+  0x96, 0xd2, 0x42, 0xc3, 0x6c, 0x95, 0x9a, 0x13, 0xda, 0x4f, 0x2f, 0x32, 0x2d, 0x90, 0x28, 0x1d,
+  0xbc, 0xda, 0x54, 0x87, 0xe7, 0xa9, 0x93, 0xdd, 0x8c, 0x9b, 0xe1, 0x54, 0xba, 0x27, 0x0a, 0x55,
+  0x05, 0x64, 0x06, 0xc2, 0x37, 0x5b, 0x07, 0x03, 0x9b, 0xc6, 0xd7, 0x60, 0x02, 0xea, 0xc5, 0x0e,
+  0xb1, 0x75, 0x34, 0xb2, 0x18, 0xb8, 0x65, 0x40, 0x1d, 0x60, 0x02, 0xd1, 0x33, 0xfc, 0x76, 0x46,
+  0x87, 0x6e, 0x33, 0xde, 0x21, 0x06, 0x21, 0x2b, 0xf3, 0x4a, 0x7a, 0xd1, 0xaf, 0xa0, 0x65, 0x83,
+  0x94, 0x60, 0x4f, 0xee, 0x2c, 0x26, 0xa1, 0x03, 0xdb, 0x5d, 0x34, 0x30, 0x36, 0x43, 0x28, 0x24,
+  0xa4, 0xb8, 0x97, 0x93, 0xe3, 0xb3, 0x21, 0x31, 0x3a, 0x84, 0x38, 0xe6, 0xe7, 0x6f, 0xbd, 0xd4,
+  0x47, 0xba, 0xfe, 0x36, 0xe4, 0xe2, 0x9b, 0xd4, 0x15, 0x93, 0xb5, 0x6b, 0xdc, 0x6f, 0xb9, 0x89,
+  0x3f, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x07, 0xd6, 0x44, 0xb2, 0xfc, 0x0e, 0x4c, 0xc3, 0xb1, 0x4f, 0x34,
+  0x02, 0xc7, 0x76, 0x2c, 0x0d, 0xd5, 0xc1, 0x74, 0xe7, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x07, 0xd6, 0x44, 0xb2, 0xfc, 0x0e, 0x4c, 0xc3, 0xb1, 0x4f,
+  0x34, 0x02, 0xc7, 0x76, 0x2c, 0x0d, 0xd5, 0xc1, 0x74, 0xe7, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x18,
+  0x60, 0x10, 0xaa, 0x2b, 0x44, 0x90, 0xd1, 0xdc, 0x45, 0x1d, 0xfc, 0xca, 0x3a, 0x5b, 0x8e, 0xb0,
+  0x29, 0x85, 0x46, 0x8c, 0x0e, 0xbe, 0x65, 0x81, 0xf5, 0x4c, 0xcc, 0xd8, 0x31, 0xc0, 0x90, 0x78,
+  0xa6, 0x26, 0xa7, 0xd2, 0x34, 0x7e, 0xbf, 0x57, 0x5f, 0xa1, 0x27, 0x0e, 0xf9, 0x39, 0xf8, 0x1c,
+  0x06, 0xff, 0xfd, 0x66, 0x4d, 0x50, 0x52, 0x25, 0x83, 0x72, 0xe8, 0x87, 0xd5, 0x93, 0x23, 0x33,
+  0x5e, 0xc5, 0x12, 0x68, 0xb4, 0x85, 0xbb, 0xc2, 0xca, 0x96, 0xb7, 0x83, 0xf2, 0xc7, 0xfb, 0x35,
+  0xf7, 0x76, 0x85, 0x0c, 0xce, 0xc5, 0xc6, 0x76, 0xc0, 0x10, 0x1b, 0x9a, 0x6f, 0x03, 0x6d, 0x41,
+  0x01, 0xa8, 0x23, 0xab, 0x54, 0x10, 0x38, 0x3d, 0x33, 0x5b, 0x45, 0xb6, 0xbd, 0x91, 0x98, 0x9d,
+  0x59, 0x17, 0xea, 0x85, 0x68, 0x16, 0x1a, 0xa0, 0xec, 0x68, 0x43, 0x46, 0x40, 0xdb, 0xc9, 0x71,
+  0x20, 0xc8, 0x43, 0xa2, 0xc1, 0x7f, 0x54, 0x01, 0xa6, 0x50, 0x49, 0xc0, 0x03, 0x22, 0xd2, 0x2f,
+  0x10, 0xf7, 0xbf, 0x71, 0x9a, 0xe8, 0x50, 0xa7, 0xb2, 0x3e, 0x64, 0x1c, 0xfd, 0xa5, 0x7e, 0x7e,
+  0x75, 0x43, 0xab, 0xf1, 0x49, 0x06, 0x56, 0x72, 0xa4, 0x17, 0xe4, 0x13, 0xae, 0x93, 0x8f, 0xf9,
+  0xbf, 0x08, 0xa4, 0x9a, 0xb5, 0xf5, 0xb7, 0x8b, 0x72, 0x1c, 0xb3, 0xe9, 0x07, 0x13, 0xcc, 0x8b,
+  0xf5, 0x43, 0xeb, 0x86, 0x28, 0xc1, 0x74, 0x03, 0xd6, 0x51, 0x7d, 0x0f, 0x8f, 0xba, 0xc8, 0x25,
+  0x48, 0x5e, 0xe3, 0xc0, 0xd0, 0xde, 0x42, 0xea, 0x11, 0x8f, 0x2e, 0x75, 0xf0, 0xb0, 0x47, 0xf0,
+  0x75, 0x41, 0x02, 0x80, 0x3b, 0xb4, 0xe5, 0xaf, 0xc9, 0x38, 0x37, 0x69, 0xaa, 0x70, 0x40, 0x78,
+  0xbf, 0x1b, 0x1b, 0x02, 0x2b, 0x7b, 0x33, 0x2d, 0x0d, 0x53, 0x97, 0x7c, 0x09, 0x1b, 0x14, 0x28,
+  0xed, 0x94, 0x7f, 0xe6, 0x25, 0xf8, 0x89, 0x86, 0x9e, 0x34, 0xce, 0x57, 0x19, 0x54, 0x2a, 0x00,
+  0xdc, 0x5b, 0x98, 0xff, 0xb2, 0xbe, 0x99, 0x85, 0xa4, 0x80, 0xd1, 0xec, 0xba, 0xe3, 0x69, 0xcc,
+  0x11, 0xc2, 0x7a, 0xd8, 0x44, 0xc5, 0xf1, 0xba, 0xb2, 0x7e, 0x2d, 0x82, 0x5f, 0x8a, 0xe6, 0x77,
+  0x6f, 0x59, 0xa2, 0xec, 0x39, 0xb6, 0xf5, 0x44, 0x5f, 0x33, 0x4d, 0xca, 0x33, 0x73, 0xf7, 0xd7,
+  0x9c, 0x64, 0xc8, 0xd3, 0x8b, 0xfa, 0xfe, 0x6f, 0xd7, 0x9a, 0x59, 0x7e, 0x1d, 0x11, 0xe2, 0x15,
+  0x73, 0xc5, 0x62, 0x17, 0x0c, 0x73, 0xf3, 0x44, 0xb0, 0x67, 0xa9, 0xcc, 0x1c, 0xbe, 0x8d, 0xc9,
+  0x75, 0xb6, 0xa5, 0x50, 0x73, 0xa7, 0x3d, 0xaf, 0xc3, 0xe6, 0x1c, 0xe8, 0x96, 0xe2, 0xae, 0xf6,
+  0x3a, 0x36, 0xb7, 0x65, 0x33, 0x89, 0x39, 0xf6, 0xe9, 0x54, 0x99, 0x9a, 0xec, 0x32, 0x1b, 0xa6,
+  0xe7, 0x42, 0xc3, 0xce, 0x14, 0xea, 0x28, 0x95, 0xd1, 0xc1, 0x35, 0x2c, 0x34, 0xfb, 0xf7, 0xf8,
+  0xce, 0x85, 0x59, 0x1a, 0xcf, 0xcc, 0x6d, 0x15, 0x58, 0xe5, 0xb2, 0x04, 0x3b, 0xe5, 0xa5, 0xd4,
+  0x7f, 0xce, 0x16, 0x04, 0x12, 0xe3, 0xb9, 0xa7, 0xfa, 0x52, 0x4e, 0x96, 0xd3, 0x6f, 0x86, 0xf2,
+  0x8c, 0xce, 0xfa, 0xda, 0x74, 0x94, 0x7d, 0xd9, 0x78, 0x3a, 0xaf, 0x70, 0x81, 0xd3, 0xa9, 0x66,
+  0x85, 0x95, 0xd8, 0x70, 0x4b, 0x02, 0xbc, 0x07, 0xa1, 0x5b, 0xf7, 0x52, 0x93, 0x1a, 0xf8, 0xc4,
+  0x26, 0xf1, 0x93, 0x32, 0x5e, 0x89, 0xe0, 0xe0, 0x75, 0x97, 0x23, 0x0d, 0xde, 0x79, 0xd6, 0x9e,
+  0x29, 0x47, 0x89, 0xed, 0x89, 0xdc, 0xc2, 0x75, 0xda, 0x27, 0xe9, 0x8b, 0x58, 0xd1, 0xf7, 0xd3,
+  0x0a, 0x2b, 0xbb, 0xeb, 0x7b, 0x0f, 0x00, 0xd1, 0x68, 0x7b, 0xc8, 0x1d, 0x48, 0xe7, 0xaa
+};
+
+UINT32 gPkNewRsa4096Sha512Size = sizeof(gPkNewRsa4096Sha512);
\ No newline at end of file
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c
new file mode 100644
index 0000000000..63274028d7
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkRsa2048Sha256[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x94, 0x04, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x04, 0x78, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x02,
+  0xff, 0x30, 0x82, 0x02, 0xfb, 0x30, 0x82, 0x01, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x41, 0xcf, 0xa4, 0x01, 0xb8, 0x94, 0x1e, 0x75, 0xb8, 0xc8, 0xe0, 0x5a, 0x29, 0xd4, 0xbb, 0x12,
+  0xd1, 0x78, 0xfa, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x30, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xb9, 0x6f, 0x6d, 0x8f, 0xe4, 0xc3, 0x53, 0xa3, 0x7e, 0xe4, 0x02, 0x02, 0x6d, 0x3e,
+  0x1b, 0xae, 0x2a, 0xd1, 0x78, 0xbb, 0xc3, 0x6d, 0xff, 0x66, 0xc9, 0x38, 0x03, 0xda, 0x1f, 0x44,
+  0x84, 0x0b, 0xa2, 0xf3, 0x3b, 0x57, 0xb9, 0xc2, 0xfb, 0x5e, 0xbe, 0x57, 0x70, 0x44, 0xe7, 0xc7,
+  0x7d, 0xcb, 0x82, 0x54, 0x29, 0x01, 0x3b, 0x00, 0x0c, 0x31, 0x8e, 0x81, 0x1c, 0x25, 0x76, 0x76,
+  0x1d, 0xcc, 0x33, 0xbf, 0xfa, 0x50, 0xd5, 0xd5, 0xb1, 0x25, 0x66, 0x9d, 0x1d, 0x83, 0x01, 0x3b,
+  0x7e, 0x4f, 0xf2, 0xf9, 0x47, 0x59, 0x07, 0x5e, 0x46, 0x1d, 0x17, 0x6a, 0xd9, 0x56, 0x94, 0x54,
+  0xba, 0xb7, 0xe8, 0x55, 0x9a, 0x14, 0x23, 0x9d, 0x08, 0xf4, 0x0d, 0x6b, 0xe1, 0xe9, 0x1a, 0x60,
+  0xec, 0x4b, 0x09, 0x7b, 0x91, 0xb4, 0x66, 0x1a, 0xb0, 0xfc, 0x22, 0x0f, 0xc3, 0x35, 0xa5, 0x46,
+  0x9a, 0x91, 0x5a, 0x59, 0x62, 0x84, 0xba, 0xba, 0x8a, 0x1a, 0x24, 0x4d, 0x72, 0x06, 0xbc, 0x49,
+  0x22, 0x28, 0x3c, 0x75, 0x9c, 0xfd, 0x39, 0x58, 0xd7, 0xf8, 0xfe, 0x45, 0xba, 0x63, 0x59, 0xe1,
+  0x97, 0xf9, 0xf9, 0x52, 0x49, 0x1d, 0x4e, 0x01, 0x07, 0xa6, 0xf1, 0x1e, 0x30, 0xd0, 0x29, 0x97,
+  0x4e, 0xcb, 0x32, 0x9c, 0xa6, 0xa3, 0x1b, 0x10, 0x17, 0xd0, 0xe4, 0x63, 0x04, 0x67, 0x1e, 0xe2,
+  0xc3, 0x5c, 0xd0, 0xdc, 0x37, 0x5a, 0x4c, 0x62, 0xe4, 0x49, 0x22, 0x32, 0x08, 0xec, 0x1a, 0x2b,
+  0x07, 0x7b, 0xb8, 0xa2, 0x45, 0xad, 0x3b, 0x3a, 0xca, 0x7f, 0x24, 0xbf, 0x8f, 0x30, 0xa4, 0x19,
+  0x7c, 0xc3, 0xc0, 0x36, 0xec, 0x9b, 0x72, 0x86, 0x29, 0x94, 0x04, 0xe0, 0x12, 0xd3, 0xa8, 0x57,
+  0x66, 0x5a, 0xa1, 0x94, 0x0f, 0xe6, 0x2a, 0x6a, 0x8f, 0xe7, 0x9f, 0x17, 0xb2, 0xdb, 0xf4, 0x74,
+  0xd2, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x8e, 0xa8, 0x8c, 0xce, 0x26, 0xa5, 0xdc, 0x83, 0x6a, 0x9f,
+  0x19, 0x9a, 0x88, 0xd1, 0x87, 0x20, 0x9d, 0x41, 0x4e, 0xf2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x8e, 0xa8, 0x8c, 0xce, 0x26, 0xa5, 0xdc, 0x83, 0x6a,
+  0x9f, 0x19, 0x9a, 0x88, 0xd1, 0x87, 0x20, 0x9d, 0x41, 0x4e, 0xf2, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+  0x92, 0x2b, 0x85, 0xe1, 0x6f, 0x60, 0x63, 0x97, 0x7d, 0x76, 0x42, 0x05, 0xbb, 0x92, 0x5e, 0x78,
+  0x15, 0xd3, 0xcd, 0xde, 0xae, 0x8b, 0x5e, 0x0e, 0xc8, 0xf0, 0x91, 0x45, 0xd1, 0x65, 0xc0, 0xcb,
+  0xc6, 0x0d, 0x3b, 0xd5, 0xe9, 0x14, 0x07, 0x7a, 0x7c, 0xc5, 0xd6, 0x6e, 0x17, 0xaa, 0xdc, 0x2b,
+  0x00, 0x01, 0x9e, 0xdb, 0xd8, 0xdb, 0x65, 0x9b, 0xe0, 0xf7, 0x9a, 0x71, 0x71, 0xe3, 0x06, 0xb0,
+  0xa4, 0x98, 0x89, 0xa6, 0x13, 0x20, 0x58, 0x2e, 0xb6, 0xf9, 0xa6, 0x43, 0x8a, 0xce, 0x83, 0xdc,
+  0x10, 0xd2, 0xba, 0xe3, 0x97, 0x3b, 0x1e, 0xf5, 0x11, 0x7d, 0x32, 0x61, 0x62, 0xbe, 0x82, 0x79,
+  0xb2, 0x14, 0x1e, 0x02, 0xb7, 0x8d, 0x5b, 0x23, 0xe5, 0x99, 0xf0, 0x6b, 0x10, 0xec, 0x78, 0x6e,
+  0x3f, 0x1e, 0xb4, 0xb0, 0x62, 0x1f, 0x2b, 0x68, 0xa2, 0x2c, 0x34, 0x02, 0xc9, 0x5a, 0x6a, 0xb8,
+  0xb5, 0x73, 0xb8, 0x31, 0x0a, 0x0e, 0x62, 0xed, 0x34, 0x08, 0x0c, 0x45, 0x9e, 0xc2, 0x3b, 0xd9,
+  0x97, 0x4c, 0xd4, 0xba, 0xa0, 0xd9, 0x61, 0xc3, 0xb2, 0x71, 0x38, 0x2a, 0xed, 0x6a, 0xb7, 0xe0,
+  0xfb, 0x6c, 0xca, 0x20, 0xd4, 0x82, 0xfc, 0xee, 0x1e, 0x94, 0xae, 0xd7, 0x30, 0xfd, 0x54, 0x46,
+  0xda, 0xe0, 0xbb, 0x30, 0xf6, 0x98, 0xf7, 0x74, 0xa2, 0x21, 0x91, 0xf1, 0x23, 0x67, 0x58, 0x4d,
+  0x05, 0x9f, 0xd5, 0xa6, 0xf3, 0x9e, 0x34, 0xde, 0xd7, 0x2b, 0x8a, 0x5f, 0x76, 0x25, 0xb2, 0xd6,
+  0x56, 0x65, 0x2d, 0x25, 0x10, 0x6f, 0x26, 0x1e, 0x35, 0x01, 0x93, 0xe2, 0xf0, 0x3f, 0xa1, 0x23,
+  0xd4, 0x27, 0xb5, 0x81, 0x74, 0xf1, 0x91, 0xbf, 0x91, 0x5a, 0x1b, 0xa3, 0x0e, 0x20, 0x56, 0xd0,
+  0x17, 0x17, 0x2a, 0xfe, 0xba, 0x88, 0xeb, 0x5d, 0xa8, 0xa9, 0x73, 0x0f, 0x34, 0x92, 0x83, 0x2a,
+  0x31, 0x82, 0x01, 0x50, 0x30, 0x82, 0x01, 0x4c, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x41, 0xcf,
+  0xa4, 0x01, 0xb8, 0x94, 0x1e, 0x75, 0xb8, 0xc8, 0xe0, 0x5a, 0x29, 0xd4, 0xbb, 0x12, 0xd1, 0x78,
+  0xfa, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x01, 0x00, 0x21, 0x20, 0x17, 0x73, 0x39, 0x2b, 0xc1, 0x1b, 0xf2, 0xa2, 0x5a, 0xa5,
+  0x77, 0xd6, 0x93, 0xd1, 0x46, 0x43, 0x80, 0xad, 0xf1, 0x2c, 0xba, 0x27, 0xaf, 0xfa, 0x0e, 0x2b,
+  0xfc, 0xf3, 0x45, 0xbe, 0x39, 0xd6, 0x1e, 0xb7, 0xe2, 0xb9, 0x9a, 0x81, 0xe9, 0x2d, 0xaa, 0xd3,
+  0x9a, 0x37, 0xea, 0x43, 0xb5, 0xe7, 0xed, 0x60, 0xd8, 0x15, 0xff, 0x64, 0x27, 0x0e, 0x6a, 0x05,
+  0xaf, 0xd1, 0x6e, 0xbf, 0x4e, 0x8d, 0x19, 0x15, 0x72, 0x8b, 0xb5, 0x8c, 0x3b, 0x7b, 0xaf, 0xd3,
+  0x79, 0xd6, 0x73, 0xe2, 0x61, 0x48, 0xca, 0xc1, 0xa3, 0x8e, 0x48, 0x7b, 0x39, 0xa4, 0x29, 0x24,
+  0xf3, 0x08, 0x28, 0x13, 0x58, 0x9c, 0xdc, 0x93, 0x8d, 0x17, 0xfe, 0xa3, 0x70, 0x80, 0xad, 0x62,
+  0xbe, 0xae, 0x55, 0xff, 0x14, 0x98, 0x08, 0x84, 0xe5, 0xa2, 0xed, 0xac, 0xc2, 0x9d, 0xc3, 0x1d,
+  0x25, 0xc6, 0x3e, 0xa6, 0x2f, 0xb7, 0xec, 0x65, 0xb4, 0xbc, 0x49, 0xf3, 0x32, 0xf6, 0xd4, 0x5f,
+  0x72, 0x95, 0x58, 0x28, 0x81, 0x5e, 0x69, 0x35, 0x04, 0x0c, 0x75, 0x96, 0xf9, 0xaa, 0xa2, 0x64,
+  0xdd, 0xe0, 0x52, 0x3d, 0x33, 0x4c, 0x27, 0xb0, 0x4a, 0xc3, 0xf1, 0xc5, 0x81, 0x31, 0x65, 0xab,
+  0xf9, 0x2f, 0x42, 0x0e, 0x0b, 0xc8, 0x54, 0xc9, 0x47, 0x01, 0xb5, 0xe5, 0xc0, 0x55, 0x22, 0xb3,
+  0xcc, 0x26, 0xca, 0x08, 0xcc, 0x62, 0x09, 0x54, 0x3a, 0xa0, 0xfc, 0x5a, 0x3a, 0x6a, 0x28, 0xb6,
+  0x86, 0xac, 0xa6, 0x4b, 0xce, 0x41, 0xd3, 0xe5, 0xa4, 0xd6, 0xc5, 0x22, 0x64, 0x4c, 0x8b, 0x8d,
+  0xa2, 0xec, 0xe9, 0x11, 0x6c, 0x39, 0x96, 0xc7, 0xfd, 0x30, 0xab, 0xe7, 0x28, 0xb4, 0xab, 0xc6,
+  0x8a, 0x64, 0xad, 0xe2, 0x84, 0xf0, 0x46, 0xa4, 0x01, 0xf2, 0x7a, 0x0d, 0x62, 0xe6, 0x80, 0x8a,
+  0xf7, 0xfb, 0xac, 0x3a, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x03, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x02, 0xfb, 0x30, 0x82, 0x01, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x41,
+  0xcf, 0xa4, 0x01, 0xb8, 0x94, 0x1e, 0x75, 0xb8, 0xc8, 0xe0, 0x5a, 0x29, 0xd4, 0xbb, 0x12, 0xd1,
+  0x78, 0xfa, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x30,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xb9, 0x6f, 0x6d, 0x8f, 0xe4, 0xc3, 0x53, 0xa3, 0x7e, 0xe4, 0x02, 0x02, 0x6d, 0x3e, 0x1b,
+  0xae, 0x2a, 0xd1, 0x78, 0xbb, 0xc3, 0x6d, 0xff, 0x66, 0xc9, 0x38, 0x03, 0xda, 0x1f, 0x44, 0x84,
+  0x0b, 0xa2, 0xf3, 0x3b, 0x57, 0xb9, 0xc2, 0xfb, 0x5e, 0xbe, 0x57, 0x70, 0x44, 0xe7, 0xc7, 0x7d,
+  0xcb, 0x82, 0x54, 0x29, 0x01, 0x3b, 0x00, 0x0c, 0x31, 0x8e, 0x81, 0x1c, 0x25, 0x76, 0x76, 0x1d,
+  0xcc, 0x33, 0xbf, 0xfa, 0x50, 0xd5, 0xd5, 0xb1, 0x25, 0x66, 0x9d, 0x1d, 0x83, 0x01, 0x3b, 0x7e,
+  0x4f, 0xf2, 0xf9, 0x47, 0x59, 0x07, 0x5e, 0x46, 0x1d, 0x17, 0x6a, 0xd9, 0x56, 0x94, 0x54, 0xba,
+  0xb7, 0xe8, 0x55, 0x9a, 0x14, 0x23, 0x9d, 0x08, 0xf4, 0x0d, 0x6b, 0xe1, 0xe9, 0x1a, 0x60, 0xec,
+  0x4b, 0x09, 0x7b, 0x91, 0xb4, 0x66, 0x1a, 0xb0, 0xfc, 0x22, 0x0f, 0xc3, 0x35, 0xa5, 0x46, 0x9a,
+  0x91, 0x5a, 0x59, 0x62, 0x84, 0xba, 0xba, 0x8a, 0x1a, 0x24, 0x4d, 0x72, 0x06, 0xbc, 0x49, 0x22,
+  0x28, 0x3c, 0x75, 0x9c, 0xfd, 0x39, 0x58, 0xd7, 0xf8, 0xfe, 0x45, 0xba, 0x63, 0x59, 0xe1, 0x97,
+  0xf9, 0xf9, 0x52, 0x49, 0x1d, 0x4e, 0x01, 0x07, 0xa6, 0xf1, 0x1e, 0x30, 0xd0, 0x29, 0x97, 0x4e,
+  0xcb, 0x32, 0x9c, 0xa6, 0xa3, 0x1b, 0x10, 0x17, 0xd0, 0xe4, 0x63, 0x04, 0x67, 0x1e, 0xe2, 0xc3,
+  0x5c, 0xd0, 0xdc, 0x37, 0x5a, 0x4c, 0x62, 0xe4, 0x49, 0x22, 0x32, 0x08, 0xec, 0x1a, 0x2b, 0x07,
+  0x7b, 0xb8, 0xa2, 0x45, 0xad, 0x3b, 0x3a, 0xca, 0x7f, 0x24, 0xbf, 0x8f, 0x30, 0xa4, 0x19, 0x7c,
+  0xc3, 0xc0, 0x36, 0xec, 0x9b, 0x72, 0x86, 0x29, 0x94, 0x04, 0xe0, 0x12, 0xd3, 0xa8, 0x57, 0x66,
+  0x5a, 0xa1, 0x94, 0x0f, 0xe6, 0x2a, 0x6a, 0x8f, 0xe7, 0x9f, 0x17, 0xb2, 0xdb, 0xf4, 0x74, 0xd2,
+  0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x8e, 0xa8, 0x8c, 0xce, 0x26, 0xa5, 0xdc, 0x83, 0x6a, 0x9f, 0x19,
+  0x9a, 0x88, 0xd1, 0x87, 0x20, 0x9d, 0x41, 0x4e, 0xf2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x8e, 0xa8, 0x8c, 0xce, 0x26, 0xa5, 0xdc, 0x83, 0x6a, 0x9f,
+  0x19, 0x9a, 0x88, 0xd1, 0x87, 0x20, 0x9d, 0x41, 0x4e, 0xf2, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x92,
+  0x2b, 0x85, 0xe1, 0x6f, 0x60, 0x63, 0x97, 0x7d, 0x76, 0x42, 0x05, 0xbb, 0x92, 0x5e, 0x78, 0x15,
+  0xd3, 0xcd, 0xde, 0xae, 0x8b, 0x5e, 0x0e, 0xc8, 0xf0, 0x91, 0x45, 0xd1, 0x65, 0xc0, 0xcb, 0xc6,
+  0x0d, 0x3b, 0xd5, 0xe9, 0x14, 0x07, 0x7a, 0x7c, 0xc5, 0xd6, 0x6e, 0x17, 0xaa, 0xdc, 0x2b, 0x00,
+  0x01, 0x9e, 0xdb, 0xd8, 0xdb, 0x65, 0x9b, 0xe0, 0xf7, 0x9a, 0x71, 0x71, 0xe3, 0x06, 0xb0, 0xa4,
+  0x98, 0x89, 0xa6, 0x13, 0x20, 0x58, 0x2e, 0xb6, 0xf9, 0xa6, 0x43, 0x8a, 0xce, 0x83, 0xdc, 0x10,
+  0xd2, 0xba, 0xe3, 0x97, 0x3b, 0x1e, 0xf5, 0x11, 0x7d, 0x32, 0x61, 0x62, 0xbe, 0x82, 0x79, 0xb2,
+  0x14, 0x1e, 0x02, 0xb7, 0x8d, 0x5b, 0x23, 0xe5, 0x99, 0xf0, 0x6b, 0x10, 0xec, 0x78, 0x6e, 0x3f,
+  0x1e, 0xb4, 0xb0, 0x62, 0x1f, 0x2b, 0x68, 0xa2, 0x2c, 0x34, 0x02, 0xc9, 0x5a, 0x6a, 0xb8, 0xb5,
+  0x73, 0xb8, 0x31, 0x0a, 0x0e, 0x62, 0xed, 0x34, 0x08, 0x0c, 0x45, 0x9e, 0xc2, 0x3b, 0xd9, 0x97,
+  0x4c, 0xd4, 0xba, 0xa0, 0xd9, 0x61, 0xc3, 0xb2, 0x71, 0x38, 0x2a, 0xed, 0x6a, 0xb7, 0xe0, 0xfb,
+  0x6c, 0xca, 0x20, 0xd4, 0x82, 0xfc, 0xee, 0x1e, 0x94, 0xae, 0xd7, 0x30, 0xfd, 0x54, 0x46, 0xda,
+  0xe0, 0xbb, 0x30, 0xf6, 0x98, 0xf7, 0x74, 0xa2, 0x21, 0x91, 0xf1, 0x23, 0x67, 0x58, 0x4d, 0x05,
+  0x9f, 0xd5, 0xa6, 0xf3, 0x9e, 0x34, 0xde, 0xd7, 0x2b, 0x8a, 0x5f, 0x76, 0x25, 0xb2, 0xd6, 0x56,
+  0x65, 0x2d, 0x25, 0x10, 0x6f, 0x26, 0x1e, 0x35, 0x01, 0x93, 0xe2, 0xf0, 0x3f, 0xa1, 0x23, 0xd4,
+  0x27, 0xb5, 0x81, 0x74, 0xf1, 0x91, 0xbf, 0x91, 0x5a, 0x1b, 0xa3, 0x0e, 0x20, 0x56, 0xd0, 0x17,
+  0x17, 0x2a, 0xfe, 0xba, 0x88, 0xeb, 0x5d, 0xa8, 0xa9, 0x73, 0x0f, 0x34, 0x92, 0x83, 0x2a
+};
+
+UINT32 gPkRsa2048Sha256Size = sizeof(gPkRsa2048Sha256);
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c
new file mode 100644
index 0000000000..a0e81d7bd1
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkRsa3072Sha256[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x14, 0x06, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x05, 0xf8, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x03,
+  0xff, 0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x0e, 0xa9, 0x76, 0xb9, 0x2d, 0x79, 0xbe, 0xc2, 0xc2, 0xd8, 0x07, 0x15, 0xb8, 0x33, 0x3e, 0x89,
+  0x03, 0xb6, 0xe3, 0x05, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x32, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01,
+  0x81, 0x00, 0xbb, 0xbf, 0xa1, 0xf3, 0x31, 0x4e, 0x48, 0xaf, 0x6e, 0xa9, 0x11, 0x1e, 0x4f, 0x60,
+  0xbb, 0x03, 0xac, 0x64, 0x03, 0x56, 0xed, 0x09, 0xc8, 0x64, 0x2a, 0xe7, 0x8a, 0x60, 0x2a, 0x3e,
+  0x44, 0xc1, 0xbd, 0x47, 0x30, 0x0c, 0xb1, 0x95, 0x62, 0x5b, 0xd1, 0x05, 0xa2, 0x37, 0x9e, 0x91,
+  0x9d, 0x96, 0x08, 0x27, 0x29, 0xb7, 0x44, 0x9f, 0x06, 0xce, 0x7d, 0xf1, 0xcd, 0x0d, 0x0c, 0x6a,
+  0x0b, 0x89, 0xb4, 0x7f, 0x8a, 0x77, 0xdd, 0x93, 0xab, 0x19, 0x60, 0x8f, 0xa0, 0xd3, 0x67, 0x4c,
+  0x56, 0x6c, 0xdc, 0x65, 0x27, 0x2d, 0x12, 0x82, 0x8b, 0x22, 0xcd, 0x3e, 0x8e, 0x7a, 0xf9, 0x5f,
+  0x4c, 0xff, 0x4a, 0xa6, 0x52, 0x25, 0xf3, 0xc2, 0x97, 0x41, 0x45, 0x7d, 0xd9, 0x04, 0xd0, 0x8c,
+  0x7b, 0x40, 0xcf, 0x04, 0x1b, 0x5e, 0x85, 0xe9, 0x8f, 0xfa, 0x7b, 0xde, 0x88, 0x5e, 0xd2, 0xf0,
+  0x87, 0xb2, 0x9f, 0x7d, 0x18, 0x29, 0xa9, 0xbc, 0x0c, 0x8a, 0x3d, 0x79, 0xbe, 0x6d, 0x38, 0x67,
+  0xbe, 0x90, 0xaa, 0xf9, 0x2b, 0xbc, 0x3c, 0x41, 0x84, 0xf0, 0x7e, 0xb3, 0x2c, 0x54, 0x83, 0x77,
+  0x50, 0x1a, 0x59, 0x5e, 0xe4, 0x75, 0x29, 0xb0, 0xf7, 0xea, 0xb9, 0x71, 0x8e, 0x68, 0xbf, 0xf2,
+  0xba, 0xbf, 0x85, 0xae, 0x35, 0xa2, 0xfa, 0x23, 0x45, 0x07, 0xd0, 0xc8, 0xb2, 0xd4, 0xc0, 0x4f,
+  0x66, 0x55, 0x53, 0x0e, 0x49, 0x00, 0x2b, 0xd8, 0x13, 0xb7, 0x17, 0x42, 0xea, 0x94, 0xd2, 0xab,
+  0x88, 0x06, 0xb1, 0x0a, 0x1b, 0x73, 0xde, 0xdb, 0x46, 0xfa, 0xfa, 0x3d, 0xb8, 0x07, 0xd5, 0xf8,
+  0x8b, 0xc9, 0x37, 0x83, 0x77, 0x12, 0xbc, 0xee, 0xd0, 0xcd, 0xa2, 0xbb, 0xa6, 0x7e, 0x08, 0xc0,
+  0x94, 0xa8, 0x38, 0x08, 0xff, 0xce, 0xd3, 0x3c, 0xa1, 0x03, 0xef, 0x37, 0xaa, 0x60, 0x08, 0xa4,
+  0xf5, 0x11, 0xae, 0xa2, 0x0f, 0x87, 0x49, 0xeb, 0x7e, 0x69, 0xe8, 0xba, 0xc3, 0xab, 0xc8, 0x12,
+  0xa5, 0x3d, 0x32, 0xff, 0x69, 0x2c, 0x25, 0x6d, 0xe0, 0x4d, 0x31, 0xb6, 0x6f, 0x7b, 0x3a, 0xb9,
+  0x84, 0x56, 0x5b, 0xfb, 0xf1, 0xce, 0x2a, 0xcd, 0x04, 0xb5, 0x1e, 0x3e, 0xa1, 0x1a, 0xdf, 0x0e,
+  0xbe, 0x5d, 0x8d, 0x49, 0xef, 0xaa, 0x68, 0xfc, 0xe3, 0x7a, 0x4c, 0xf4, 0xbd, 0xd4, 0xf7, 0x53,
+  0x7b, 0xb1, 0x94, 0x68, 0x2f, 0xe5, 0x24, 0x52, 0xd4, 0xbd, 0x33, 0x8a, 0xa0, 0xf7, 0x4c, 0x25,
+  0x57, 0x3f, 0x64, 0xb6, 0x9e, 0x7d, 0x14, 0x0d, 0xc9, 0xa2, 0x9b, 0x74, 0x14, 0xd3, 0xe6, 0xf8,
+  0x8f, 0xfe, 0x41, 0x9c, 0xe9, 0xeb, 0xbe, 0x3e, 0xbc, 0xe5, 0xd5, 0x89, 0x77, 0xc8, 0xc7, 0xc2,
+  0x60, 0xa6, 0x2e, 0xb3, 0xfe, 0x03, 0xa5, 0x0b, 0x41, 0xe6, 0x2e, 0xd1, 0xd6, 0xac, 0x02, 0x89,
+  0x46, 0x15, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd4, 0xe9, 0x80, 0xf0, 0xb4, 0xb9, 0x68, 0x8b, 0x8b, 0xfe,
+  0x4d, 0xa8, 0x76, 0xf7, 0x5a, 0xfc, 0x3b, 0xc8, 0xd6, 0x49, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd4, 0xe9, 0x80, 0xf0, 0xb4, 0xb9, 0x68, 0x8b, 0x8b,
+  0xfe, 0x4d, 0xa8, 0x76, 0xf7, 0x5a, 0xfc, 0x3b, 0xc8, 0xd6, 0x49, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00,
+  0x48, 0x49, 0xa3, 0x80, 0x34, 0xf4, 0xb5, 0x92, 0xb4, 0x94, 0x02, 0x39, 0x6a, 0xfb, 0x1e, 0xc1,
+  0xbf, 0xfc, 0xcd, 0x3d, 0xcd, 0x02, 0x43, 0x2c, 0xe8, 0xa0, 0xcf, 0x5e, 0xbf, 0x78, 0x3a, 0x6e,
+  0x6f, 0x42, 0x87, 0x80, 0xee, 0x13, 0x7c, 0x88, 0x38, 0xa4, 0x36, 0x9f, 0xd5, 0x33, 0xc7, 0x0a,
+  0x0a, 0x46, 0x05, 0xf8, 0xa9, 0x50, 0x38, 0x3d, 0x44, 0x44, 0x21, 0x10, 0xcf, 0x06, 0xf7, 0x09,
+  0xd0, 0x06, 0xff, 0x3d, 0x3e, 0x0a, 0xd7, 0x27, 0xb6, 0x82, 0x37, 0x68, 0xd0, 0x22, 0xd1, 0x2a,
+  0x9e, 0xc1, 0x62, 0xc8, 0x5f, 0x43, 0xb4, 0x23, 0xe0, 0x98, 0x3c, 0x69, 0x36, 0x2d, 0x4a, 0x2a,
+  0xd3, 0xbd, 0x00, 0x9c, 0x1e, 0x7e, 0xd9, 0xaa, 0xf8, 0x00, 0x5f, 0xd9, 0x6a, 0xea, 0x4e, 0x8c,
+  0xe2, 0x03, 0x28, 0x4d, 0xd6, 0xa3, 0xd2, 0x3e, 0xa2, 0x95, 0x6a, 0xe8, 0x2a, 0x6d, 0xde, 0xa4,
+  0x1e, 0xda, 0xd4, 0xb6, 0xfa, 0xb9, 0x76, 0x35, 0x7e, 0x5c, 0xf4, 0xb0, 0x72, 0xf5, 0x82, 0x3c,
+  0xa9, 0x37, 0x5f, 0x49, 0x5c, 0x4a, 0x18, 0xd7, 0xa7, 0x79, 0xd0, 0x26, 0x26, 0xe8, 0x5b, 0x2f,
+  0x67, 0x90, 0x7a, 0xe9, 0x67, 0x2e, 0xec, 0x14, 0x01, 0x9a, 0x69, 0xb7, 0x59, 0xb6, 0x66, 0xfc,
+  0x5c, 0xd8, 0x0a, 0x78, 0x94, 0x2e, 0x90, 0x28, 0x22, 0xc9, 0xfa, 0xf9, 0x0e, 0x8d, 0x8e, 0x15,
+  0xc2, 0xc1, 0x62, 0xae, 0xec, 0xba, 0xec, 0x5d, 0x95, 0xb4, 0x11, 0x2c, 0xb5, 0x69, 0xd1, 0xcd,
+  0x2f, 0xb2, 0xfb, 0xc2, 0x50, 0xe3, 0xf2, 0xf8, 0x1a, 0xe8, 0x7c, 0xf5, 0x62, 0x3b, 0x3d, 0xcc,
+  0x1e, 0x7d, 0xe7, 0x54, 0x8f, 0x82, 0xc5, 0x93, 0x7b, 0x3f, 0x3a, 0x41, 0x7f, 0x32, 0x01, 0xdb,
+  0x87, 0x7c, 0x95, 0xf2, 0x2a, 0x7c, 0x30, 0x7b, 0x80, 0xe1, 0x24, 0x8c, 0x18, 0x5c, 0xdd, 0xba,
+  0xeb, 0x96, 0x2b, 0x73, 0x96, 0x87, 0x6d, 0xc5, 0xe1, 0x76, 0xc3, 0x07, 0x1e, 0x36, 0x06, 0x11,
+  0x6c, 0xd7, 0x7e, 0xe8, 0xbd, 0x9d, 0xb4, 0xd7, 0x0d, 0xf4, 0xef, 0x34, 0xc1, 0x75, 0x99, 0x29,
+  0x39, 0x81, 0x31, 0xbe, 0xa6, 0xf7, 0x26, 0xc0, 0xcf, 0xe3, 0x4c, 0x4d, 0xca, 0x86, 0x91, 0x4b,
+  0xeb, 0x8b, 0x2c, 0x45, 0x5c, 0x80, 0x37, 0xa8, 0xa5, 0x71, 0xce, 0x92, 0x72, 0x90, 0xae, 0x6f,
+  0x87, 0x48, 0xcf, 0x62, 0xe1, 0x5d, 0x74, 0xfa, 0xf3, 0xd2, 0x69, 0x7a, 0xee, 0x1e, 0x5b, 0xdf,
+  0x69, 0x47, 0x7d, 0x77, 0xb6, 0x64, 0xc7, 0xd0, 0xcf, 0xb1, 0xe9, 0xa8, 0xfc, 0x36, 0x7f, 0xaa,
+  0x0c, 0xe2, 0x8d, 0xaf, 0x6c, 0x96, 0x8d, 0x97, 0xf7, 0x1d, 0x95, 0xa2, 0x27, 0xc6, 0xfa, 0xb7,
+  0xf9, 0xf9, 0xab, 0x29, 0x77, 0xe3, 0x08, 0x20, 0x7b, 0xe6, 0xa5, 0x3a, 0xa5, 0x01, 0xbd, 0xea,
+  0x31, 0x82, 0x01, 0xd0, 0x30, 0x82, 0x01, 0xcc, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x0e, 0xa9,
+  0x76, 0xb9, 0x2d, 0x79, 0xbe, 0xc2, 0xc2, 0xd8, 0x07, 0x15, 0xb8, 0x33, 0x3e, 0x89, 0x03, 0xb6,
+  0xe3, 0x05, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x01, 0x80, 0xa7, 0xdf, 0x37, 0xa8, 0xbc, 0xa5, 0x42, 0xb9, 0x1e, 0x7d, 0x56, 0x9c,
+  0xb1, 0xa1, 0x65, 0x04, 0x2a, 0x00, 0xd4, 0x3c, 0x3d, 0x0d, 0x5f, 0x55, 0x61, 0x92, 0x3c, 0xe7,
+  0x88, 0x14, 0xf2, 0x2a, 0xdb, 0x42, 0x7d, 0x8e, 0x7e, 0xc8, 0x92, 0xb4, 0x29, 0x2a, 0x4e, 0x2c,
+  0x4e, 0xc9, 0x17, 0x76, 0x24, 0xa8, 0xbf, 0xd2, 0x57, 0x53, 0xd6, 0xa8, 0xe1, 0x48, 0xd7, 0x94,
+  0x06, 0xf8, 0xf5, 0x2c, 0x0b, 0x34, 0x60, 0xf9, 0x3a, 0x97, 0xe5, 0x30, 0x74, 0x90, 0x9c, 0x7b,
+  0xc2, 0xd6, 0x73, 0x8d, 0x08, 0x29, 0x20, 0xd2, 0xc4, 0x5f, 0xea, 0x87, 0xe1, 0x29, 0x20, 0xc2,
+  0x22, 0x39, 0xff, 0x26, 0x51, 0x4d, 0xb1, 0xd4, 0xa2, 0xd4, 0x14, 0x55, 0x56, 0x29, 0x7b, 0x14,
+  0xf9, 0x42, 0x65, 0x02, 0xf4, 0x85, 0x7c, 0xa0, 0x2a, 0x9c, 0x9b, 0x72, 0x0e, 0x79, 0xcd, 0xee,
+  0x74, 0x08, 0x3b, 0x1f, 0x12, 0x3d, 0xb2, 0xd5, 0x60, 0xe8, 0xc2, 0x05, 0x78, 0x0d, 0x0b, 0x58,
+  0x9a, 0xba, 0xcf, 0x4f, 0x6b, 0x8c, 0x8d, 0xc6, 0x0c, 0x42, 0xe3, 0xb8, 0xba, 0x7f, 0x16, 0x1b,
+  0x26, 0x19, 0x66, 0xec, 0x5c, 0xdf, 0xa5, 0x8b, 0x30, 0x02, 0x45, 0xa6, 0x9a, 0x3d, 0x6c, 0x9b,
+  0x95, 0xe4, 0x4c, 0x53, 0xdb, 0xf9, 0x6a, 0x78, 0x0a, 0xdc, 0xbe, 0xff, 0xb4, 0x1b, 0x85, 0x28,
+  0x5e, 0x5d, 0x05, 0x6a, 0x6b, 0xe2, 0x9f, 0x0e, 0x36, 0x22, 0x92, 0xae, 0x0c, 0x0b, 0xab, 0x55,
+  0xab, 0xc4, 0xdf, 0xcb, 0xa3, 0x62, 0xa0, 0x21, 0xc3, 0x19, 0xa2, 0x3f, 0x9d, 0xfa, 0x60, 0xb2,
+  0xe7, 0x82, 0x52, 0xca, 0x62, 0x59, 0xd9, 0x3c, 0x83, 0x5e, 0x10, 0x16, 0xf2, 0xcf, 0xb6, 0xaa,
+  0x44, 0x56, 0xc8, 0xc2, 0x89, 0x4c, 0x4f, 0x32, 0x2d, 0x09, 0x4d, 0xd1, 0x7d, 0x71, 0x10, 0xdc,
+  0x09, 0x8b, 0xd1, 0x26, 0x3c, 0xe6, 0x35, 0x0b, 0x66, 0x4b, 0x49, 0x35, 0x22, 0x38, 0x99, 0x5f,
+  0x27, 0x33, 0x03, 0x6e, 0x57, 0x04, 0x90, 0x03, 0x0c, 0x08, 0xd2, 0xda, 0xb1, 0x34, 0x78, 0x49,
+  0x84, 0x98, 0x8e, 0x80, 0x06, 0x9e, 0xf7, 0x9c, 0x5c, 0xe9, 0xcc, 0x23, 0x3a, 0x60, 0xbe, 0x76,
+  0xb6, 0x13, 0x30, 0xdd, 0x48, 0xa0, 0x66, 0xba, 0x79, 0xcc, 0xa1, 0x7c, 0x8c, 0xb7, 0x77, 0x00,
+  0x76, 0x5c, 0x6c, 0x1b, 0xc4, 0x25, 0xba, 0x45, 0x3e, 0x43, 0x27, 0x0b, 0xe5, 0xdc, 0x5f, 0x78,
+  0x83, 0x38, 0x34, 0x12, 0xf1, 0xab, 0xd6, 0xfe, 0xa4, 0x26, 0x51, 0x8e, 0xb9, 0x37, 0x46, 0xe3,
+  0xff, 0x59, 0x37, 0x26, 0xa4, 0xc4, 0xa7, 0xa9, 0xfa, 0xa9, 0xb7, 0xb3, 0x11, 0xf9, 0x87, 0x46,
+  0x7e, 0x5e, 0xca, 0x2e, 0xa5, 0xfc, 0x3e, 0xf3, 0x81, 0xa4, 0x67, 0x7d, 0x38, 0xb2, 0xd8, 0xf3,
+  0xfb, 0x8a, 0xf1, 0x3a, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x04, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x0e,
+  0xa9, 0x76, 0xb9, 0x2d, 0x79, 0xbe, 0xc2, 0xc2, 0xd8, 0x07, 0x15, 0xb8, 0x33, 0x3e, 0x89, 0x03,
+  0xb6, 0xe3, 0x05, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x32,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
+  0x00, 0xbb, 0xbf, 0xa1, 0xf3, 0x31, 0x4e, 0x48, 0xaf, 0x6e, 0xa9, 0x11, 0x1e, 0x4f, 0x60, 0xbb,
+  0x03, 0xac, 0x64, 0x03, 0x56, 0xed, 0x09, 0xc8, 0x64, 0x2a, 0xe7, 0x8a, 0x60, 0x2a, 0x3e, 0x44,
+  0xc1, 0xbd, 0x47, 0x30, 0x0c, 0xb1, 0x95, 0x62, 0x5b, 0xd1, 0x05, 0xa2, 0x37, 0x9e, 0x91, 0x9d,
+  0x96, 0x08, 0x27, 0x29, 0xb7, 0x44, 0x9f, 0x06, 0xce, 0x7d, 0xf1, 0xcd, 0x0d, 0x0c, 0x6a, 0x0b,
+  0x89, 0xb4, 0x7f, 0x8a, 0x77, 0xdd, 0x93, 0xab, 0x19, 0x60, 0x8f, 0xa0, 0xd3, 0x67, 0x4c, 0x56,
+  0x6c, 0xdc, 0x65, 0x27, 0x2d, 0x12, 0x82, 0x8b, 0x22, 0xcd, 0x3e, 0x8e, 0x7a, 0xf9, 0x5f, 0x4c,
+  0xff, 0x4a, 0xa6, 0x52, 0x25, 0xf3, 0xc2, 0x97, 0x41, 0x45, 0x7d, 0xd9, 0x04, 0xd0, 0x8c, 0x7b,
+  0x40, 0xcf, 0x04, 0x1b, 0x5e, 0x85, 0xe9, 0x8f, 0xfa, 0x7b, 0xde, 0x88, 0x5e, 0xd2, 0xf0, 0x87,
+  0xb2, 0x9f, 0x7d, 0x18, 0x29, 0xa9, 0xbc, 0x0c, 0x8a, 0x3d, 0x79, 0xbe, 0x6d, 0x38, 0x67, 0xbe,
+  0x90, 0xaa, 0xf9, 0x2b, 0xbc, 0x3c, 0x41, 0x84, 0xf0, 0x7e, 0xb3, 0x2c, 0x54, 0x83, 0x77, 0x50,
+  0x1a, 0x59, 0x5e, 0xe4, 0x75, 0x29, 0xb0, 0xf7, 0xea, 0xb9, 0x71, 0x8e, 0x68, 0xbf, 0xf2, 0xba,
+  0xbf, 0x85, 0xae, 0x35, 0xa2, 0xfa, 0x23, 0x45, 0x07, 0xd0, 0xc8, 0xb2, 0xd4, 0xc0, 0x4f, 0x66,
+  0x55, 0x53, 0x0e, 0x49, 0x00, 0x2b, 0xd8, 0x13, 0xb7, 0x17, 0x42, 0xea, 0x94, 0xd2, 0xab, 0x88,
+  0x06, 0xb1, 0x0a, 0x1b, 0x73, 0xde, 0xdb, 0x46, 0xfa, 0xfa, 0x3d, 0xb8, 0x07, 0xd5, 0xf8, 0x8b,
+  0xc9, 0x37, 0x83, 0x77, 0x12, 0xbc, 0xee, 0xd0, 0xcd, 0xa2, 0xbb, 0xa6, 0x7e, 0x08, 0xc0, 0x94,
+  0xa8, 0x38, 0x08, 0xff, 0xce, 0xd3, 0x3c, 0xa1, 0x03, 0xef, 0x37, 0xaa, 0x60, 0x08, 0xa4, 0xf5,
+  0x11, 0xae, 0xa2, 0x0f, 0x87, 0x49, 0xeb, 0x7e, 0x69, 0xe8, 0xba, 0xc3, 0xab, 0xc8, 0x12, 0xa5,
+  0x3d, 0x32, 0xff, 0x69, 0x2c, 0x25, 0x6d, 0xe0, 0x4d, 0x31, 0xb6, 0x6f, 0x7b, 0x3a, 0xb9, 0x84,
+  0x56, 0x5b, 0xfb, 0xf1, 0xce, 0x2a, 0xcd, 0x04, 0xb5, 0x1e, 0x3e, 0xa1, 0x1a, 0xdf, 0x0e, 0xbe,
+  0x5d, 0x8d, 0x49, 0xef, 0xaa, 0x68, 0xfc, 0xe3, 0x7a, 0x4c, 0xf4, 0xbd, 0xd4, 0xf7, 0x53, 0x7b,
+  0xb1, 0x94, 0x68, 0x2f, 0xe5, 0x24, 0x52, 0xd4, 0xbd, 0x33, 0x8a, 0xa0, 0xf7, 0x4c, 0x25, 0x57,
+  0x3f, 0x64, 0xb6, 0x9e, 0x7d, 0x14, 0x0d, 0xc9, 0xa2, 0x9b, 0x74, 0x14, 0xd3, 0xe6, 0xf8, 0x8f,
+  0xfe, 0x41, 0x9c, 0xe9, 0xeb, 0xbe, 0x3e, 0xbc, 0xe5, 0xd5, 0x89, 0x77, 0xc8, 0xc7, 0xc2, 0x60,
+  0xa6, 0x2e, 0xb3, 0xfe, 0x03, 0xa5, 0x0b, 0x41, 0xe6, 0x2e, 0xd1, 0xd6, 0xac, 0x02, 0x89, 0x46,
+  0x15, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xd4, 0xe9, 0x80, 0xf0, 0xb4, 0xb9, 0x68, 0x8b, 0x8b, 0xfe, 0x4d,
+  0xa8, 0x76, 0xf7, 0x5a, 0xfc, 0x3b, 0xc8, 0xd6, 0x49, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd4, 0xe9, 0x80, 0xf0, 0xb4, 0xb9, 0x68, 0x8b, 0x8b, 0xfe,
+  0x4d, 0xa8, 0x76, 0xf7, 0x5a, 0xfc, 0x3b, 0xc8, 0xd6, 0x49, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00, 0x48,
+  0x49, 0xa3, 0x80, 0x34, 0xf4, 0xb5, 0x92, 0xb4, 0x94, 0x02, 0x39, 0x6a, 0xfb, 0x1e, 0xc1, 0xbf,
+  0xfc, 0xcd, 0x3d, 0xcd, 0x02, 0x43, 0x2c, 0xe8, 0xa0, 0xcf, 0x5e, 0xbf, 0x78, 0x3a, 0x6e, 0x6f,
+  0x42, 0x87, 0x80, 0xee, 0x13, 0x7c, 0x88, 0x38, 0xa4, 0x36, 0x9f, 0xd5, 0x33, 0xc7, 0x0a, 0x0a,
+  0x46, 0x05, 0xf8, 0xa9, 0x50, 0x38, 0x3d, 0x44, 0x44, 0x21, 0x10, 0xcf, 0x06, 0xf7, 0x09, 0xd0,
+  0x06, 0xff, 0x3d, 0x3e, 0x0a, 0xd7, 0x27, 0xb6, 0x82, 0x37, 0x68, 0xd0, 0x22, 0xd1, 0x2a, 0x9e,
+  0xc1, 0x62, 0xc8, 0x5f, 0x43, 0xb4, 0x23, 0xe0, 0x98, 0x3c, 0x69, 0x36, 0x2d, 0x4a, 0x2a, 0xd3,
+  0xbd, 0x00, 0x9c, 0x1e, 0x7e, 0xd9, 0xaa, 0xf8, 0x00, 0x5f, 0xd9, 0x6a, 0xea, 0x4e, 0x8c, 0xe2,
+  0x03, 0x28, 0x4d, 0xd6, 0xa3, 0xd2, 0x3e, 0xa2, 0x95, 0x6a, 0xe8, 0x2a, 0x6d, 0xde, 0xa4, 0x1e,
+  0xda, 0xd4, 0xb6, 0xfa, 0xb9, 0x76, 0x35, 0x7e, 0x5c, 0xf4, 0xb0, 0x72, 0xf5, 0x82, 0x3c, 0xa9,
+  0x37, 0x5f, 0x49, 0x5c, 0x4a, 0x18, 0xd7, 0xa7, 0x79, 0xd0, 0x26, 0x26, 0xe8, 0x5b, 0x2f, 0x67,
+  0x90, 0x7a, 0xe9, 0x67, 0x2e, 0xec, 0x14, 0x01, 0x9a, 0x69, 0xb7, 0x59, 0xb6, 0x66, 0xfc, 0x5c,
+  0xd8, 0x0a, 0x78, 0x94, 0x2e, 0x90, 0x28, 0x22, 0xc9, 0xfa, 0xf9, 0x0e, 0x8d, 0x8e, 0x15, 0xc2,
+  0xc1, 0x62, 0xae, 0xec, 0xba, 0xec, 0x5d, 0x95, 0xb4, 0x11, 0x2c, 0xb5, 0x69, 0xd1, 0xcd, 0x2f,
+  0xb2, 0xfb, 0xc2, 0x50, 0xe3, 0xf2, 0xf8, 0x1a, 0xe8, 0x7c, 0xf5, 0x62, 0x3b, 0x3d, 0xcc, 0x1e,
+  0x7d, 0xe7, 0x54, 0x8f, 0x82, 0xc5, 0x93, 0x7b, 0x3f, 0x3a, 0x41, 0x7f, 0x32, 0x01, 0xdb, 0x87,
+  0x7c, 0x95, 0xf2, 0x2a, 0x7c, 0x30, 0x7b, 0x80, 0xe1, 0x24, 0x8c, 0x18, 0x5c, 0xdd, 0xba, 0xeb,
+  0x96, 0x2b, 0x73, 0x96, 0x87, 0x6d, 0xc5, 0xe1, 0x76, 0xc3, 0x07, 0x1e, 0x36, 0x06, 0x11, 0x6c,
+  0xd7, 0x7e, 0xe8, 0xbd, 0x9d, 0xb4, 0xd7, 0x0d, 0xf4, 0xef, 0x34, 0xc1, 0x75, 0x99, 0x29, 0x39,
+  0x81, 0x31, 0xbe, 0xa6, 0xf7, 0x26, 0xc0, 0xcf, 0xe3, 0x4c, 0x4d, 0xca, 0x86, 0x91, 0x4b, 0xeb,
+  0x8b, 0x2c, 0x45, 0x5c, 0x80, 0x37, 0xa8, 0xa5, 0x71, 0xce, 0x92, 0x72, 0x90, 0xae, 0x6f, 0x87,
+  0x48, 0xcf, 0x62, 0xe1, 0x5d, 0x74, 0xfa, 0xf3, 0xd2, 0x69, 0x7a, 0xee, 0x1e, 0x5b, 0xdf, 0x69,
+  0x47, 0x7d, 0x77, 0xb6, 0x64, 0xc7, 0xd0, 0xcf, 0xb1, 0xe9, 0xa8, 0xfc, 0x36, 0x7f, 0xaa, 0x0c,
+  0xe2, 0x8d, 0xaf, 0x6c, 0x96, 0x8d, 0x97, 0xf7, 0x1d, 0x95, 0xa2, 0x27, 0xc6, 0xfa, 0xb7, 0xf9,
+  0xf9, 0xab, 0x29, 0x77, 0xe3, 0x08, 0x20, 0x7b, 0xe6, 0xa5, 0x3a, 0xa5, 0x01, 0xbd, 0xea
+};
+
+UINT32 gPkRsa3072Sha256Size = sizeof(gPkRsa3072Sha256);
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c
new file mode 100644
index 0000000000..68b12d3891
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkRsa3072Sha384[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x14, 0x06, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x05, 0xf8, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x03,
+  0xff, 0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x70, 0x25, 0x22, 0x46, 0xb2, 0xc0, 0xa9, 0x51, 0x32, 0xb1, 0xd2, 0xa3, 0xa2, 0x1c, 0xf5, 0x61,
+  0x90, 0x43, 0x95, 0x99, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0c, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x39, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x39, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01,
+  0x81, 0x00, 0xac, 0x30, 0xdc, 0x67, 0x6b, 0xf0, 0x73, 0xd4, 0x6c, 0xae, 0x0b, 0xbb, 0x81, 0x45,
+  0x0d, 0x22, 0x62, 0xb4, 0x7a, 0x67, 0x02, 0x3a, 0x74, 0x86, 0x58, 0xfd, 0x33, 0xb2, 0xf4, 0x50,
+  0x2f, 0x64, 0xa7, 0xce, 0x20, 0x83, 0x76, 0x00, 0x3f, 0xce, 0xd3, 0xbd, 0x92, 0xfe, 0x48, 0x1e,
+  0x8f, 0x18, 0xd7, 0x61, 0xfd, 0xbc, 0x5c, 0xf6, 0x54, 0x8a, 0xb8, 0xd9, 0x19, 0xc4, 0x5e, 0x2b,
+  0x5a, 0x23, 0xab, 0x62, 0x6c, 0xf9, 0x59, 0x1a, 0xf8, 0x99, 0xec, 0x9e, 0xea, 0x09, 0x1a, 0xe7,
+  0x4c, 0x55, 0x50, 0x33, 0x96, 0x51, 0xd3, 0xc4, 0x4d, 0x6d, 0xf0, 0x77, 0x63, 0x54, 0x37, 0xda,
+  0x8d, 0x9b, 0xdb, 0x01, 0x59, 0x2e, 0x0f, 0xd0, 0x03, 0xf6, 0x4d, 0x63, 0x78, 0xd2, 0x17, 0xa2,
+  0x13, 0x92, 0x1a, 0x7d, 0x16, 0xf4, 0x84, 0x20, 0xc4, 0xb1, 0x38, 0x24, 0xe4, 0xef, 0x52, 0xca,
+  0x66, 0x00, 0xfb, 0x0b, 0x66, 0x91, 0xb3, 0x0b, 0x80, 0xd4, 0xd2, 0x94, 0xa4, 0x47, 0x83, 0xca,
+  0xe4, 0xba, 0xa0, 0xd9, 0x77, 0x83, 0xc7, 0x37, 0xad, 0xca, 0x5a, 0xae, 0xf3, 0x48, 0x52, 0x68,
+  0xa5, 0x8f, 0x27, 0x58, 0x2e, 0xaa, 0x0a, 0x75, 0x9c, 0x1c, 0x00, 0x60, 0xbc, 0xdd, 0xf5, 0xb8,
+  0xbb, 0xc4, 0x62, 0x8b, 0x9e, 0x7a, 0xaf, 0xd3, 0x2f, 0x5d, 0xcc, 0xbe, 0x8f, 0x24, 0x31, 0xf8,
+  0xff, 0xb2, 0xbd, 0xc0, 0xe9, 0x26, 0x0e, 0x79, 0x65, 0xf8, 0xa1, 0x7f, 0x99, 0x54, 0x9a, 0x6f,
+  0xa0, 0x41, 0x8e, 0x97, 0xff, 0x5d, 0xe4, 0xc2, 0x69, 0xb2, 0x46, 0xb3, 0x7e, 0x26, 0xd4, 0xdc,
+  0x14, 0x2e, 0x72, 0xb5, 0x1e, 0xbd, 0xbb, 0x4c, 0x8b, 0xc3, 0x60, 0xa6, 0x43, 0x37, 0x0a, 0x3b,
+  0x88, 0xc4, 0x47, 0xde, 0x01, 0xda, 0x7c, 0xdd, 0xc2, 0x02, 0x27, 0x56, 0xaa, 0x1b, 0x6f, 0x3a,
+  0x48, 0x38, 0x14, 0xb0, 0x1c, 0xeb, 0xf4, 0x74, 0xdd, 0xc5, 0xd3, 0xa0, 0x77, 0x67, 0xe9, 0x16,
+  0x66, 0xd1, 0x50, 0x9b, 0xca, 0x72, 0x4f, 0x2a, 0x08, 0x1f, 0xbd, 0x36, 0xd3, 0x0d, 0x1c, 0x79,
+  0xf4, 0x7d, 0x5c, 0xf8, 0xe6, 0x3b, 0x9e, 0xce, 0xe4, 0x2a, 0xaa, 0x29, 0x07, 0xd0, 0x2a, 0xcc,
+  0xb8, 0x3b, 0xe5, 0x4b, 0x20, 0xe7, 0xcb, 0x7f, 0x28, 0x92, 0x84, 0x23, 0x13, 0x87, 0x44, 0x57,
+  0x68, 0xaa, 0xf0, 0x56, 0xc4, 0xc0, 0x01, 0xc3, 0x59, 0xb2, 0x87, 0x99, 0x97, 0x02, 0x01, 0x27,
+  0x83, 0x5c, 0xb7, 0x86, 0xbf, 0xac, 0xe6, 0xad, 0x91, 0x48, 0x2d, 0x95, 0x6e, 0x4d, 0x94, 0x88,
+  0xb2, 0xd1, 0x9b, 0xa7, 0xca, 0x91, 0xc0, 0xf1, 0xb4, 0xa8, 0xc1, 0x0e, 0xae, 0x68, 0x70, 0xc5,
+  0x5e, 0x95, 0x8c, 0x8a, 0x07, 0xe1, 0xf3, 0x8d, 0xd9, 0x82, 0x84, 0x09, 0x5d, 0x94, 0x09, 0x0b,
+  0x4e, 0xed, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x8f, 0xf2, 0x44, 0x50, 0x0b, 0xa8, 0x40, 0xc5, 0xd1, 0xb3,
+  0x57, 0x0c, 0x47, 0x5b, 0xe1, 0x51, 0x98, 0x7f, 0x1b, 0x6a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x8f, 0xf2, 0x44, 0x50, 0x0b, 0xa8, 0x40, 0xc5, 0xd1,
+  0xb3, 0x57, 0x0c, 0x47, 0x5b, 0xe1, 0x51, 0x98, 0x7f, 0x1b, 0x6a, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00,
+  0xa2, 0x77, 0xf3, 0x1d, 0x71, 0x09, 0x47, 0x1c, 0x6f, 0x39, 0x6b, 0xec, 0xbd, 0x14, 0x9a, 0xa4,
+  0x6e, 0xec, 0xe8, 0x7d, 0xfa, 0x5a, 0x52, 0x98, 0xc7, 0x16, 0xe3, 0x14, 0x7c, 0x20, 0x06, 0x8d,
+  0xc6, 0xd5, 0x27, 0x01, 0x78, 0x05, 0x71, 0xe3, 0xaa, 0x70, 0xcc, 0x56, 0xc2, 0x73, 0x0d, 0xb7,
+  0xa8, 0x36, 0xa4, 0x34, 0x2d, 0xe5, 0x21, 0x76, 0x60, 0xe4, 0xef, 0x7b, 0x9b, 0x3e, 0x00, 0xc3,
+  0xf8, 0xe9, 0x51, 0x2e, 0x7d, 0x59, 0x8a, 0x82, 0x1f, 0xd1, 0x65, 0x1b, 0x8e, 0xbe, 0x6d, 0xd5,
+  0xab, 0x43, 0xbd, 0x3f, 0xc6, 0x91, 0x4a, 0xd4, 0x56, 0x3a, 0xb7, 0x4b, 0x7b, 0xd1, 0xc1, 0xe2,
+  0xa3, 0xae, 0xc7, 0x3d, 0x90, 0xb6, 0x04, 0x05, 0x45, 0xe8, 0x45, 0x31, 0x6b, 0xbc, 0xe0, 0x14,
+  0xed, 0xda, 0xce, 0xf8, 0x87, 0xca, 0xda, 0x08, 0x5d, 0x7c, 0x89, 0xbb, 0xe1, 0xe9, 0x17, 0x00,
+  0x78, 0x7a, 0x06, 0xa9, 0x47, 0x79, 0xf4, 0x6a, 0x99, 0xa8, 0x3a, 0x6f, 0xe5, 0xf1, 0x82, 0xa6,
+  0x1a, 0xa3, 0xfb, 0xfd, 0x1b, 0xe4, 0xd2, 0x0e, 0x52, 0x1e, 0x04, 0x38, 0x4b, 0xf5, 0x17, 0xb2,
+  0x55, 0xc9, 0x2a, 0xbb, 0x1b, 0x8f, 0xe3, 0x54, 0xcc, 0xcb, 0x42, 0x50, 0x9b, 0x30, 0x43, 0x38,
+  0xf5, 0x2a, 0xe7, 0x71, 0x04, 0x7f, 0xb5, 0x1d, 0xe2, 0x7b, 0xeb, 0xf4, 0x90, 0x53, 0x73, 0x42,
+  0xdb, 0x3b, 0x19, 0xe1, 0x8d, 0xdb, 0x86, 0x66, 0x0d, 0xed, 0x77, 0xbf, 0xb2, 0x51, 0xd5, 0xf1,
+  0xa2, 0x94, 0x59, 0xae, 0x8f, 0x49, 0x4e, 0xe0, 0xa6, 0x45, 0x9d, 0x3a, 0x89, 0xaa, 0xb6, 0x61,
+  0x12, 0x61, 0xad, 0x7f, 0x03, 0x4d, 0xb0, 0xc6, 0x9a, 0x60, 0xc4, 0x6c, 0x9d, 0xc6, 0xa7, 0x93,
+  0x1b, 0x27, 0x6b, 0x76, 0xbd, 0x13, 0x8e, 0x92, 0x49, 0x78, 0x2d, 0x54, 0xa7, 0x16, 0x71, 0x01,
+  0x8f, 0xa6, 0xf1, 0xe3, 0xd9, 0x7e, 0x12, 0x75, 0x15, 0x31, 0xd5, 0x3c, 0xa0, 0x2c, 0xbc, 0xc1,
+  0x0c, 0x87, 0xa8, 0x3a, 0x02, 0x87, 0x7d, 0xe5, 0x76, 0xd8, 0xa0, 0x90, 0x97, 0x80, 0xb0, 0x5b,
+  0x77, 0x6e, 0x3a, 0xcd, 0x9f, 0x88, 0xc8, 0xff, 0xe3, 0xf6, 0x16, 0xa1, 0x9c, 0xe2, 0x98, 0x74,
+  0x45, 0x12, 0xf9, 0x88, 0x78, 0xd8, 0x62, 0x1e, 0xff, 0xeb, 0x68, 0x26, 0xa9, 0x64, 0x07, 0xfc,
+  0xa7, 0x58, 0x49, 0xfd, 0x3b, 0x92, 0x83, 0x29, 0xd1, 0xaa, 0xa2, 0x66, 0x76, 0x38, 0x62, 0x9e,
+  0x88, 0x55, 0x83, 0xa6, 0x9e, 0xc1, 0xa2, 0x73, 0xec, 0x03, 0x70, 0x72, 0xb3, 0xd4, 0x01, 0x07,
+  0xd3, 0xbd, 0xba, 0xe7, 0xf5, 0x98, 0xb6, 0x0f, 0x92, 0xa5, 0xf2, 0x9e, 0x44, 0x2d, 0xbb, 0x12,
+  0x1d, 0xbc, 0x1f, 0x63, 0x60, 0x3a, 0xf4, 0xd9, 0xb1, 0x8c, 0x59, 0xc9, 0xc4, 0xa9, 0x77, 0x31,
+  0x31, 0x82, 0x01, 0xd0, 0x30, 0x82, 0x01, 0xcc, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x70, 0x25,
+  0x22, 0x46, 0xb2, 0xc0, 0xa9, 0x51, 0x32, 0xb1, 0xd2, 0xa3, 0xa2, 0x1c, 0xf5, 0x61, 0x90, 0x43,
+  0x95, 0x99, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x01, 0x80, 0x88, 0xd6, 0xed, 0xd7, 0x70, 0x05, 0x93, 0xf5, 0xde, 0xfb, 0x73, 0xee,
+  0x7d, 0xb1, 0x73, 0x42, 0xb1, 0xe9, 0xd7, 0x99, 0xfb, 0xcc, 0x73, 0x5f, 0x2b, 0xe1, 0x3b, 0x27,
+  0x84, 0x40, 0xb9, 0x71, 0x29, 0x54, 0xc0, 0x1b, 0x80, 0xf8, 0xa1, 0x26, 0xc0, 0xaa, 0x64, 0x7f,
+  0xe3, 0xff, 0xd3, 0xce, 0xd3, 0x8c, 0xa5, 0x46, 0x42, 0xf1, 0xe3, 0x0c, 0x97, 0x3e, 0x48, 0x4f,
+  0x61, 0x60, 0x38, 0x56, 0xa2, 0xf0, 0x0c, 0x02, 0x67, 0xa2, 0x5f, 0x9f, 0xb1, 0xc8, 0x48, 0xf6,
+  0xbf, 0x4f, 0x27, 0x57, 0xf2, 0x73, 0xb9, 0x52, 0x9c, 0x54, 0xbd, 0x33, 0x18, 0x97, 0x83, 0x99,
+  0x5d, 0xb0, 0x19, 0x1e, 0xb1, 0x15, 0xb8, 0xcb, 0xe4, 0xe2, 0x82, 0xb7, 0x2c, 0x14, 0xbb, 0x70,
+  0x99, 0x67, 0x10, 0x80, 0xec, 0x7c, 0xfe, 0x74, 0x31, 0x4d, 0x6e, 0x20, 0x80, 0x25, 0x89, 0x67,
+  0x0a, 0xf5, 0x5e, 0x62, 0x7e, 0xd8, 0xf7, 0xf5, 0xb8, 0x0c, 0x31, 0x6c, 0x0e, 0x41, 0x54, 0xb0,
+  0xff, 0xf6, 0xf2, 0xc6, 0x00, 0x34, 0x16, 0x57, 0x72, 0x23, 0xb6, 0xa1, 0x4b, 0xc7, 0x7a, 0xe4,
+  0x84, 0xd0, 0x40, 0x3f, 0xea, 0x7c, 0x95, 0xc2, 0x4d, 0x3d, 0x06, 0xc9, 0x71, 0xa3, 0x94, 0x9d,
+  0x70, 0x3b, 0x23, 0xc2, 0x7d, 0x73, 0xd6, 0xa4, 0xf1, 0x07, 0xe5, 0xb9, 0x4b, 0x59, 0xa5, 0x2c,
+  0xa9, 0xc0, 0x8b, 0x87, 0xaa, 0xba, 0xa5, 0xd1, 0x61, 0xac, 0xa5, 0xb4, 0x38, 0x04, 0x58, 0xb1,
+  0xbe, 0xeb, 0xd9, 0xd7, 0xaf, 0x36, 0xb4, 0xf8, 0xce, 0x32, 0x1e, 0x66, 0xcb, 0x52, 0xe6, 0xc9,
+  0x07, 0xd5, 0xe2, 0x11, 0x3c, 0x5d, 0xd7, 0xca, 0x3b, 0xea, 0x71, 0x62, 0x7f, 0x24, 0x91, 0xd7,
+  0x05, 0x8f, 0x69, 0xfe, 0x10, 0xc7, 0x49, 0xb7, 0xec, 0x91, 0x24, 0x11, 0x43, 0xb4, 0xe6, 0xfe,
+  0xd0, 0x4e, 0xa5, 0x75, 0x6b, 0x48, 0xd6, 0xad, 0x3a, 0xab, 0xed, 0xd4, 0x12, 0x88, 0x67, 0x18,
+  0x2a, 0x90, 0x81, 0xcd, 0x72, 0x68, 0x76, 0xfc, 0xd1, 0xfa, 0x83, 0xed, 0x25, 0x38, 0xc9, 0x71,
+  0xd0, 0x22, 0x7d, 0xd0, 0xd5, 0x20, 0x65, 0xa4, 0x04, 0x19, 0x8e, 0xc2, 0xa3, 0x73, 0x69, 0x9a,
+  0x73, 0x22, 0xf0, 0x7f, 0xf0, 0x3f, 0x7c, 0x6e, 0xf6, 0x77, 0x7c, 0xf0, 0x1a, 0x67, 0x67, 0xda,
+  0x64, 0xec, 0x73, 0xa7, 0xf1, 0x09, 0xd8, 0xab, 0x04, 0x81, 0x66, 0xa3, 0x1e, 0x43, 0x1f, 0x00,
+  0x2e, 0xb1, 0xaa, 0x3d, 0x3c, 0xb6, 0x07, 0xdd, 0x2c, 0x8d, 0x5e, 0x92, 0xdf, 0x2f, 0xd2, 0x3f,
+  0x59, 0xb7, 0xca, 0x6f, 0x7e, 0x9d, 0x6c, 0x2a, 0x3d, 0x90, 0xe1, 0x36, 0x8f, 0x9a, 0xd1, 0xf4,
+  0x46, 0x37, 0x77, 0x0f, 0x9c, 0xd5, 0x62, 0x88, 0x38, 0x44, 0x2a, 0xde, 0x6f, 0xe2, 0xe2, 0x75,
+  0x25, 0xd7, 0x71, 0xb0, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x04, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x03, 0xfb, 0x30, 0x82, 0x02, 0x63, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x70,
+  0x25, 0x22, 0x46, 0xb2, 0xc0, 0xa9, 0x51, 0x32, 0xb1, 0xd2, 0xa3, 0xa2, 0x1c, 0xf5, 0x61, 0x90,
+  0x43, 0x95, 0x99, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x39, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x39,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
+  0x00, 0xac, 0x30, 0xdc, 0x67, 0x6b, 0xf0, 0x73, 0xd4, 0x6c, 0xae, 0x0b, 0xbb, 0x81, 0x45, 0x0d,
+  0x22, 0x62, 0xb4, 0x7a, 0x67, 0x02, 0x3a, 0x74, 0x86, 0x58, 0xfd, 0x33, 0xb2, 0xf4, 0x50, 0x2f,
+  0x64, 0xa7, 0xce, 0x20, 0x83, 0x76, 0x00, 0x3f, 0xce, 0xd3, 0xbd, 0x92, 0xfe, 0x48, 0x1e, 0x8f,
+  0x18, 0xd7, 0x61, 0xfd, 0xbc, 0x5c, 0xf6, 0x54, 0x8a, 0xb8, 0xd9, 0x19, 0xc4, 0x5e, 0x2b, 0x5a,
+  0x23, 0xab, 0x62, 0x6c, 0xf9, 0x59, 0x1a, 0xf8, 0x99, 0xec, 0x9e, 0xea, 0x09, 0x1a, 0xe7, 0x4c,
+  0x55, 0x50, 0x33, 0x96, 0x51, 0xd3, 0xc4, 0x4d, 0x6d, 0xf0, 0x77, 0x63, 0x54, 0x37, 0xda, 0x8d,
+  0x9b, 0xdb, 0x01, 0x59, 0x2e, 0x0f, 0xd0, 0x03, 0xf6, 0x4d, 0x63, 0x78, 0xd2, 0x17, 0xa2, 0x13,
+  0x92, 0x1a, 0x7d, 0x16, 0xf4, 0x84, 0x20, 0xc4, 0xb1, 0x38, 0x24, 0xe4, 0xef, 0x52, 0xca, 0x66,
+  0x00, 0xfb, 0x0b, 0x66, 0x91, 0xb3, 0x0b, 0x80, 0xd4, 0xd2, 0x94, 0xa4, 0x47, 0x83, 0xca, 0xe4,
+  0xba, 0xa0, 0xd9, 0x77, 0x83, 0xc7, 0x37, 0xad, 0xca, 0x5a, 0xae, 0xf3, 0x48, 0x52, 0x68, 0xa5,
+  0x8f, 0x27, 0x58, 0x2e, 0xaa, 0x0a, 0x75, 0x9c, 0x1c, 0x00, 0x60, 0xbc, 0xdd, 0xf5, 0xb8, 0xbb,
+  0xc4, 0x62, 0x8b, 0x9e, 0x7a, 0xaf, 0xd3, 0x2f, 0x5d, 0xcc, 0xbe, 0x8f, 0x24, 0x31, 0xf8, 0xff,
+  0xb2, 0xbd, 0xc0, 0xe9, 0x26, 0x0e, 0x79, 0x65, 0xf8, 0xa1, 0x7f, 0x99, 0x54, 0x9a, 0x6f, 0xa0,
+  0x41, 0x8e, 0x97, 0xff, 0x5d, 0xe4, 0xc2, 0x69, 0xb2, 0x46, 0xb3, 0x7e, 0x26, 0xd4, 0xdc, 0x14,
+  0x2e, 0x72, 0xb5, 0x1e, 0xbd, 0xbb, 0x4c, 0x8b, 0xc3, 0x60, 0xa6, 0x43, 0x37, 0x0a, 0x3b, 0x88,
+  0xc4, 0x47, 0xde, 0x01, 0xda, 0x7c, 0xdd, 0xc2, 0x02, 0x27, 0x56, 0xaa, 0x1b, 0x6f, 0x3a, 0x48,
+  0x38, 0x14, 0xb0, 0x1c, 0xeb, 0xf4, 0x74, 0xdd, 0xc5, 0xd3, 0xa0, 0x77, 0x67, 0xe9, 0x16, 0x66,
+  0xd1, 0x50, 0x9b, 0xca, 0x72, 0x4f, 0x2a, 0x08, 0x1f, 0xbd, 0x36, 0xd3, 0x0d, 0x1c, 0x79, 0xf4,
+  0x7d, 0x5c, 0xf8, 0xe6, 0x3b, 0x9e, 0xce, 0xe4, 0x2a, 0xaa, 0x29, 0x07, 0xd0, 0x2a, 0xcc, 0xb8,
+  0x3b, 0xe5, 0x4b, 0x20, 0xe7, 0xcb, 0x7f, 0x28, 0x92, 0x84, 0x23, 0x13, 0x87, 0x44, 0x57, 0x68,
+  0xaa, 0xf0, 0x56, 0xc4, 0xc0, 0x01, 0xc3, 0x59, 0xb2, 0x87, 0x99, 0x97, 0x02, 0x01, 0x27, 0x83,
+  0x5c, 0xb7, 0x86, 0xbf, 0xac, 0xe6, 0xad, 0x91, 0x48, 0x2d, 0x95, 0x6e, 0x4d, 0x94, 0x88, 0xb2,
+  0xd1, 0x9b, 0xa7, 0xca, 0x91, 0xc0, 0xf1, 0xb4, 0xa8, 0xc1, 0x0e, 0xae, 0x68, 0x70, 0xc5, 0x5e,
+  0x95, 0x8c, 0x8a, 0x07, 0xe1, 0xf3, 0x8d, 0xd9, 0x82, 0x84, 0x09, 0x5d, 0x94, 0x09, 0x0b, 0x4e,
+  0xed, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x8f, 0xf2, 0x44, 0x50, 0x0b, 0xa8, 0x40, 0xc5, 0xd1, 0xb3, 0x57,
+  0x0c, 0x47, 0x5b, 0xe1, 0x51, 0x98, 0x7f, 0x1b, 0x6a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x8f, 0xf2, 0x44, 0x50, 0x0b, 0xa8, 0x40, 0xc5, 0xd1, 0xb3,
+  0x57, 0x0c, 0x47, 0x5b, 0xe1, 0x51, 0x98, 0x7f, 0x1b, 0x6a, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00, 0xa2,
+  0x77, 0xf3, 0x1d, 0x71, 0x09, 0x47, 0x1c, 0x6f, 0x39, 0x6b, 0xec, 0xbd, 0x14, 0x9a, 0xa4, 0x6e,
+  0xec, 0xe8, 0x7d, 0xfa, 0x5a, 0x52, 0x98, 0xc7, 0x16, 0xe3, 0x14, 0x7c, 0x20, 0x06, 0x8d, 0xc6,
+  0xd5, 0x27, 0x01, 0x78, 0x05, 0x71, 0xe3, 0xaa, 0x70, 0xcc, 0x56, 0xc2, 0x73, 0x0d, 0xb7, 0xa8,
+  0x36, 0xa4, 0x34, 0x2d, 0xe5, 0x21, 0x76, 0x60, 0xe4, 0xef, 0x7b, 0x9b, 0x3e, 0x00, 0xc3, 0xf8,
+  0xe9, 0x51, 0x2e, 0x7d, 0x59, 0x8a, 0x82, 0x1f, 0xd1, 0x65, 0x1b, 0x8e, 0xbe, 0x6d, 0xd5, 0xab,
+  0x43, 0xbd, 0x3f, 0xc6, 0x91, 0x4a, 0xd4, 0x56, 0x3a, 0xb7, 0x4b, 0x7b, 0xd1, 0xc1, 0xe2, 0xa3,
+  0xae, 0xc7, 0x3d, 0x90, 0xb6, 0x04, 0x05, 0x45, 0xe8, 0x45, 0x31, 0x6b, 0xbc, 0xe0, 0x14, 0xed,
+  0xda, 0xce, 0xf8, 0x87, 0xca, 0xda, 0x08, 0x5d, 0x7c, 0x89, 0xbb, 0xe1, 0xe9, 0x17, 0x00, 0x78,
+  0x7a, 0x06, 0xa9, 0x47, 0x79, 0xf4, 0x6a, 0x99, 0xa8, 0x3a, 0x6f, 0xe5, 0xf1, 0x82, 0xa6, 0x1a,
+  0xa3, 0xfb, 0xfd, 0x1b, 0xe4, 0xd2, 0x0e, 0x52, 0x1e, 0x04, 0x38, 0x4b, 0xf5, 0x17, 0xb2, 0x55,
+  0xc9, 0x2a, 0xbb, 0x1b, 0x8f, 0xe3, 0x54, 0xcc, 0xcb, 0x42, 0x50, 0x9b, 0x30, 0x43, 0x38, 0xf5,
+  0x2a, 0xe7, 0x71, 0x04, 0x7f, 0xb5, 0x1d, 0xe2, 0x7b, 0xeb, 0xf4, 0x90, 0x53, 0x73, 0x42, 0xdb,
+  0x3b, 0x19, 0xe1, 0x8d, 0xdb, 0x86, 0x66, 0x0d, 0xed, 0x77, 0xbf, 0xb2, 0x51, 0xd5, 0xf1, 0xa2,
+  0x94, 0x59, 0xae, 0x8f, 0x49, 0x4e, 0xe0, 0xa6, 0x45, 0x9d, 0x3a, 0x89, 0xaa, 0xb6, 0x61, 0x12,
+  0x61, 0xad, 0x7f, 0x03, 0x4d, 0xb0, 0xc6, 0x9a, 0x60, 0xc4, 0x6c, 0x9d, 0xc6, 0xa7, 0x93, 0x1b,
+  0x27, 0x6b, 0x76, 0xbd, 0x13, 0x8e, 0x92, 0x49, 0x78, 0x2d, 0x54, 0xa7, 0x16, 0x71, 0x01, 0x8f,
+  0xa6, 0xf1, 0xe3, 0xd9, 0x7e, 0x12, 0x75, 0x15, 0x31, 0xd5, 0x3c, 0xa0, 0x2c, 0xbc, 0xc1, 0x0c,
+  0x87, 0xa8, 0x3a, 0x02, 0x87, 0x7d, 0xe5, 0x76, 0xd8, 0xa0, 0x90, 0x97, 0x80, 0xb0, 0x5b, 0x77,
+  0x6e, 0x3a, 0xcd, 0x9f, 0x88, 0xc8, 0xff, 0xe3, 0xf6, 0x16, 0xa1, 0x9c, 0xe2, 0x98, 0x74, 0x45,
+  0x12, 0xf9, 0x88, 0x78, 0xd8, 0x62, 0x1e, 0xff, 0xeb, 0x68, 0x26, 0xa9, 0x64, 0x07, 0xfc, 0xa7,
+  0x58, 0x49, 0xfd, 0x3b, 0x92, 0x83, 0x29, 0xd1, 0xaa, 0xa2, 0x66, 0x76, 0x38, 0x62, 0x9e, 0x88,
+  0x55, 0x83, 0xa6, 0x9e, 0xc1, 0xa2, 0x73, 0xec, 0x03, 0x70, 0x72, 0xb3, 0xd4, 0x01, 0x07, 0xd3,
+  0xbd, 0xba, 0xe7, 0xf5, 0x98, 0xb6, 0x0f, 0x92, 0xa5, 0xf2, 0x9e, 0x44, 0x2d, 0xbb, 0x12, 0x1d,
+  0xbc, 0x1f, 0x63, 0x60, 0x3a, 0xf4, 0xd9, 0xb1, 0x8c, 0x59, 0xc9, 0xc4, 0xa9, 0x77, 0x31
+};
+
+UINT32 gPkRsa3072Sha384Size = sizeof(gPkRsa3072Sha384);
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c
new file mode 100644
index 0000000000..9f59781e24
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkRsa4096Sha256[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x94, 0x07, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x07, 0x78, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x04,
+  0xff, 0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x3b, 0x44, 0x8b, 0x2f, 0xc5, 0x9a, 0xca, 0x99, 0x02, 0x57, 0x60, 0xc2, 0x22, 0x9e, 0xe1, 0x4e,
+  0x8d, 0x77, 0xbb, 0x21, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x30, 0x35, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x35, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
+  0x01, 0x00, 0xb6, 0x62, 0x79, 0x48, 0x3a, 0x7d, 0xd1, 0xbc, 0x10, 0xb4, 0x66, 0x71, 0x34, 0x75,
+  0x72, 0x9c, 0x9e, 0x38, 0x1b, 0x65, 0x9f, 0x0b, 0x4f, 0xdc, 0x66, 0xb2, 0x46, 0x4b, 0x31, 0x30,
+  0xf6, 0xd6, 0xe4, 0x3d, 0x07, 0x95, 0x72, 0x4f, 0xec, 0x50, 0x3c, 0x22, 0x35, 0x43, 0xeb, 0x7c,
+  0xa1, 0x62, 0x17, 0xbd, 0xc7, 0xda, 0xe3, 0x6b, 0x7e, 0xe0, 0xb0, 0x02, 0x31, 0xd5, 0x33, 0x6c,
+  0xc6, 0xaf, 0x21, 0x54, 0x7f, 0x6f, 0xe6, 0x9b, 0x62, 0xc4, 0xde, 0xc5, 0x17, 0xf2, 0x5e, 0xad,
+  0x6a, 0xf6, 0x41, 0x96, 0xd8, 0x98, 0xd4, 0x85, 0xea, 0x58, 0x6b, 0x2f, 0x5d, 0xae, 0xc1, 0xcb,
+  0xc2, 0x7d, 0x9d, 0x03, 0xde, 0xd8, 0x24, 0x5b, 0xec, 0xb9, 0x0e, 0x56, 0x86, 0x19, 0x5e, 0x9c,
+  0xc4, 0x7f, 0xaa, 0x79, 0x37, 0xab, 0xca, 0x45, 0x66, 0x43, 0x6b, 0xab, 0xf9, 0xfa, 0x13, 0xdb,
+  0x05, 0xd2, 0x31, 0xc2, 0x40, 0xc3, 0xeb, 0x15, 0x2a, 0x09, 0x97, 0x7b, 0x87, 0xa2, 0x30, 0x1a,
+  0x66, 0x73, 0xf6, 0x93, 0x80, 0xaf, 0xfc, 0x1a, 0xba, 0xbf, 0x51, 0xdb, 0x06, 0x75, 0x46, 0xb7,
+  0xdc, 0x2c, 0xa4, 0x93, 0x58, 0x01, 0x4d, 0x95, 0x01, 0x81, 0x52, 0xe5, 0xd8, 0xf8, 0xc6, 0x53,
+  0x22, 0xee, 0xf1, 0x45, 0xe4, 0xfa, 0x7b, 0xac, 0x81, 0xd9, 0x98, 0x8d, 0x00, 0x03, 0xf0, 0xd3,
+  0x41, 0x91, 0xa9, 0x34, 0x40, 0xf5, 0xd2, 0x7a, 0xe3, 0x57, 0x67, 0x37, 0x6b, 0x27, 0x3b, 0x10,
+  0x21, 0x7c, 0xa2, 0x77, 0x57, 0xfe, 0x9b, 0x9f, 0x91, 0x3e, 0x8f, 0x19, 0x1b, 0x8b, 0xb3, 0xa7,
+  0x46, 0x45, 0xdb, 0x9e, 0xf6, 0x90, 0x1a, 0xa9, 0x9c, 0x64, 0xdc, 0xf3, 0x10, 0x2b, 0x32, 0x88,
+  0xb5, 0xd7, 0x3d, 0x94, 0x64, 0xfd, 0x0e, 0x15, 0xe8, 0x3a, 0x69, 0x33, 0x80, 0x7a, 0x31, 0xfc,
+  0x74, 0xc3, 0xa9, 0xfc, 0xad, 0xce, 0x6b, 0xe5, 0x38, 0xb3, 0x33, 0xf6, 0xc4, 0x48, 0x43, 0xf3,
+  0x81, 0xd0, 0xcd, 0x87, 0x54, 0x64, 0xf3, 0xbd, 0x96, 0x79, 0x36, 0x3a, 0x8c, 0x05, 0x80, 0xd8,
+  0x4c, 0x83, 0x73, 0x36, 0x31, 0xd9, 0x76, 0x62, 0xc1, 0x3d, 0x44, 0xe6, 0x02, 0xc9, 0x50, 0xa4,
+  0x01, 0x67, 0xb5, 0x77, 0xb9, 0x1c, 0x83, 0xb8, 0xe8, 0x16, 0x9d, 0x48, 0x70, 0x1e, 0xf0, 0x7c,
+  0x0f, 0x7c, 0x77, 0xac, 0x4b, 0xda, 0xd4, 0x2a, 0x10, 0x40, 0x2b, 0x7a, 0x5e, 0xba, 0x35, 0x83,
+  0xa9, 0x5a, 0x52, 0x18, 0x07, 0x73, 0x10, 0xaf, 0x09, 0x31, 0xd5, 0xdc, 0xdb, 0x80, 0xd0, 0xa7,
+  0x7b, 0x4f, 0x06, 0x47, 0x4f, 0x22, 0xd9, 0xb0, 0x8e, 0xca, 0x61, 0x17, 0x37, 0x97, 0x8b, 0x2f,
+  0xf0, 0xca, 0x68, 0x6d, 0xbf, 0x76, 0xfe, 0xe6, 0xe3, 0x47, 0xbd, 0xb4, 0xed, 0x7f, 0x32, 0x18,
+  0x82, 0xfd, 0x63, 0xb3, 0xf1, 0x99, 0xab, 0x57, 0x00, 0x7b, 0xe2, 0x62, 0x20, 0xb5, 0x17, 0x70,
+  0xa1, 0x3d, 0xf1, 0x94, 0x09, 0xcf, 0xde, 0x94, 0x9f, 0x7d, 0xc9, 0xd2, 0x08, 0x66, 0x04, 0x85,
+  0xa6, 0xb3, 0x63, 0xde, 0xce, 0x86, 0x05, 0x6e, 0x8c, 0x8e, 0x63, 0x06, 0xf2, 0x63, 0xd6, 0x97,
+  0x14, 0x46, 0x1e, 0xf0, 0x25, 0x63, 0xa1, 0x14, 0xaa, 0x68, 0x13, 0xaf, 0xd9, 0x5a, 0xd5, 0x10,
+  0x91, 0xe2, 0x2d, 0xff, 0x02, 0xb9, 0x5a, 0xec, 0x5a, 0x44, 0x6e, 0x48, 0xf7, 0x8b, 0x1b, 0x1c,
+  0x44, 0xac, 0x07, 0x69, 0x67, 0xc8, 0x23, 0x92, 0x74, 0xb3, 0x49, 0x84, 0xb0, 0xe9, 0xbc, 0xd8,
+  0xe9, 0x89, 0x6a, 0xf4, 0xc5, 0xe5, 0xf6, 0xb0, 0xa8, 0x2e, 0xaa, 0xb6, 0x90, 0x19, 0x0a, 0x5f,
+  0x5b, 0x58, 0xce, 0x8b, 0xe2, 0x4b, 0xee, 0x39, 0x74, 0x92, 0x90, 0xd1, 0x11, 0xb8, 0x36, 0x24,
+  0x42, 0x75, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x73, 0xc0, 0x61, 0x65, 0x69, 0x11, 0xcc, 0xcd, 0x43, 0x26,
+  0x5f, 0x20, 0x0e, 0xc0, 0xb9, 0x08, 0xa3, 0x30, 0x25, 0xb0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x73, 0xc0, 0x61, 0x65, 0x69, 0x11, 0xcc, 0xcd, 0x43,
+  0x26, 0x5f, 0x20, 0x0e, 0xc0, 0xb9, 0x08, 0xa3, 0x30, 0x25, 0xb0, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+  0x57, 0x9d, 0x92, 0x11, 0x4a, 0x30, 0x8f, 0x17, 0x19, 0x0c, 0x97, 0xea, 0x4c, 0xd7, 0x93, 0x18,
+  0x28, 0x06, 0x09, 0x16, 0xc1, 0x26, 0x59, 0x58, 0x87, 0xee, 0x2a, 0x9f, 0x63, 0x32, 0xcb, 0x66,
+  0x44, 0xa0, 0xe1, 0x63, 0x8c, 0x54, 0x11, 0x5f, 0x73, 0xbd, 0xff, 0x6b, 0xb5, 0x0a, 0xec, 0x7c,
+  0xd1, 0x5c, 0x17, 0x6f, 0x32, 0x1a, 0x28, 0x0b, 0x63, 0xa6, 0x05, 0x9e, 0x13, 0x9b, 0x62, 0xa6,
+  0xca, 0xa5, 0xeb, 0x90, 0x3e, 0x99, 0xae, 0xdb, 0xf0, 0x6d, 0x38, 0x37, 0xf1, 0x29, 0xce, 0x6f,
+  0x15, 0xec, 0x5a, 0xb5, 0x00, 0xd3, 0x80, 0x08, 0xfa, 0x58, 0xa6, 0x82, 0xe6, 0x54, 0xc5, 0xf7,
+  0xcd, 0xa8, 0x0a, 0xc3, 0x1b, 0xf7, 0x60, 0x17, 0xc9, 0xe5, 0xd4, 0x24, 0xa8, 0xe4, 0x4d, 0x1f,
+  0xc7, 0x40, 0x2d, 0x2c, 0x49, 0x99, 0xc0, 0x17, 0xf9, 0x35, 0x63, 0x3c, 0xa1, 0x48, 0xc7, 0x8c,
+  0xc0, 0xc3, 0x6c, 0xf9, 0xb3, 0x83, 0x0d, 0xed, 0xf3, 0x78, 0x23, 0x5c, 0xfe, 0x7e, 0x78, 0x9a,
+  0x94, 0xc6, 0xa3, 0x5b, 0xb6, 0x03, 0xcd, 0x50, 0x92, 0xc3, 0x91, 0x0b, 0x34, 0xdd, 0x85, 0xbe,
+  0xef, 0xa9, 0x93, 0x31, 0x8f, 0x1e, 0xf2, 0x5e, 0xa8, 0xac, 0x0f, 0xcb, 0xf4, 0x60, 0x04, 0x5b,
+  0xed, 0xeb, 0xde, 0x35, 0x20, 0x7c, 0x7b, 0x62, 0xfb, 0xf5, 0x34, 0x1b, 0xab, 0x35, 0xbe, 0x55,
+  0xc3, 0x31, 0x06, 0x93, 0xb8, 0x48, 0x45, 0xd7, 0xa6, 0x41, 0xd4, 0x23, 0x6d, 0xfa, 0x0c, 0x90,
+  0x9e, 0x0b, 0xea, 0x5e, 0xed, 0xdf, 0xcb, 0x95, 0x0b, 0x96, 0x5f, 0x27, 0x6a, 0xee, 0xa7, 0x3e,
+  0x0d, 0xea, 0x88, 0x73, 0x0d, 0x37, 0x0e, 0xc5, 0xd9, 0x48, 0x2f, 0xcc, 0x25, 0x17, 0x1e, 0x61,
+  0xa8, 0xcd, 0x3d, 0x66, 0x73, 0xe3, 0xd4, 0x40, 0xa5, 0x46, 0x9b, 0x08, 0x55, 0xb2, 0x0f, 0x44,
+  0x85, 0xc3, 0xd9, 0x4f, 0xf9, 0xca, 0x1f, 0xba, 0x0d, 0x9d, 0xe1, 0xb3, 0x77, 0x3f, 0xc9, 0x82,
+  0xde, 0xbf, 0xff, 0xc1, 0x0f, 0xc8, 0x03, 0x4e, 0x39, 0x2b, 0x54, 0x60, 0xcf, 0x91, 0x75, 0xdc,
+  0x59, 0x39, 0xbc, 0x3f, 0x8d, 0x0c, 0xa3, 0xba, 0x3d, 0x77, 0x2d, 0x25, 0x79, 0x52, 0xcf, 0x5c,
+  0xef, 0xc1, 0x61, 0xe2, 0xf1, 0xd4, 0x63, 0x13, 0xbc, 0xf4, 0x53, 0x89, 0xed, 0x0d, 0x22, 0x18,
+  0x72, 0xf4, 0x30, 0x29, 0x1c, 0x04, 0x38, 0xf3, 0x4a, 0xc3, 0x24, 0xe1, 0x23, 0x90, 0xbb, 0x51,
+  0x38, 0x98, 0x73, 0x7c, 0x05, 0x07, 0x64, 0x01, 0x59, 0x2e, 0x85, 0x8d, 0xb6, 0xe8, 0x8f, 0xe4,
+  0xd8, 0x9a, 0xf9, 0xc4, 0x77, 0x07, 0xd2, 0x8b, 0x24, 0x51, 0x49, 0x9c, 0xf3, 0x90, 0x30, 0x14,
+  0xa7, 0xb4, 0xb5, 0xb7, 0xec, 0x35, 0x09, 0x0e, 0xd5, 0x09, 0xfd, 0x20, 0xcf, 0x86, 0x53, 0x2c,
+  0xaa, 0x43, 0x0e, 0x28, 0x6b, 0x5c, 0x11, 0x82, 0x8d, 0xec, 0x5d, 0x68, 0x9a, 0x3e, 0xd5, 0x20,
+  0xa2, 0xc9, 0x91, 0xcb, 0x27, 0xcd, 0xd0, 0x55, 0x55, 0xed, 0x1d, 0xfe, 0x33, 0x56, 0xe3, 0x19,
+  0x50, 0xf9, 0x6d, 0xb4, 0xd4, 0xaa, 0x31, 0x7f, 0xff, 0xc4, 0x22, 0xf1, 0xac, 0xb7, 0xc6, 0xe5,
+  0xc1, 0x51, 0x8b, 0xf9, 0xf2, 0x15, 0x2c, 0x72, 0xdb, 0x50, 0x85, 0xd8, 0x01, 0x7d, 0xc7, 0x85,
+  0xdb, 0x21, 0x47, 0x78, 0x4a, 0xcb, 0xdc, 0xcb, 0xa6, 0x50, 0x31, 0x35, 0xe9, 0x5e, 0xc3, 0x5d,
+  0x0a, 0xc3, 0xda, 0x61, 0x1a, 0x60, 0xd2, 0xd9, 0x2b, 0x3a, 0x7a, 0xc2, 0x92, 0x9c, 0x3b, 0x60,
+  0x1b, 0xb1, 0x71, 0x06, 0x00, 0x4a, 0x1f, 0x2e, 0x2f, 0xa2, 0xf9, 0x64, 0x5a, 0x2b, 0x15, 0x2c,
+  0xc0, 0xae, 0xf8, 0x4a, 0x5e, 0x46, 0xc0, 0xaa, 0xba, 0xe5, 0x7e, 0xa9, 0xbf, 0x26, 0x78, 0x46,
+  0x31, 0x82, 0x02, 0x50, 0x30, 0x82, 0x02, 0x4c, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x3b, 0x44,
+  0x8b, 0x2f, 0xc5, 0x9a, 0xca, 0x99, 0x02, 0x57, 0x60, 0xc2, 0x22, 0x9e, 0xe1, 0x4e, 0x8d, 0x77,
+  0xbb, 0x21, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x02, 0x00, 0xa0, 0xb4, 0xdb, 0xcb, 0x81, 0x4a, 0xc3, 0x08, 0x79, 0xaa, 0x3e, 0x2f,
+  0x3e, 0xdf, 0x1f, 0xc9, 0xe3, 0x85, 0xf5, 0xa3, 0x8c, 0xbb, 0xcc, 0xb6, 0x9f, 0x53, 0x2b, 0x1b,
+  0xca, 0x6d, 0x8e, 0x87, 0xd8, 0x24, 0xbd, 0xc8, 0x69, 0x6f, 0xca, 0xe8, 0x45, 0xf0, 0xac, 0x6c,
+  0x5e, 0x11, 0xef, 0x07, 0x11, 0xf5, 0x48, 0x89, 0x01, 0x09, 0x0d, 0xa3, 0x1f, 0xa6, 0x35, 0x37,
+  0x94, 0x71, 0x3e, 0x3e, 0x6b, 0x9b, 0x61, 0xa3, 0xed, 0xd6, 0x9d, 0xd7, 0x40, 0x16, 0x7c, 0x43,
+  0xf1, 0xb2, 0xcd, 0x90, 0x8a, 0x33, 0x1b, 0x0e, 0x3f, 0x85, 0x02, 0xca, 0xb8, 0x22, 0xea, 0xe1,
+  0x8a, 0xc4, 0xb7, 0xdb, 0x29, 0x25, 0xab, 0xf8, 0xfa, 0x21, 0x6e, 0xb0, 0x95, 0xb1, 0x0a, 0x48,
+  0x8b, 0x35, 0x96, 0x64, 0x35, 0x2c, 0x8f, 0xb2, 0x54, 0x1e, 0x68, 0x6f, 0xca, 0xb9, 0x4e, 0xb9,
+  0x43, 0x7b, 0x27, 0x42, 0x99, 0xce, 0x29, 0x0b, 0xca, 0xc7, 0x80, 0xac, 0x75, 0x2c, 0x8d, 0x88,
+  0x8b, 0x2b, 0x62, 0x39, 0x61, 0xf7, 0xd4, 0xf2, 0x22, 0xba, 0xa0, 0xd0, 0x5e, 0x02, 0x45, 0xdd,
+  0xee, 0xbd, 0x19, 0x91, 0x5a, 0x8a, 0xbe, 0xa9, 0xf4, 0x47, 0x07, 0xae, 0x69, 0x4c, 0x54, 0xe4,
+  0xe6, 0x92, 0x99, 0x85, 0x7f, 0xaf, 0xc3, 0x75, 0x43, 0x8e, 0x79, 0x5a, 0x65, 0x8c, 0x0d, 0x18,
+  0x2c, 0x52, 0xe7, 0x81, 0x90, 0xc2, 0x6b, 0x79, 0xf2, 0x98, 0x73, 0x9f, 0xef, 0xe7, 0xbd, 0x12,
+  0x1a, 0x4c, 0xb3, 0x68, 0x28, 0x31, 0xaa, 0xd4, 0x0d, 0x13, 0x3d, 0x43, 0x75, 0x15, 0x00, 0xeb,
+  0xcb, 0xe7, 0x89, 0xcf, 0x6c, 0xd5, 0x07, 0x0b, 0xd6, 0x5e, 0x9d, 0xdd, 0x05, 0x65, 0xd1, 0xd5,
+  0xec, 0x3e, 0xe8, 0x81, 0x52, 0xec, 0x46, 0x4e, 0xbc, 0x0f, 0xd3, 0x8d, 0xed, 0x09, 0x2c, 0xab,
+  0x49, 0x25, 0x3f, 0xd0, 0xe5, 0x57, 0x8f, 0x72, 0x14, 0x97, 0x5b, 0x49, 0x7a, 0x29, 0x15, 0xc8,
+  0x3b, 0x73, 0xd7, 0xce, 0x41, 0xfa, 0x79, 0x50, 0x4c, 0x65, 0x7f, 0x90, 0xd6, 0x52, 0x21, 0xc3,
+  0x4e, 0x00, 0x85, 0x13, 0x92, 0x7e, 0xb9, 0x01, 0x31, 0xef, 0xd1, 0xdd, 0x46, 0xf4, 0xe4, 0x10,
+  0x65, 0x25, 0xfa, 0x95, 0x4b, 0xa8, 0x23, 0xba, 0xb8, 0x92, 0x0b, 0x8b, 0x4e, 0xb8, 0x09, 0xfe,
+  0xca, 0x3a, 0xa8, 0x47, 0x9d, 0x4a, 0xa6, 0x2f, 0x31, 0x2f, 0x63, 0xa9, 0x0d, 0x98, 0x1d, 0x2f,
+  0x68, 0x36, 0x64, 0xee, 0x8f, 0xa7, 0xa7, 0x03, 0xc5, 0x6c, 0xe3, 0xdd, 0xca, 0x99, 0xa5, 0x3a,
+  0x93, 0x94, 0x0f, 0x26, 0xad, 0xc1, 0xfd, 0x59, 0x5b, 0x68, 0x11, 0x40, 0xed, 0xc1, 0xd1, 0xb9,
+  0xa1, 0x56, 0xa9, 0x7a, 0x54, 0x0c, 0x98, 0xc1, 0xa1, 0x95, 0x1e, 0x10, 0xd2, 0xdd, 0xa7, 0xa7,
+  0xf3, 0x37, 0x43, 0xa2, 0x37, 0x2f, 0x0e, 0x4c, 0xdd, 0xde, 0x23, 0x0c, 0x66, 0xe1, 0x52, 0x7f,
+  0x7b, 0x02, 0xcb, 0x57, 0x60, 0xc3, 0x12, 0x54, 0x51, 0x81, 0x8b, 0xb0, 0x28, 0x57, 0x64, 0xa8,
+  0x1f, 0x7d, 0x23, 0xe3, 0x8a, 0x6c, 0x6b, 0x46, 0xda, 0xd2, 0xd1, 0x71, 0xa3, 0x4d, 0xd8, 0xe2,
+  0x16, 0x5a, 0x92, 0xa9, 0x52, 0x04, 0xe3, 0x31, 0xce, 0xe6, 0xe5, 0xa0, 0xde, 0xb3, 0x9f, 0x57,
+  0x6e, 0x02, 0xeb, 0xcb, 0x17, 0x21, 0x0f, 0x42, 0x75, 0x1a, 0x61, 0xd4, 0xcb, 0x42, 0x28, 0xa7,
+  0xf6, 0xdf, 0xad, 0xc9, 0x4a, 0xd9, 0x14, 0x98, 0x09, 0xb5, 0x71, 0x89, 0x65, 0x0d, 0xa3, 0x3b,
+  0x1b, 0x61, 0x41, 0xac, 0x1a, 0xf7, 0x7a, 0x72, 0x61, 0xbc, 0x6c, 0x6e, 0x29, 0xfc, 0x56, 0xaa,
+  0x89, 0x21, 0x5e, 0x50, 0x00, 0xd4, 0xee, 0x26, 0xcc, 0x97, 0x99, 0x37, 0x8a, 0x01, 0x4a, 0x40,
+  0x24, 0x6a, 0xfd, 0x0b, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x3b,
+  0x44, 0x8b, 0x2f, 0xc5, 0x9a, 0xca, 0x99, 0x02, 0x57, 0x60, 0xc2, 0x22, 0x9e, 0xe1, 0x4e, 0x8d,
+  0x77, 0xbb, 0x21, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x30,
+  0x35, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x30, 0x35,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01,
+  0x00, 0xb6, 0x62, 0x79, 0x48, 0x3a, 0x7d, 0xd1, 0xbc, 0x10, 0xb4, 0x66, 0x71, 0x34, 0x75, 0x72,
+  0x9c, 0x9e, 0x38, 0x1b, 0x65, 0x9f, 0x0b, 0x4f, 0xdc, 0x66, 0xb2, 0x46, 0x4b, 0x31, 0x30, 0xf6,
+  0xd6, 0xe4, 0x3d, 0x07, 0x95, 0x72, 0x4f, 0xec, 0x50, 0x3c, 0x22, 0x35, 0x43, 0xeb, 0x7c, 0xa1,
+  0x62, 0x17, 0xbd, 0xc7, 0xda, 0xe3, 0x6b, 0x7e, 0xe0, 0xb0, 0x02, 0x31, 0xd5, 0x33, 0x6c, 0xc6,
+  0xaf, 0x21, 0x54, 0x7f, 0x6f, 0xe6, 0x9b, 0x62, 0xc4, 0xde, 0xc5, 0x17, 0xf2, 0x5e, 0xad, 0x6a,
+  0xf6, 0x41, 0x96, 0xd8, 0x98, 0xd4, 0x85, 0xea, 0x58, 0x6b, 0x2f, 0x5d, 0xae, 0xc1, 0xcb, 0xc2,
+  0x7d, 0x9d, 0x03, 0xde, 0xd8, 0x24, 0x5b, 0xec, 0xb9, 0x0e, 0x56, 0x86, 0x19, 0x5e, 0x9c, 0xc4,
+  0x7f, 0xaa, 0x79, 0x37, 0xab, 0xca, 0x45, 0x66, 0x43, 0x6b, 0xab, 0xf9, 0xfa, 0x13, 0xdb, 0x05,
+  0xd2, 0x31, 0xc2, 0x40, 0xc3, 0xeb, 0x15, 0x2a, 0x09, 0x97, 0x7b, 0x87, 0xa2, 0x30, 0x1a, 0x66,
+  0x73, 0xf6, 0x93, 0x80, 0xaf, 0xfc, 0x1a, 0xba, 0xbf, 0x51, 0xdb, 0x06, 0x75, 0x46, 0xb7, 0xdc,
+  0x2c, 0xa4, 0x93, 0x58, 0x01, 0x4d, 0x95, 0x01, 0x81, 0x52, 0xe5, 0xd8, 0xf8, 0xc6, 0x53, 0x22,
+  0xee, 0xf1, 0x45, 0xe4, 0xfa, 0x7b, 0xac, 0x81, 0xd9, 0x98, 0x8d, 0x00, 0x03, 0xf0, 0xd3, 0x41,
+  0x91, 0xa9, 0x34, 0x40, 0xf5, 0xd2, 0x7a, 0xe3, 0x57, 0x67, 0x37, 0x6b, 0x27, 0x3b, 0x10, 0x21,
+  0x7c, 0xa2, 0x77, 0x57, 0xfe, 0x9b, 0x9f, 0x91, 0x3e, 0x8f, 0x19, 0x1b, 0x8b, 0xb3, 0xa7, 0x46,
+  0x45, 0xdb, 0x9e, 0xf6, 0x90, 0x1a, 0xa9, 0x9c, 0x64, 0xdc, 0xf3, 0x10, 0x2b, 0x32, 0x88, 0xb5,
+  0xd7, 0x3d, 0x94, 0x64, 0xfd, 0x0e, 0x15, 0xe8, 0x3a, 0x69, 0x33, 0x80, 0x7a, 0x31, 0xfc, 0x74,
+  0xc3, 0xa9, 0xfc, 0xad, 0xce, 0x6b, 0xe5, 0x38, 0xb3, 0x33, 0xf6, 0xc4, 0x48, 0x43, 0xf3, 0x81,
+  0xd0, 0xcd, 0x87, 0x54, 0x64, 0xf3, 0xbd, 0x96, 0x79, 0x36, 0x3a, 0x8c, 0x05, 0x80, 0xd8, 0x4c,
+  0x83, 0x73, 0x36, 0x31, 0xd9, 0x76, 0x62, 0xc1, 0x3d, 0x44, 0xe6, 0x02, 0xc9, 0x50, 0xa4, 0x01,
+  0x67, 0xb5, 0x77, 0xb9, 0x1c, 0x83, 0xb8, 0xe8, 0x16, 0x9d, 0x48, 0x70, 0x1e, 0xf0, 0x7c, 0x0f,
+  0x7c, 0x77, 0xac, 0x4b, 0xda, 0xd4, 0x2a, 0x10, 0x40, 0x2b, 0x7a, 0x5e, 0xba, 0x35, 0x83, 0xa9,
+  0x5a, 0x52, 0x18, 0x07, 0x73, 0x10, 0xaf, 0x09, 0x31, 0xd5, 0xdc, 0xdb, 0x80, 0xd0, 0xa7, 0x7b,
+  0x4f, 0x06, 0x47, 0x4f, 0x22, 0xd9, 0xb0, 0x8e, 0xca, 0x61, 0x17, 0x37, 0x97, 0x8b, 0x2f, 0xf0,
+  0xca, 0x68, 0x6d, 0xbf, 0x76, 0xfe, 0xe6, 0xe3, 0x47, 0xbd, 0xb4, 0xed, 0x7f, 0x32, 0x18, 0x82,
+  0xfd, 0x63, 0xb3, 0xf1, 0x99, 0xab, 0x57, 0x00, 0x7b, 0xe2, 0x62, 0x20, 0xb5, 0x17, 0x70, 0xa1,
+  0x3d, 0xf1, 0x94, 0x09, 0xcf, 0xde, 0x94, 0x9f, 0x7d, 0xc9, 0xd2, 0x08, 0x66, 0x04, 0x85, 0xa6,
+  0xb3, 0x63, 0xde, 0xce, 0x86, 0x05, 0x6e, 0x8c, 0x8e, 0x63, 0x06, 0xf2, 0x63, 0xd6, 0x97, 0x14,
+  0x46, 0x1e, 0xf0, 0x25, 0x63, 0xa1, 0x14, 0xaa, 0x68, 0x13, 0xaf, 0xd9, 0x5a, 0xd5, 0x10, 0x91,
+  0xe2, 0x2d, 0xff, 0x02, 0xb9, 0x5a, 0xec, 0x5a, 0x44, 0x6e, 0x48, 0xf7, 0x8b, 0x1b, 0x1c, 0x44,
+  0xac, 0x07, 0x69, 0x67, 0xc8, 0x23, 0x92, 0x74, 0xb3, 0x49, 0x84, 0xb0, 0xe9, 0xbc, 0xd8, 0xe9,
+  0x89, 0x6a, 0xf4, 0xc5, 0xe5, 0xf6, 0xb0, 0xa8, 0x2e, 0xaa, 0xb6, 0x90, 0x19, 0x0a, 0x5f, 0x5b,
+  0x58, 0xce, 0x8b, 0xe2, 0x4b, 0xee, 0x39, 0x74, 0x92, 0x90, 0xd1, 0x11, 0xb8, 0x36, 0x24, 0x42,
+  0x75, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x73, 0xc0, 0x61, 0x65, 0x69, 0x11, 0xcc, 0xcd, 0x43, 0x26, 0x5f,
+  0x20, 0x0e, 0xc0, 0xb9, 0x08, 0xa3, 0x30, 0x25, 0xb0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x73, 0xc0, 0x61, 0x65, 0x69, 0x11, 0xcc, 0xcd, 0x43, 0x26,
+  0x5f, 0x20, 0x0e, 0xc0, 0xb9, 0x08, 0xa3, 0x30, 0x25, 0xb0, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x57,
+  0x9d, 0x92, 0x11, 0x4a, 0x30, 0x8f, 0x17, 0x19, 0x0c, 0x97, 0xea, 0x4c, 0xd7, 0x93, 0x18, 0x28,
+  0x06, 0x09, 0x16, 0xc1, 0x26, 0x59, 0x58, 0x87, 0xee, 0x2a, 0x9f, 0x63, 0x32, 0xcb, 0x66, 0x44,
+  0xa0, 0xe1, 0x63, 0x8c, 0x54, 0x11, 0x5f, 0x73, 0xbd, 0xff, 0x6b, 0xb5, 0x0a, 0xec, 0x7c, 0xd1,
+  0x5c, 0x17, 0x6f, 0x32, 0x1a, 0x28, 0x0b, 0x63, 0xa6, 0x05, 0x9e, 0x13, 0x9b, 0x62, 0xa6, 0xca,
+  0xa5, 0xeb, 0x90, 0x3e, 0x99, 0xae, 0xdb, 0xf0, 0x6d, 0x38, 0x37, 0xf1, 0x29, 0xce, 0x6f, 0x15,
+  0xec, 0x5a, 0xb5, 0x00, 0xd3, 0x80, 0x08, 0xfa, 0x58, 0xa6, 0x82, 0xe6, 0x54, 0xc5, 0xf7, 0xcd,
+  0xa8, 0x0a, 0xc3, 0x1b, 0xf7, 0x60, 0x17, 0xc9, 0xe5, 0xd4, 0x24, 0xa8, 0xe4, 0x4d, 0x1f, 0xc7,
+  0x40, 0x2d, 0x2c, 0x49, 0x99, 0xc0, 0x17, 0xf9, 0x35, 0x63, 0x3c, 0xa1, 0x48, 0xc7, 0x8c, 0xc0,
+  0xc3, 0x6c, 0xf9, 0xb3, 0x83, 0x0d, 0xed, 0xf3, 0x78, 0x23, 0x5c, 0xfe, 0x7e, 0x78, 0x9a, 0x94,
+  0xc6, 0xa3, 0x5b, 0xb6, 0x03, 0xcd, 0x50, 0x92, 0xc3, 0x91, 0x0b, 0x34, 0xdd, 0x85, 0xbe, 0xef,
+  0xa9, 0x93, 0x31, 0x8f, 0x1e, 0xf2, 0x5e, 0xa8, 0xac, 0x0f, 0xcb, 0xf4, 0x60, 0x04, 0x5b, 0xed,
+  0xeb, 0xde, 0x35, 0x20, 0x7c, 0x7b, 0x62, 0xfb, 0xf5, 0x34, 0x1b, 0xab, 0x35, 0xbe, 0x55, 0xc3,
+  0x31, 0x06, 0x93, 0xb8, 0x48, 0x45, 0xd7, 0xa6, 0x41, 0xd4, 0x23, 0x6d, 0xfa, 0x0c, 0x90, 0x9e,
+  0x0b, 0xea, 0x5e, 0xed, 0xdf, 0xcb, 0x95, 0x0b, 0x96, 0x5f, 0x27, 0x6a, 0xee, 0xa7, 0x3e, 0x0d,
+  0xea, 0x88, 0x73, 0x0d, 0x37, 0x0e, 0xc5, 0xd9, 0x48, 0x2f, 0xcc, 0x25, 0x17, 0x1e, 0x61, 0xa8,
+  0xcd, 0x3d, 0x66, 0x73, 0xe3, 0xd4, 0x40, 0xa5, 0x46, 0x9b, 0x08, 0x55, 0xb2, 0x0f, 0x44, 0x85,
+  0xc3, 0xd9, 0x4f, 0xf9, 0xca, 0x1f, 0xba, 0x0d, 0x9d, 0xe1, 0xb3, 0x77, 0x3f, 0xc9, 0x82, 0xde,
+  0xbf, 0xff, 0xc1, 0x0f, 0xc8, 0x03, 0x4e, 0x39, 0x2b, 0x54, 0x60, 0xcf, 0x91, 0x75, 0xdc, 0x59,
+  0x39, 0xbc, 0x3f, 0x8d, 0x0c, 0xa3, 0xba, 0x3d, 0x77, 0x2d, 0x25, 0x79, 0x52, 0xcf, 0x5c, 0xef,
+  0xc1, 0x61, 0xe2, 0xf1, 0xd4, 0x63, 0x13, 0xbc, 0xf4, 0x53, 0x89, 0xed, 0x0d, 0x22, 0x18, 0x72,
+  0xf4, 0x30, 0x29, 0x1c, 0x04, 0x38, 0xf3, 0x4a, 0xc3, 0x24, 0xe1, 0x23, 0x90, 0xbb, 0x51, 0x38,
+  0x98, 0x73, 0x7c, 0x05, 0x07, 0x64, 0x01, 0x59, 0x2e, 0x85, 0x8d, 0xb6, 0xe8, 0x8f, 0xe4, 0xd8,
+  0x9a, 0xf9, 0xc4, 0x77, 0x07, 0xd2, 0x8b, 0x24, 0x51, 0x49, 0x9c, 0xf3, 0x90, 0x30, 0x14, 0xa7,
+  0xb4, 0xb5, 0xb7, 0xec, 0x35, 0x09, 0x0e, 0xd5, 0x09, 0xfd, 0x20, 0xcf, 0x86, 0x53, 0x2c, 0xaa,
+  0x43, 0x0e, 0x28, 0x6b, 0x5c, 0x11, 0x82, 0x8d, 0xec, 0x5d, 0x68, 0x9a, 0x3e, 0xd5, 0x20, 0xa2,
+  0xc9, 0x91, 0xcb, 0x27, 0xcd, 0xd0, 0x55, 0x55, 0xed, 0x1d, 0xfe, 0x33, 0x56, 0xe3, 0x19, 0x50,
+  0xf9, 0x6d, 0xb4, 0xd4, 0xaa, 0x31, 0x7f, 0xff, 0xc4, 0x22, 0xf1, 0xac, 0xb7, 0xc6, 0xe5, 0xc1,
+  0x51, 0x8b, 0xf9, 0xf2, 0x15, 0x2c, 0x72, 0xdb, 0x50, 0x85, 0xd8, 0x01, 0x7d, 0xc7, 0x85, 0xdb,
+  0x21, 0x47, 0x78, 0x4a, 0xcb, 0xdc, 0xcb, 0xa6, 0x50, 0x31, 0x35, 0xe9, 0x5e, 0xc3, 0x5d, 0x0a,
+  0xc3, 0xda, 0x61, 0x1a, 0x60, 0xd2, 0xd9, 0x2b, 0x3a, 0x7a, 0xc2, 0x92, 0x9c, 0x3b, 0x60, 0x1b,
+  0xb1, 0x71, 0x06, 0x00, 0x4a, 0x1f, 0x2e, 0x2f, 0xa2, 0xf9, 0x64, 0x5a, 0x2b, 0x15, 0x2c, 0xc0,
+  0xae, 0xf8, 0x4a, 0x5e, 0x46, 0xc0, 0xaa, 0xba, 0xe5, 0x7e, 0xa9, 0xbf, 0x26, 0x78, 0x46
+};
+
+UINT32 gPkRsa4096Sha256Size = sizeof(gPkRsa4096Sha256);
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c
new file mode 100644
index 0000000000..5770e1b8bc
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2020 Intel Corporation
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+/*
+ * This file is Auto generated by bin2arr
+ */
+
+#include <Uefi.h>
+
+UINT8 gPkRsa4096Sha512[] = {
+  0xe4, 0x07, 0x0c, 0x0a, 0x07, 0x0d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x94, 0x07, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x0e, 0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49,
+  0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7, 0x30, 0x82, 0x07, 0x78, 0x02, 0x01, 0x01, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00,
+  0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x04,
+  0xff, 0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14,
+  0x62, 0x10, 0xfc, 0x73, 0x8d, 0x2e, 0xec, 0xe0, 0x17, 0x1d, 0x5f, 0xb7, 0xd7, 0xbd, 0xfe, 0xa2,
+  0xb8, 0x5a, 0x7f, 0xb2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0d, 0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02,
+  0x50, 0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33,
+  0x31, 0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x31,
+  0x32, 0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
+  0x01, 0x00, 0xcf, 0x28, 0xb4, 0x76, 0x60, 0xcf, 0xae, 0xfe, 0xfb, 0x82, 0xb3, 0xe9, 0x73, 0xf2,
+  0x7b, 0x95, 0xee, 0x5e, 0xb2, 0x2e, 0x91, 0x4e, 0x0b, 0x06, 0xbc, 0x92, 0xc1, 0xc3, 0xe3, 0x61,
+  0xbf, 0xbb, 0xca, 0x96, 0x79, 0x46, 0x7f, 0x04, 0x57, 0x3c, 0x5b, 0x5e, 0xcf, 0x91, 0x87, 0x6b,
+  0x41, 0x19, 0x6b, 0x20, 0x1e, 0x46, 0x25, 0x13, 0x42, 0x8a, 0x2c, 0x8e, 0x88, 0x98, 0xf4, 0xeb,
+  0x37, 0xd1, 0x3e, 0xa7, 0xb7, 0xd4, 0xdd, 0xb5, 0xa5, 0xab, 0xe3, 0x7b, 0x04, 0xe6, 0x7e, 0xb8,
+  0xdb, 0x39, 0x3b, 0x0b, 0x59, 0x76, 0xc7, 0x39, 0xeb, 0xe0, 0x60, 0x2c, 0x54, 0x82, 0x51, 0x70,
+  0xc0, 0xd5, 0xa7, 0x7d, 0x6a, 0x2b, 0x01, 0x2f, 0x12, 0xa5, 0x6b, 0x73, 0xca, 0x8d, 0xf7, 0xdf,
+  0x27, 0xb7, 0xf0, 0xca, 0xd7, 0x92, 0xd9, 0x98, 0xe8, 0x62, 0x7a, 0x03, 0x5b, 0x8c, 0x43, 0x81,
+  0xd2, 0x21, 0x21, 0x7f, 0xea, 0x4f, 0x20, 0x90, 0x81, 0x40, 0x00, 0x21, 0x77, 0x11, 0x0c, 0xb8,
+  0xe3, 0x0c, 0x35, 0xda, 0xcb, 0x24, 0x09, 0xb2, 0xf6, 0x14, 0x45, 0x6b, 0x7a, 0xeb, 0x9c, 0x19,
+  0x88, 0x34, 0xe4, 0xea, 0xca, 0xc8, 0x46, 0x5b, 0x65, 0xaf, 0x9a, 0xc1, 0x27, 0xdd, 0xca, 0xe5,
+  0x55, 0x63, 0x95, 0xdf, 0x61, 0xf1, 0xcf, 0x0a, 0xe9, 0x5b, 0xef, 0xb4, 0xbb, 0xed, 0x8a, 0x90,
+  0x90, 0x52, 0x66, 0xc2, 0x93, 0xbf, 0x0d, 0x98, 0x50, 0x97, 0xd0, 0xe1, 0xe0, 0x55, 0x42, 0x03,
+  0x7d, 0xa3, 0xd1, 0x5e, 0x40, 0x26, 0x05, 0x05, 0x48, 0x70, 0x1f, 0x84, 0xc8, 0xf7, 0x1a, 0xb8,
+  0x7e, 0x73, 0x0b, 0x86, 0x88, 0xf4, 0x4a, 0xf3, 0x9c, 0x63, 0x50, 0x07, 0xab, 0x22, 0x08, 0x41,
+  0x78, 0xe6, 0x80, 0x3f, 0x82, 0xa8, 0x54, 0x4f, 0xb6, 0x4b, 0xf1, 0xf4, 0xdd, 0x0d, 0x8e, 0xa0,
+  0xd4, 0x53, 0xa6, 0x2b, 0x8c, 0x73, 0xe1, 0x7f, 0xb1, 0xae, 0x8f, 0x5d, 0x3e, 0xa9, 0x3c, 0xd0,
+  0x4b, 0x1d, 0xc9, 0xe5, 0x54, 0x1a, 0x5c, 0x05, 0x3c, 0x3b, 0xea, 0xd6, 0x4b, 0x53, 0x3d, 0xa7,
+  0x00, 0xe8, 0x31, 0x66, 0x83, 0x96, 0x88, 0x85, 0x9f, 0x2b, 0xf5, 0x87, 0x41, 0x71, 0x50, 0x65,
+  0xb8, 0xa2, 0xe7, 0x38, 0x47, 0x93, 0x50, 0xd2, 0x05, 0x17, 0x5f, 0x43, 0x0e, 0x47, 0x0b, 0xb5,
+  0xcc, 0xba, 0x91, 0x7e, 0x91, 0x03, 0x77, 0xd0, 0x21, 0x3f, 0x15, 0x7f, 0xb9, 0xd2, 0xdf, 0x2b,
+  0x06, 0x1a, 0xd1, 0x71, 0x5a, 0xba, 0x30, 0x8b, 0xb5, 0x2b, 0xd0, 0x99, 0xf1, 0x41, 0x03, 0x31,
+  0x65, 0xb3, 0x44, 0x38, 0x10, 0x7c, 0xf8, 0xed, 0x28, 0x40, 0x2d, 0xd7, 0x05, 0xd9, 0xf1, 0x08,
+  0x4b, 0xa5, 0x93, 0xa9, 0x58, 0x76, 0xcf, 0x7e, 0x2c, 0x9d, 0x3e, 0xfa, 0x76, 0x9a, 0x81, 0x69,
+  0xf4, 0x11, 0x1e, 0x87, 0xbe, 0x94, 0xec, 0x5d, 0x82, 0x19, 0x15, 0xfa, 0x50, 0x4e, 0x7a, 0xb4,
+  0xb0, 0x33, 0xea, 0x15, 0x88, 0x67, 0xb4, 0x6d, 0x1b, 0x02, 0x30, 0xa5, 0xd6, 0xaf, 0x2b, 0xc3,
+  0xf4, 0x5c, 0x51, 0xe3, 0x4d, 0x9f, 0xf0, 0x1a, 0x89, 0xba, 0xcd, 0x1d, 0xdf, 0x3f, 0x8b, 0x0e,
+  0xa9, 0x14, 0x85, 0x95, 0xd8, 0xde, 0xdc, 0x12, 0x99, 0xe8, 0x96, 0x6e, 0xff, 0x3c, 0x7e, 0x58,
+  0x86, 0xe2, 0x92, 0x9e, 0x78, 0x36, 0xd3, 0x49, 0xd2, 0xd7, 0xfe, 0x72, 0x94, 0xce, 0x7a, 0xf6,
+  0x8a, 0x7d, 0x3a, 0xc0, 0xdd, 0xa3, 0x91, 0x30, 0xfa, 0xaa, 0xad, 0xaf, 0x92, 0xeb, 0x6b, 0x65,
+  0x8b, 0x26, 0x62, 0xdc, 0x50, 0x65, 0xce, 0x5a, 0x10, 0xaf, 0x3a, 0x62, 0xc6, 0x6f, 0x8e, 0xa0,
+  0x76, 0xb6, 0x80, 0x6a, 0x8a, 0xe2, 0xd5, 0x94, 0x7f, 0xbe, 0x91, 0xa4, 0x51, 0x80, 0x2d, 0x44,
+  0xf4, 0xcd, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x7a, 0x04, 0x6e, 0x0b, 0x56, 0x2a, 0x0c, 0x4f, 0x9a,
+  0x77, 0x3f, 0xe8, 0x69, 0xc8, 0xe9, 0x18, 0x8b, 0x7c, 0x44, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xf0, 0x7a, 0x04, 0x6e, 0x0b, 0x56, 0x2a, 0x0c, 0x4f,
+  0x9a, 0x77, 0x3f, 0xe8, 0x69, 0xc8, 0xe9, 0x18, 0x8b, 0x7c, 0x44, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+  0x72, 0xc5, 0xad, 0xca, 0xc0, 0x23, 0xb2, 0x7d, 0xc1, 0x0d, 0x17, 0xd9, 0x2d, 0x95, 0xf0, 0x3e,
+  0xe4, 0xfd, 0xbf, 0xcc, 0x8b, 0xf3, 0x52, 0x24, 0xbf, 0x9f, 0xee, 0x6f, 0xac, 0x30, 0x8e, 0x00,
+  0x65, 0x11, 0x55, 0x42, 0x26, 0x9c, 0x29, 0x9a, 0x82, 0x3d, 0xab, 0x6e, 0x32, 0xe3, 0x96, 0x47,
+  0xbf, 0xe4, 0xa8, 0xb8, 0x8b, 0x14, 0x07, 0x4a, 0xbf, 0x60, 0xd3, 0x7b, 0x67, 0x38, 0x4f, 0x8c,
+  0x11, 0x09, 0x78, 0x1c, 0xeb, 0xea, 0xc6, 0x8b, 0xfa, 0xbe, 0x8c, 0x5b, 0x57, 0xa5, 0xbf, 0x2e,
+  0x81, 0xaa, 0xdc, 0x56, 0xe1, 0x98, 0xb8, 0x1a, 0x28, 0xbf, 0x15, 0xb6, 0xae, 0xe9, 0x86, 0x53,
+  0xff, 0xb8, 0xb5, 0x6e, 0x4b, 0x84, 0xed, 0xeb, 0xed, 0x93, 0xf9, 0x08, 0x69, 0x8e, 0xc2, 0xf8,
+  0xc2, 0x44, 0x5f, 0x17, 0x94, 0x36, 0xf3, 0x00, 0x6d, 0xa1, 0x52, 0xd7, 0x80, 0x43, 0xd5, 0x3b,
+  0x2a, 0x70, 0x21, 0xcc, 0xed, 0xc0, 0x96, 0x5b, 0x5f, 0x1e, 0xcb, 0x7b, 0x5a, 0x28, 0xd5, 0x3f,
+  0x90, 0x1b, 0x8c, 0x57, 0xd8, 0x4d, 0xcc, 0x43, 0x9c, 0x94, 0x4d, 0x99, 0xcd, 0x03, 0x1f, 0x53,
+  0x3f, 0xab, 0xb2, 0x56, 0x1e, 0x70, 0x36, 0xda, 0x4a, 0x16, 0xb7, 0xca, 0xbe, 0x4b, 0x3e, 0x43,
+  0x4e, 0x08, 0xb1, 0x39, 0x18, 0x55, 0x54, 0x1b, 0x29, 0x0a, 0xdf, 0x83, 0x01, 0x33, 0xb2, 0xdb,
+  0x21, 0x87, 0x52, 0xe1, 0xc8, 0x2b, 0x92, 0x5c, 0x3a, 0x9f, 0xc7, 0x3c, 0x01, 0x76, 0x75, 0xe1,
+  0x25, 0xef, 0x21, 0xbd, 0x21, 0xe3, 0x0a, 0x9c, 0x31, 0x45, 0xf5, 0x18, 0xc9, 0xef, 0x01, 0xe2,
+  0x5b, 0x9e, 0xd7, 0xd5, 0x69, 0xcd, 0x6e, 0x01, 0x6f, 0x24, 0x58, 0x7e, 0x15, 0xb2, 0x8e, 0x94,
+  0xd4, 0xef, 0xf6, 0xf6, 0x1d, 0xc1, 0xaa, 0x5c, 0xe6, 0xbb, 0xd8, 0x50, 0x25, 0x45, 0x86, 0xb8,
+  0xe5, 0x2b, 0x83, 0x75, 0xbe, 0x7a, 0xa0, 0x36, 0x04, 0x50, 0xec, 0xfa, 0xa8, 0xb1, 0x0f, 0x9b,
+  0xe5, 0x99, 0x15, 0x1d, 0xd3, 0x58, 0x9b, 0xa2, 0xc9, 0x94, 0xe1, 0x77, 0x16, 0x88, 0xcc, 0x17,
+  0x4c, 0x9b, 0xc5, 0x32, 0x33, 0xfa, 0x7c, 0xa3, 0x8e, 0xcd, 0xdf, 0xf6, 0x8f, 0xb5, 0x76, 0xfb,
+  0x4b, 0x7f, 0xe1, 0x09, 0x6b, 0x94, 0xfa, 0x1d, 0x4f, 0xab, 0xd4, 0x62, 0xe2, 0xe8, 0xb8, 0xfa,
+  0x12, 0xc8, 0x9f, 0x63, 0xf4, 0xb8, 0x7e, 0x74, 0x59, 0x9e, 0x88, 0x3d, 0x53, 0xba, 0x1b, 0xa5,
+  0x98, 0x97, 0xf9, 0x7d, 0xac, 0xf8, 0xf7, 0xdf, 0x16, 0x16, 0x4c, 0x9f, 0x0f, 0x82, 0x86, 0x18,
+  0x28, 0x6d, 0x50, 0xc3, 0x7e, 0xf2, 0x8f, 0x5e, 0xd9, 0x91, 0x14, 0x96, 0x8f, 0x38, 0x20, 0x9f,
+  0xed, 0xc4, 0x65, 0x10, 0x5b, 0x34, 0x51, 0xcc, 0x16, 0xbe, 0xd1, 0x53, 0xe4, 0x72, 0xc3, 0x59,
+  0x97, 0x1f, 0x65, 0xaa, 0xcd, 0xab, 0xa8, 0x00, 0x27, 0xee, 0x08, 0x84, 0x6b, 0xfb, 0x37, 0xc5,
+  0xeb, 0x81, 0x64, 0x0d, 0x3d, 0x8f, 0xe2, 0xa0, 0x92, 0x8e, 0x4d, 0xba, 0x52, 0xbb, 0xd3, 0x7d,
+  0xef, 0x75, 0x29, 0x01, 0x6a, 0x59, 0x3a, 0xe2, 0xab, 0x33, 0xde, 0x6b, 0xec, 0xa7, 0xd6, 0xc4,
+  0x19, 0xd3, 0x25, 0x2a, 0xa8, 0xd3, 0x18, 0x2c, 0x33, 0x1f, 0x70, 0x51, 0x0d, 0xaa, 0xe5, 0x00,
+  0x52, 0x74, 0x74, 0xdd, 0x44, 0x3a, 0xe5, 0x2c, 0x87, 0xd5, 0x6d, 0x4c, 0x35, 0x98, 0x14, 0x90,
+  0x4d, 0xd7, 0xd4, 0xb9, 0x12, 0x20, 0xe8, 0xfe, 0xd3, 0x2d, 0x38, 0xdf, 0xef, 0x25, 0x5c, 0x78,
+  0x13, 0x18, 0x02, 0xbd, 0xfb, 0xfb, 0xf5, 0x5c, 0x6f, 0xc2, 0xad, 0xba, 0xe5, 0x42, 0x09, 0x82,
+  0xca, 0x7d, 0xb2, 0x41, 0x35, 0x96, 0x48, 0x8d, 0xd9, 0x4c, 0xce, 0x29, 0xd6, 0xf0, 0x9e, 0xef,
+  0x31, 0x82, 0x02, 0x50, 0x30, 0x82, 0x02, 0x4c, 0x02, 0x01, 0x01, 0x30, 0x25, 0x30, 0x0d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b, 0x02, 0x14, 0x62, 0x10,
+  0xfc, 0x73, 0x8d, 0x2e, 0xec, 0xe0, 0x17, 0x1d, 0x5f, 0xb7, 0xd7, 0xbd, 0xfe, 0xa2, 0xb8, 0x5a,
+  0x7f, 0xb2, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05,
+  0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x04, 0x82, 0x02, 0x00, 0xb2, 0xeb, 0xa6, 0xd3, 0xf6, 0x8b, 0xc3, 0x51, 0x8b, 0x6b, 0x65, 0x70,
+  0x69, 0xf8, 0x55, 0xf5, 0x19, 0x85, 0x08, 0x26, 0x34, 0x50, 0x26, 0xe0, 0x12, 0xb6, 0x62, 0x51,
+  0x4b, 0x2a, 0x65, 0x3f, 0x7c, 0x86, 0x45, 0x61, 0x7d, 0xcd, 0xad, 0x0a, 0xaa, 0xb5, 0x2d, 0x72,
+  0xf7, 0x3b, 0x19, 0x65, 0x1d, 0x6f, 0x0d, 0x4f, 0x2a, 0xdf, 0xe0, 0x43, 0xee, 0xb1, 0xb0, 0xb7,
+  0x19, 0xa8, 0x27, 0xad, 0x83, 0xa0, 0x54, 0xb4, 0x78, 0xc8, 0xc1, 0x79, 0x05, 0xac, 0x48, 0x2d,
+  0xc3, 0xe9, 0xb3, 0x9c, 0x75, 0x13, 0xae, 0x79, 0x91, 0xe3, 0xab, 0xe1, 0x9c, 0x8f, 0x39, 0x4d,
+  0xdd, 0xc9, 0x27, 0xbc, 0x5d, 0x81, 0x59, 0x2c, 0x07, 0xfd, 0xab, 0xda, 0x54, 0x07, 0x31, 0x12,
+  0xbb, 0xda, 0x4f, 0x76, 0x60, 0x42, 0xd0, 0xa1, 0xde, 0x53, 0xfb, 0x80, 0x4f, 0x69, 0x46, 0xf8,
+  0x30, 0xad, 0xd6, 0x04, 0x14, 0x98, 0x86, 0xe9, 0xcc, 0xa0, 0x9e, 0xd3, 0xb9, 0xcf, 0x28, 0x39,
+  0xdb, 0x4f, 0xfc, 0x9c, 0xa0, 0x30, 0x12, 0xad, 0x55, 0x0e, 0x77, 0x97, 0xf6, 0x1b, 0x89, 0x3e,
+  0x9c, 0x7e, 0x57, 0xbe, 0x1f, 0xc4, 0x58, 0x3b, 0x21, 0x78, 0x5f, 0x65, 0x0e, 0x76, 0x1e, 0x77,
+  0xeb, 0x14, 0x9d, 0xd6, 0x9e, 0xc4, 0xd5, 0xc4, 0x37, 0x39, 0xf3, 0xf2, 0x9d, 0x9f, 0x31, 0xde,
+  0x9d, 0x4f, 0x25, 0xc1, 0x8a, 0xdf, 0x31, 0x71, 0x23, 0xea, 0xe9, 0xa8, 0xee, 0xf3, 0xd7, 0x62,
+  0x7c, 0xae, 0x16, 0xe3, 0x9c, 0x92, 0xe6, 0x0a, 0x5c, 0x64, 0x0d, 0x34, 0x09, 0xd3, 0xc0, 0x3c,
+  0xe9, 0x8c, 0x83, 0x0f, 0x89, 0xb5, 0xb1, 0xc1, 0x78, 0x98, 0xea, 0xc3, 0x3b, 0x4a, 0xed, 0x76,
+  0x9d, 0xff, 0x33, 0xc5, 0x7c, 0x88, 0x0b, 0x0a, 0x32, 0xf8, 0x68, 0x9c, 0xe6, 0xbb, 0x45, 0x1f,
+  0xff, 0x02, 0xd4, 0xab, 0x04, 0xb0, 0x45, 0xa5, 0xdf, 0x10, 0x4a, 0x58, 0xb8, 0x99, 0xac, 0xcf,
+  0xd4, 0x85, 0x24, 0x8a, 0xbb, 0x20, 0x96, 0x1d, 0xc4, 0x96, 0x8f, 0xb4, 0xad, 0x7f, 0x0d, 0x5a,
+  0x56, 0xf9, 0xee, 0xa9, 0xbc, 0xdc, 0x05, 0xdc, 0x3b, 0xe9, 0x0d, 0x44, 0x78, 0x0b, 0x02, 0xa5,
+  0x62, 0x7f, 0x79, 0xce, 0x5e, 0x54, 0x74, 0xdd, 0x32, 0xd8, 0xbf, 0xc9, 0xbd, 0x30, 0x2b, 0x94,
+  0x1e, 0x26, 0xeb, 0x86, 0x75, 0x56, 0x00, 0xf9, 0xfa, 0xae, 0x81, 0xc4, 0x62, 0xcc, 0x07, 0x8d,
+  0xc5, 0x34, 0xe9, 0x05, 0x0a, 0xa2, 0x9a, 0x14, 0xe0, 0x2d, 0x4b, 0xb9, 0x23, 0xe6, 0x1c, 0x57,
+  0x7f, 0x32, 0xb9, 0x2d, 0xb1, 0xcf, 0x66, 0x33, 0x07, 0x89, 0xa0, 0x39, 0xbf, 0xf7, 0x13, 0xd3,
+  0xdb, 0x91, 0xfa, 0xca, 0x6d, 0x2d, 0x62, 0x66, 0xb7, 0xba, 0xe8, 0x8c, 0xf0, 0xbf, 0x06, 0x0f,
+  0xc2, 0x19, 0xf5, 0xbf, 0xa2, 0xef, 0xd6, 0x83, 0x5a, 0xcd, 0xe1, 0x85, 0xfe, 0x36, 0x55, 0x5f,
+  0xa2, 0xf7, 0x83, 0x29, 0xe5, 0xdd, 0x7d, 0xed, 0x03, 0x59, 0xfc, 0x55, 0xbb, 0xbc, 0x95, 0x4c,
+  0x38, 0xbc, 0xe7, 0xaa, 0xb9, 0x41, 0xff, 0x16, 0x02, 0x94, 0xf0, 0x91, 0x3c, 0x50, 0xe9, 0x36,
+  0xb2, 0xf9, 0x39, 0xb7, 0x1e, 0x99, 0xb9, 0xc1, 0xb6, 0x74, 0x02, 0xcd, 0x1d, 0x11, 0xd9, 0x65,
+  0x8c, 0x30, 0x79, 0x31, 0xce, 0xda, 0x90, 0x7e, 0x17, 0xf4, 0x33, 0x9f, 0x78, 0x09, 0xd6, 0x16,
+  0x23, 0x15, 0x19, 0x3b, 0x7c, 0x53, 0xe3, 0xec, 0x1b, 0x4f, 0xf5, 0x01, 0x01, 0x00, 0xa6, 0x83,
+  0x9a, 0xd7, 0x7a, 0x9f, 0x37, 0x09, 0x72, 0xdd, 0xc9, 0xd1, 0xc5, 0x65, 0x69, 0xc7, 0x43, 0x1f,
+  0x7e, 0x8c, 0x6c, 0x6e, 0x4a, 0xab, 0xd9, 0xf5, 0xee, 0xe0, 0x91, 0xae, 0xed, 0x4f, 0x2e, 0x52,
+  0x39, 0x04, 0xd2, 0x2e, 0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15,
+  0x5c, 0x2b, 0xf0, 0x72, 0x2b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x30, 0x82, 0x04, 0xfb, 0x30, 0x82, 0x02, 0xe3, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x62,
+  0x10, 0xfc, 0x73, 0x8d, 0x2e, 0xec, 0xe0, 0x17, 0x1d, 0x5f, 0xb7, 0xd7, 0xbd, 0xfe, 0xa2, 0xb8,
+  0x5a, 0x7f, 0xb2, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d,
+  0x05, 0x00, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50,
+  0x4b, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30, 0x31, 0x32, 0x31, 0x30, 0x30, 0x31, 0x34, 0x33, 0x31,
+  0x32, 0x5a, 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x38, 0x30, 0x31, 0x34, 0x33, 0x31, 0x32,
+  0x5a, 0x30, 0x0d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x50, 0x4b,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01,
+  0x00, 0xcf, 0x28, 0xb4, 0x76, 0x60, 0xcf, 0xae, 0xfe, 0xfb, 0x82, 0xb3, 0xe9, 0x73, 0xf2, 0x7b,
+  0x95, 0xee, 0x5e, 0xb2, 0x2e, 0x91, 0x4e, 0x0b, 0x06, 0xbc, 0x92, 0xc1, 0xc3, 0xe3, 0x61, 0xbf,
+  0xbb, 0xca, 0x96, 0x79, 0x46, 0x7f, 0x04, 0x57, 0x3c, 0x5b, 0x5e, 0xcf, 0x91, 0x87, 0x6b, 0x41,
+  0x19, 0x6b, 0x20, 0x1e, 0x46, 0x25, 0x13, 0x42, 0x8a, 0x2c, 0x8e, 0x88, 0x98, 0xf4, 0xeb, 0x37,
+  0xd1, 0x3e, 0xa7, 0xb7, 0xd4, 0xdd, 0xb5, 0xa5, 0xab, 0xe3, 0x7b, 0x04, 0xe6, 0x7e, 0xb8, 0xdb,
+  0x39, 0x3b, 0x0b, 0x59, 0x76, 0xc7, 0x39, 0xeb, 0xe0, 0x60, 0x2c, 0x54, 0x82, 0x51, 0x70, 0xc0,
+  0xd5, 0xa7, 0x7d, 0x6a, 0x2b, 0x01, 0x2f, 0x12, 0xa5, 0x6b, 0x73, 0xca, 0x8d, 0xf7, 0xdf, 0x27,
+  0xb7, 0xf0, 0xca, 0xd7, 0x92, 0xd9, 0x98, 0xe8, 0x62, 0x7a, 0x03, 0x5b, 0x8c, 0x43, 0x81, 0xd2,
+  0x21, 0x21, 0x7f, 0xea, 0x4f, 0x20, 0x90, 0x81, 0x40, 0x00, 0x21, 0x77, 0x11, 0x0c, 0xb8, 0xe3,
+  0x0c, 0x35, 0xda, 0xcb, 0x24, 0x09, 0xb2, 0xf6, 0x14, 0x45, 0x6b, 0x7a, 0xeb, 0x9c, 0x19, 0x88,
+  0x34, 0xe4, 0xea, 0xca, 0xc8, 0x46, 0x5b, 0x65, 0xaf, 0x9a, 0xc1, 0x27, 0xdd, 0xca, 0xe5, 0x55,
+  0x63, 0x95, 0xdf, 0x61, 0xf1, 0xcf, 0x0a, 0xe9, 0x5b, 0xef, 0xb4, 0xbb, 0xed, 0x8a, 0x90, 0x90,
+  0x52, 0x66, 0xc2, 0x93, 0xbf, 0x0d, 0x98, 0x50, 0x97, 0xd0, 0xe1, 0xe0, 0x55, 0x42, 0x03, 0x7d,
+  0xa3, 0xd1, 0x5e, 0x40, 0x26, 0x05, 0x05, 0x48, 0x70, 0x1f, 0x84, 0xc8, 0xf7, 0x1a, 0xb8, 0x7e,
+  0x73, 0x0b, 0x86, 0x88, 0xf4, 0x4a, 0xf3, 0x9c, 0x63, 0x50, 0x07, 0xab, 0x22, 0x08, 0x41, 0x78,
+  0xe6, 0x80, 0x3f, 0x82, 0xa8, 0x54, 0x4f, 0xb6, 0x4b, 0xf1, 0xf4, 0xdd, 0x0d, 0x8e, 0xa0, 0xd4,
+  0x53, 0xa6, 0x2b, 0x8c, 0x73, 0xe1, 0x7f, 0xb1, 0xae, 0x8f, 0x5d, 0x3e, 0xa9, 0x3c, 0xd0, 0x4b,
+  0x1d, 0xc9, 0xe5, 0x54, 0x1a, 0x5c, 0x05, 0x3c, 0x3b, 0xea, 0xd6, 0x4b, 0x53, 0x3d, 0xa7, 0x00,
+  0xe8, 0x31, 0x66, 0x83, 0x96, 0x88, 0x85, 0x9f, 0x2b, 0xf5, 0x87, 0x41, 0x71, 0x50, 0x65, 0xb8,
+  0xa2, 0xe7, 0x38, 0x47, 0x93, 0x50, 0xd2, 0x05, 0x17, 0x5f, 0x43, 0x0e, 0x47, 0x0b, 0xb5, 0xcc,
+  0xba, 0x91, 0x7e, 0x91, 0x03, 0x77, 0xd0, 0x21, 0x3f, 0x15, 0x7f, 0xb9, 0xd2, 0xdf, 0x2b, 0x06,
+  0x1a, 0xd1, 0x71, 0x5a, 0xba, 0x30, 0x8b, 0xb5, 0x2b, 0xd0, 0x99, 0xf1, 0x41, 0x03, 0x31, 0x65,
+  0xb3, 0x44, 0x38, 0x10, 0x7c, 0xf8, 0xed, 0x28, 0x40, 0x2d, 0xd7, 0x05, 0xd9, 0xf1, 0x08, 0x4b,
+  0xa5, 0x93, 0xa9, 0x58, 0x76, 0xcf, 0x7e, 0x2c, 0x9d, 0x3e, 0xfa, 0x76, 0x9a, 0x81, 0x69, 0xf4,
+  0x11, 0x1e, 0x87, 0xbe, 0x94, 0xec, 0x5d, 0x82, 0x19, 0x15, 0xfa, 0x50, 0x4e, 0x7a, 0xb4, 0xb0,
+  0x33, 0xea, 0x15, 0x88, 0x67, 0xb4, 0x6d, 0x1b, 0x02, 0x30, 0xa5, 0xd6, 0xaf, 0x2b, 0xc3, 0xf4,
+  0x5c, 0x51, 0xe3, 0x4d, 0x9f, 0xf0, 0x1a, 0x89, 0xba, 0xcd, 0x1d, 0xdf, 0x3f, 0x8b, 0x0e, 0xa9,
+  0x14, 0x85, 0x95, 0xd8, 0xde, 0xdc, 0x12, 0x99, 0xe8, 0x96, 0x6e, 0xff, 0x3c, 0x7e, 0x58, 0x86,
+  0xe2, 0x92, 0x9e, 0x78, 0x36, 0xd3, 0x49, 0xd2, 0xd7, 0xfe, 0x72, 0x94, 0xce, 0x7a, 0xf6, 0x8a,
+  0x7d, 0x3a, 0xc0, 0xdd, 0xa3, 0x91, 0x30, 0xfa, 0xaa, 0xad, 0xaf, 0x92, 0xeb, 0x6b, 0x65, 0x8b,
+  0x26, 0x62, 0xdc, 0x50, 0x65, 0xce, 0x5a, 0x10, 0xaf, 0x3a, 0x62, 0xc6, 0x6f, 0x8e, 0xa0, 0x76,
+  0xb6, 0x80, 0x6a, 0x8a, 0xe2, 0xd5, 0x94, 0x7f, 0xbe, 0x91, 0xa4, 0x51, 0x80, 0x2d, 0x44, 0xf4,
+  0xcd, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x7a, 0x04, 0x6e, 0x0b, 0x56, 0x2a, 0x0c, 0x4f, 0x9a, 0x77,
+  0x3f, 0xe8, 0x69, 0xc8, 0xe9, 0x18, 0x8b, 0x7c, 0x44, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xf0, 0x7a, 0x04, 0x6e, 0x0b, 0x56, 0x2a, 0x0c, 0x4f, 0x9a,
+  0x77, 0x3f, 0xe8, 0x69, 0xc8, 0xe9, 0x18, 0x8b, 0x7c, 0x44, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x72,
+  0xc5, 0xad, 0xca, 0xc0, 0x23, 0xb2, 0x7d, 0xc1, 0x0d, 0x17, 0xd9, 0x2d, 0x95, 0xf0, 0x3e, 0xe4,
+  0xfd, 0xbf, 0xcc, 0x8b, 0xf3, 0x52, 0x24, 0xbf, 0x9f, 0xee, 0x6f, 0xac, 0x30, 0x8e, 0x00, 0x65,
+  0x11, 0x55, 0x42, 0x26, 0x9c, 0x29, 0x9a, 0x82, 0x3d, 0xab, 0x6e, 0x32, 0xe3, 0x96, 0x47, 0xbf,
+  0xe4, 0xa8, 0xb8, 0x8b, 0x14, 0x07, 0x4a, 0xbf, 0x60, 0xd3, 0x7b, 0x67, 0x38, 0x4f, 0x8c, 0x11,
+  0x09, 0x78, 0x1c, 0xeb, 0xea, 0xc6, 0x8b, 0xfa, 0xbe, 0x8c, 0x5b, 0x57, 0xa5, 0xbf, 0x2e, 0x81,
+  0xaa, 0xdc, 0x56, 0xe1, 0x98, 0xb8, 0x1a, 0x28, 0xbf, 0x15, 0xb6, 0xae, 0xe9, 0x86, 0x53, 0xff,
+  0xb8, 0xb5, 0x6e, 0x4b, 0x84, 0xed, 0xeb, 0xed, 0x93, 0xf9, 0x08, 0x69, 0x8e, 0xc2, 0xf8, 0xc2,
+  0x44, 0x5f, 0x17, 0x94, 0x36, 0xf3, 0x00, 0x6d, 0xa1, 0x52, 0xd7, 0x80, 0x43, 0xd5, 0x3b, 0x2a,
+  0x70, 0x21, 0xcc, 0xed, 0xc0, 0x96, 0x5b, 0x5f, 0x1e, 0xcb, 0x7b, 0x5a, 0x28, 0xd5, 0x3f, 0x90,
+  0x1b, 0x8c, 0x57, 0xd8, 0x4d, 0xcc, 0x43, 0x9c, 0x94, 0x4d, 0x99, 0xcd, 0x03, 0x1f, 0x53, 0x3f,
+  0xab, 0xb2, 0x56, 0x1e, 0x70, 0x36, 0xda, 0x4a, 0x16, 0xb7, 0xca, 0xbe, 0x4b, 0x3e, 0x43, 0x4e,
+  0x08, 0xb1, 0x39, 0x18, 0x55, 0x54, 0x1b, 0x29, 0x0a, 0xdf, 0x83, 0x01, 0x33, 0xb2, 0xdb, 0x21,
+  0x87, 0x52, 0xe1, 0xc8, 0x2b, 0x92, 0x5c, 0x3a, 0x9f, 0xc7, 0x3c, 0x01, 0x76, 0x75, 0xe1, 0x25,
+  0xef, 0x21, 0xbd, 0x21, 0xe3, 0x0a, 0x9c, 0x31, 0x45, 0xf5, 0x18, 0xc9, 0xef, 0x01, 0xe2, 0x5b,
+  0x9e, 0xd7, 0xd5, 0x69, 0xcd, 0x6e, 0x01, 0x6f, 0x24, 0x58, 0x7e, 0x15, 0xb2, 0x8e, 0x94, 0xd4,
+  0xef, 0xf6, 0xf6, 0x1d, 0xc1, 0xaa, 0x5c, 0xe6, 0xbb, 0xd8, 0x50, 0x25, 0x45, 0x86, 0xb8, 0xe5,
+  0x2b, 0x83, 0x75, 0xbe, 0x7a, 0xa0, 0x36, 0x04, 0x50, 0xec, 0xfa, 0xa8, 0xb1, 0x0f, 0x9b, 0xe5,
+  0x99, 0x15, 0x1d, 0xd3, 0x58, 0x9b, 0xa2, 0xc9, 0x94, 0xe1, 0x77, 0x16, 0x88, 0xcc, 0x17, 0x4c,
+  0x9b, 0xc5, 0x32, 0x33, 0xfa, 0x7c, 0xa3, 0x8e, 0xcd, 0xdf, 0xf6, 0x8f, 0xb5, 0x76, 0xfb, 0x4b,
+  0x7f, 0xe1, 0x09, 0x6b, 0x94, 0xfa, 0x1d, 0x4f, 0xab, 0xd4, 0x62, 0xe2, 0xe8, 0xb8, 0xfa, 0x12,
+  0xc8, 0x9f, 0x63, 0xf4, 0xb8, 0x7e, 0x74, 0x59, 0x9e, 0x88, 0x3d, 0x53, 0xba, 0x1b, 0xa5, 0x98,
+  0x97, 0xf9, 0x7d, 0xac, 0xf8, 0xf7, 0xdf, 0x16, 0x16, 0x4c, 0x9f, 0x0f, 0x82, 0x86, 0x18, 0x28,
+  0x6d, 0x50, 0xc3, 0x7e, 0xf2, 0x8f, 0x5e, 0xd9, 0x91, 0x14, 0x96, 0x8f, 0x38, 0x20, 0x9f, 0xed,
+  0xc4, 0x65, 0x10, 0x5b, 0x34, 0x51, 0xcc, 0x16, 0xbe, 0xd1, 0x53, 0xe4, 0x72, 0xc3, 0x59, 0x97,
+  0x1f, 0x65, 0xaa, 0xcd, 0xab, 0xa8, 0x00, 0x27, 0xee, 0x08, 0x84, 0x6b, 0xfb, 0x37, 0xc5, 0xeb,
+  0x81, 0x64, 0x0d, 0x3d, 0x8f, 0xe2, 0xa0, 0x92, 0x8e, 0x4d, 0xba, 0x52, 0xbb, 0xd3, 0x7d, 0xef,
+  0x75, 0x29, 0x01, 0x6a, 0x59, 0x3a, 0xe2, 0xab, 0x33, 0xde, 0x6b, 0xec, 0xa7, 0xd6, 0xc4, 0x19,
+  0xd3, 0x25, 0x2a, 0xa8, 0xd3, 0x18, 0x2c, 0x33, 0x1f, 0x70, 0x51, 0x0d, 0xaa, 0xe5, 0x00, 0x52,
+  0x74, 0x74, 0xdd, 0x44, 0x3a, 0xe5, 0x2c, 0x87, 0xd5, 0x6d, 0x4c, 0x35, 0x98, 0x14, 0x90, 0x4d,
+  0xd7, 0xd4, 0xb9, 0x12, 0x20, 0xe8, 0xfe, 0xd3, 0x2d, 0x38, 0xdf, 0xef, 0x25, 0x5c, 0x78, 0x13,
+  0x18, 0x02, 0xbd, 0xfb, 0xfb, 0xf5, 0x5c, 0x6f, 0xc2, 0xad, 0xba, 0xe5, 0x42, 0x09, 0x82, 0xca,
+  0x7d, 0xb2, 0x41, 0x35, 0x96, 0x48, 0x8d, 0xd9, 0x4c, 0xce, 0x29, 0xd6, 0xf0, 0x9e, 0xef
+};
+
+UINT32 gPkRsa4096Sha512Size = sizeof(gPkRsa4096Sha512);
diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc
index 90165ca443..dc5ef1c3e3 100644
--- a/MdeModulePkg/MdeModulePkg.dsc
+++ b/MdeModulePkg/MdeModulePkg.dsc
@@ -19,6 +19,8 @@
   BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
   SKUID_IDENTIFIER               = DEFAULT
 
+!include UnitTestFrameworkPkg\UnitTestFrameworkPkgHost.dsc.inc
+
 [LibraryClasses]
   #
   # Entry point
@@ -433,6 +435,8 @@
   MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf
   MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf
 
+  MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTestUefiShell.inf
+
 [Components.IA32, Components.X64, Components.AARCH64]
   MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
   MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTestUefiShell.inf b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTestUefiShell.inf
new file mode 100644
index 0000000000..b4196ae3bc
--- /dev/null
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTestUefiShell.inf
@@ -0,0 +1,42 @@
+## @file
+# Authenticated Variable UnitTest built for execution in UEFI Shell.
+#
+# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+  INF_VERSION    = 0x00010006
+  BASE_NAME      = AuthVarUnitTestUefiShell
+  FILE_GUID      = 43CED9D0-9F5A-4E1E-BAE8-DE1729CBF0C8
+  MODULE_TYPE    = UEFI_APPLICATION
+  VERSION_STRING = 1.0
+  ENTRY_POINT    = AuthVarUnitTestEntryPoint
+
+[Sources]
+  PkRsa2048Sha256.c
+  PkNewRsa2048Sha256.c
+  PkRsa3072Sha256.c
+  PkNewRsa3072Sha256.c
+  PkRsa4096Sha256.c
+  PkNewRsa4096Sha256.c
+  PkRsa3072Sha384.c
+  PkNewRsa3072Sha384.c
+  PkRsa4096Sha512.c
+  PkNewRsa4096Sha512.c
+  AuthVarUnitTest.c
+
+[Guids]
+  gEfiGlobalVariableGuid
+  gEfiCustomModeEnableGuid
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  SecurityPkg/SecurityPkg.dec
+
+[LibraryClasses]
+  UnitTestLib
+  UefiApplicationEntryPoint
+  UefiRuntimeServicesTableLib
--
2.16.2.windows.1





 


Re: [EXTERNAL] [edk2-devel] [PATCH v1 25/25] .pytool: CI Settings to support StandaloneMmPkg

Bret Barkelew
 

Reviewed-by: Bret Barkelew <bret.barkelew@...>

 

- Bret

 

From: Sami Mujawar via groups.io
Sent: Wednesday, December 9, 2020 10:49 AM
To: devel@edk2.groups.io
Cc: Sami Mujawar; ard.biesheuvel@...; Yao, Jiewen; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: [EXTERNAL] [edk2-devel] [PATCH v1 25/25] .pytool: CI Settings to support StandaloneMmPkg

 

Update pytools configuration to enable StandaloneMmPkg
and update package status in documentation.

Signed-off-by: Sami Mujawar <sami.mujawar@...>
---
 .pytool/CISettings.py | 1 +
 .pytool/Readme.md     | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.pytool/CISettings.py b/.pytool/CISettings.py
index b337d046ae08acbe8e587ff42b56f6fc9ce30930..0748c3f45fecf9256738ed5d233d69732d4fb5be 100644
--- a/.pytool/CISettings.py
+++ b/.pytool/CISettings.py
@@ -52,6 +52,7 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
                 "UefiCpuPkg",
                 "FmpDevicePkg",
                 "ShellPkg",
+                "StandaloneMmPkg",
                 "FatPkg",
                 "CryptoPkg",
                 "UnitTestFrameworkPkg",
diff --git a/.pytool/Readme.md b/.pytool/Readme.md
index 2fc905b8674fc217044baa2ff721f3c6afa504c9..721e4c109b36e0c37003af24932e1ea8eb886cd1 100644
--- a/.pytool/Readme.md
+++ b/.pytool/Readme.md
@@ -24,7 +24,7 @@
 | ShellPkg             | :heavy_check_mark: | :heavy_check_mark: | Spell checking in audit mode, 3 modules are not being built by DSC
 | SignedCapsulePkg     |
 | SourceLevelDebugPkg  |
-| StandaloneMmPkg      |
+| StandaloneMmPkg      |                    | :heavy_check_mark: |
 | UefiCpuPkg           | :heavy_check_mark: | :heavy_check_mark: | Spell checking in audit mode, 2 binary modules not being built by DSC
 | UefiPayloadPkg       |
 | UnitTestFrameworkPkg | :heavy_check_mark: | :heavy_check_mark: |
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'





 


Re: [EXTERNAL] [edk2-devel] [PATCH v1 24/25] .azurepipelines: Add StandaloneMmPkg to CI matrix

Bret Barkelew
 

Need to update the TARGET_* name.

 

Probably should add this to the PcAt and Shell target, to keep the builders balanced.

 

- Bret

 

From: Sami Mujawar via groups.io
Sent: Wednesday, December 9, 2020 10:49 AM
To: devel@edk2.groups.io
Cc: Sami Mujawar; ard.biesheuvel@...; Yao, Jiewen; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: [EXTERNAL] [edk2-devel] [PATCH v1 24/25] .azurepipelines: Add StandaloneMmPkg to CI matrix

 

Add StandaloneMmPkg to the Core CI matrix.

Signed-off-by: Sami Mujawar <sami.mujawar@...>
---
 .azurepipelines/templates/pr-gate-build-job.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.azurepipelines/templates/pr-gate-build-job.yml b/.azurepipelines/templates/pr-gate-build-job.yml
index 10df21b041a670419e54a3d727bea83f0cbda157..6b1a295aff4fa34ec1cf4ce2b005ac28e7befda2 100644
--- a/.azurepipelines/templates/pr-gate-build-job.yml
+++ b/.azurepipelines/templates/pr-gate-build-job.yml
@@ -37,7 +37,7 @@ jobs:
         Build.Pkgs: 'PcAtChipsetPkg,ShellPkg'
         Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
       TARGET_FMP_FAT_TEST:
-        Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg'
+        Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg,StandaloneMmPkg'
         Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
       TARGET_CRYPTO:
         Build.Pkgs: 'CryptoPkg'
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'





 


Re: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

Bret Barkelew
 

Does StandaloneMm actually need this dependency:
ArmPlatformPkg/ArmPlatformPkg.dec

 

- Bret

 

From: Sami Mujawar via groups.io
Sent: Wednesday, December 9, 2020 10:49 AM
To: devel@edk2.groups.io
Cc: Sami Mujawar; ard.biesheuvel@...; Yao, Jiewen; lersek@...; thomas.abraham@...; Sughosh.Ganu@...; Matteo.Carlini@...; Ben.Adderson@...; nd@...
Subject: [EXTERNAL] [edk2-devel] [PATCH v1 23/25] StandaloneMmPkg: Add EDK2 Core CI support

 

The TianoCore EDKII project has introduced a Core CI infrastructure
using TianoCore EDKII Tools PIP modules:
  * https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fedk2-pytool-library%2F&amp;data=04%7C01%7Cbret.barkelew%40microsoft.com%7C7cc29e73d78541c28d9608d89c7323f1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431365642465867%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=tixOyEmTzX5XCznDFLfapPvPGJ4dMFtQMknQKsivuFE%3D&amp;reserved=0
  * https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fedk2-pytool-extensions%2F&amp;data=04%7C01%7Cbret.barkelew%40microsoft.com%7C7cc29e73d78541c28d9608d89c7323f1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431365642465867%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=50ExwE9RbO44Ojgk5HD0qHeSEheAdmRX%2BG4UnrVUVyE%3D&amp;reserved=0

The edk2\.pytool\Readme.md provides information to configure the
environment and to run local builds.

This patch defines the necessary settings for enabling the Core CI
builds for StandaloneMmPkg.

Signed-off-by: Sami Mujawar <sami.mujawar@...>
---
 StandaloneMmPkg/StandaloneMmPkg.ci.yaml | 85 ++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/StandaloneMmPkg/StandaloneMmPkg.ci.yaml b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..110f461815b11b3775f3e488a46e1a35ed29b4b7
--- /dev/null
+++ b/StandaloneMmPkg/StandaloneMmPkg.ci.yaml
@@ -0,0 +1,85 @@
+## @file
+#  CI configuration for StandaloneMmPkg
+#
+#  Copyright (c) 2020, Arm Limited. All rights reserved.<BR>
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+{
+    ## options defined .pytool/Plugin/CompilerPlugin
+    "CompilerPlugin": {
+        "DscPath": "StandaloneMmPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin
+    "HostUnitTestCompilerPlugin": {
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/CharEncodingCheck
+    "CharEncodingCheck": {
+        "IgnoreFiles": []
+    },
+
+    ## options defined .pytool/Plugin/DependencyCheck
+    "DependencyCheck": {
+        "AcceptableDependencies": [
+            "ArmPkg/ArmPkg.dec",
+            "ArmPlatformPkg/ArmPlatformPkg.dec",
+            "EmbeddedPkg/EmbeddedPkg.dec",
+            "StandaloneMmPkg/StandaloneMmPkg.dec",
+            "MdeModulePkg/MdeModulePkg.dec",
+            "MdePkg/MdePkg.dec"
+        ],
+        # For host based unit tests
+        "AcceptableDependencies-HOST_APPLICATION":[
+            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
+        ],
+        # For UEFI shell based apps
+        "AcceptableDependencies-UEFI_APPLICATION":[],
+        "IgnoreInf": []
+    },
+
+    ## options defined .pytool/Plugin/DscCompleteCheck
+    "DscCompleteCheck": {
+        "IgnoreInf": [],
+        "DscPath": "StandaloneMmPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck
+    "HostUnitTestDscCompleteCheck": {
+        "IgnoreInf": [""],
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/GuidCheck
+    "GuidCheck": {
+        "IgnoreGuidName": [],
+        "IgnoreGuidValue": [],
+        "IgnoreFoldersAndFiles": [],
+        "IgnoreDuplicates": [],
+    },
+
+    ## options defined .pytool/Plugin/LibraryClassCheck
+    "LibraryClassCheck": {
+        "IgnoreHeaderFile": []
+    },
+
+    ## options defined .pytool/Plugin/SpellCheck
+    "SpellCheck": {
+        "AuditOnly": False,
+        "IgnoreFiles": [],           # use gitignore syntax to ignore errors
+                                     # in matching files
+        "ExtendWords": [
+            "Bsymbolic",
+            "FwVol",
+            "mpidr",
+            "mstrict",
+            "schedulable",
+            "StandaloneMMCore",
+        ],           # words to extend to the dictionary for this package
+        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that
+                                     # should be ignore
+        "AdditionalIncludePaths": [] # Additional paths to spell check
+                                     # (wildcards supported)
+    }
+}
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'





 


Re: [PATCH] UefiCpuPkg/CpuDxe: Fix boot error

Lendacky, Thomas
 

On 12/2/20 3:38 PM, Guo Dong via groups.io wrote:
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3084

When DXE drivers are dispatched above 4GB memory and
the system is already in 64bit mode, the address
setCodeSelectorLongJump in stack will be override
by parameter. so change to use 64bit address and
jump to qword address.
This patch breaks AMD processors. AMD processors cannot do far jumps to
64-bit targets. Please see AMD APM Vol. 3 [1], JMP (Far), where it states:

Target is a code segment — Control is transferred to the target CS:rIP. In
this case, the target offset can only be a 16 or 32 bit value, depending
on operand-size, and is zero-extended to 64 bits; 64-bit offsets are only
available via call gates. No CPL change is allowed.

[1] http://support.amd.com/TechDocs/24594.pdf

Thanks,
Tom

Signed-off-by: Guo Dong <guo.dong@intel.com>
---
UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm b/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
index c3489bcc3e..6ad32b49f4 100644
--- a/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
+++ b/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
@@ -23,8 +23,8 @@ ASM_PFX(SetCodeSelector):
sub rsp, 0x10
lea rax, [setCodeSelectorLongJump]
mov [rsp], rax
- mov [rsp+4], cx
- jmp dword far [rsp]
+ mov [rsp+8], cx
+ jmp qword far [rsp]
setCodeSelectorLongJump:
add rsp, 0x10
ret


Re: [Patch 0/2] Extending the signing algorithms for Authenticated Variables

Michael D Kinney
 

Divneil,

Is this intended for a branch in edk2-staging repo using EDK II Code First Process?

I see the following BZ that seems to match:

https://bugzilla.tianocore.org/show_bug.cgi?id=2875

Please update Subject line to include [edk2-staging/<BranchName>] following EDK II Code First
branch naming conventions.

https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Code-First-Process

Also add the link to the BZ in all commit messages including Patch #0. Patch #0 should also
include a Signed-off-by tag and the merged set of Cc tags from all the individual patches.

For this proposed change, how does a caller of the UEFI Variable services know if
SHA384 or SHA512 is supported. I see the code change updates the variable services
to support this, but I do not see a detection method for platform FW capabilities.

The proposed spec change changes from *only* SHA256 to SHA256 or larger. But the code
change only adds SHA384 and SHA512. Do we want to make the spec change define the
specific SHA sizes required?

Thanks,

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wadhawan, Divneil R
Sent: Wednesday, December 9, 2020 10:33 AM
To: devel@edk2.groups.io
Subject: [edk2-devel] [Patch 0/2] Extending the signing algorithms for Authenticated Variables

Authenticated Variables currently only supports SHA256 as the digest algorithm.
This patch series extends it to include SHA384 and SHA512. The series is composed
of 2 patches.
a. Unit Test for Authenticated Variables
b. AuthService change to allow SHA384/SHA512 as digest algorithms.

Divneil Rai Wadhawan (2):
MdeModulePkg: Add unit test for Authenticated Variables
SecurityPkg: Add support for SHA-384/SHA-512 digest algos

.../Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c | 494 +++++++++++++++++++++
.../RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c | 139 ++++++
.../RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c | 179 ++++++++
.../RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c | 179 ++++++++
.../RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c | 219 +++++++++
.../RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c | 219 +++++++++
.../Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c | 139 ++++++
.../Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c | 179 ++++++++
.../Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c | 179 ++++++++
.../Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c | 219 +++++++++
.../Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c | 219 +++++++++
SecurityPkg/Library/AuthVariableLib/AuthService.c | 8 +-
AuthVariableDigestUpdate.md | 41 ++
MdeModulePkg/MdeModulePkg.dsc | 4 +
.../UnitTest/AuthVarUnitTestUefiShell.inf | 42 ++
15 files changed, 2457 insertions(+), 2 deletions(-)
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTest.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa2048Sha256.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha256.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa3072Sha384.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha256.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkNewRsa4096Sha512.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa2048Sha256.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha256.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa3072Sha384.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha256.c
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/PkRsa4096Sha512.c
create mode 100644 AuthVariableDigestUpdate.md
create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/UnitTest/AuthVarUnitTestUefiShell.inf

--
2.16.2.windows.1




15721 - 15740 of 84265