From a8c4464502aabcbda7032daddc772a1bc7386bdf Mon Sep 17 00:00:00 2001 From: qlong Date: Tue, 2 Nov 2010 06:06:38 +0000 Subject: Update CryptoPkg for new ciphers (HMAC, Block Cipher, etc) supports. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10997 6f19259b-4bc3-4df7-8a09-765794883524 --- CryptoPkg/Application/Cryptest/DhVerify.c | 117 ++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 CryptoPkg/Application/Cryptest/DhVerify.c (limited to 'CryptoPkg/Application/Cryptest/DhVerify.c') diff --git a/CryptoPkg/Application/Cryptest/DhVerify.c b/CryptoPkg/Application/Cryptest/DhVerify.c new file mode 100644 index 0000000000..455d85b6d2 --- /dev/null +++ b/CryptoPkg/Application/Cryptest/DhVerify.c @@ -0,0 +1,117 @@ +/** @file + Application for Diffie-Hellman Primitives Validation. + +Copyright (c) 2010, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "Cryptest.h" + +/** + Validate UEFI-OpenSSL DH Interfaces. + + @retval EFI_SUCCESS Validation succeeded. + @retval EFI_ABORTED Validation failed. + +**/ +EFI_STATUS +ValidateCryptDh ( + VOID + ) +{ + VOID *Dh1; + VOID *Dh2; + UINT8 Prime[64]; + UINT8 PublicKey1[64]; + UINTN PublicKey1Length; + UINT8 PublicKey2[64]; + UINTN PublicKey2Length; + UINT8 Key1[64]; + UINTN Key1Length; + UINT8 Key2[64]; + UINTN Key2Length; + BOOLEAN Status; + + Print (L"\nUEFI-OpenSSL DH Engine Testing:\n"); + + // + // Generate & Initialize DH Context + // + Print (L"- Context1 ... "); + Dh1 = DhNew (); + if (Dh1 == NULL) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Context2 ... "); + Dh2 = DhNew (); + if (Dh2 == NULL) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Parameter1 ... "); + Status = DhGenerateParameter (Dh1, 2, 64, Prime); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Parameter2 ... "); + Status = DhSetParameter (Dh2, 2, 64, Prime); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Generate key1 ... "); + Status = DhGenerateKey (Dh1, PublicKey1, &PublicKey1Length); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Generate key2 ... "); + Status = DhGenerateKey (Dh2, PublicKey2, &PublicKey2Length); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Compute key1 ... "); + Status = DhComputeKey (Dh1, PublicKey2, PublicKey2Length, Key1, &Key1Length); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Compute key2 ... "); + Status = DhComputeKey (Dh2, PublicKey1, PublicKey1Length, Key2, &Key2Length); + if (!Status) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"Compare Keys ... "); + if (Key1Length != Key2Length) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + if (CompareMem (Key1, Key2, Key1Length) != 0) { + Print (L"[Fail]"); + return EFI_ABORTED; + } + + Print (L"[Pass]\n"); + + return EFI_SUCCESS; +} -- cgit v1.2.3