]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Test/UnitTest/Library/BaseCryptLib/DhTests.c
CryptoPkg: Apply uncrustify changes
[mirror_edk2.git] / CryptoPkg / Test / UnitTest / Library / BaseCryptLib / DhTests.c
CommitLineData
694bfd6f
MC
1/** @file\r
2 Application for Diffie-Hellman Primitives Validation.\r
3\r
4Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
5SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
7**/\r
8\r
9#include "TestBaseCryptLib.h"\r
10\r
7c342378
MK
11VOID *mDh1;\r
12VOID *mDh2;\r
694bfd6f
MC
13\r
14UNIT_TEST_STATUS\r
15EFIAPI\r
16TestVerifyDhPreReq (\r
7c342378 17 UNIT_TEST_CONTEXT Context\r
694bfd6f
MC
18 )\r
19{\r
20 mDh1 = DhNew ();\r
21 if (mDh1 == NULL) {\r
22 return UNIT_TEST_ERROR_TEST_FAILED;\r
23 }\r
24\r
25 mDh2 = DhNew ();\r
26 if (mDh2 == NULL) {\r
27 return UNIT_TEST_ERROR_TEST_FAILED;\r
28 }\r
29\r
30 return UNIT_TEST_PASSED;\r
31}\r
32\r
33VOID\r
34EFIAPI\r
35TestVerifyDhCleanUp (\r
7c342378 36 UNIT_TEST_CONTEXT Context\r
694bfd6f
MC
37 )\r
38{\r
39 if (mDh1 != NULL) {\r
40 DhFree (mDh1);\r
41 mDh1 = NULL;\r
42 }\r
7c342378 43\r
694bfd6f
MC
44 if (mDh2 != NULL) {\r
45 DhFree (mDh2);\r
46 mDh2 = NULL;\r
47 }\r
48}\r
49\r
50UNIT_TEST_STATUS\r
51EFIAPI\r
52TestVerifyDhGenerateKey (\r
7c342378 53 UNIT_TEST_CONTEXT Context\r
694bfd6f
MC
54 )\r
55{\r
7c342378
MK
56 UINT8 Prime[64];\r
57 UINT8 PublicKey1[64];\r
58 UINTN PublicKey1Length;\r
59 UINT8 PublicKey2[64];\r
60 UINTN PublicKey2Length;\r
61 UINT8 Key1[64];\r
62 UINTN Key1Length;\r
63 UINT8 Key2[64];\r
64 UINTN Key2Length;\r
65 BOOLEAN Status;\r
694bfd6f
MC
66\r
67 //\r
68 // Initialize Key Length\r
69 //\r
70 PublicKey1Length = sizeof (PublicKey1);\r
71 PublicKey2Length = sizeof (PublicKey2);\r
72 Key1Length = sizeof (Key1);\r
73 Key2Length = sizeof (Key2);\r
74\r
75 Status = DhGenerateParameter (mDh1, 2, 64, Prime);\r
76 UT_ASSERT_TRUE (Status);\r
77\r
78 Status = DhSetParameter (mDh2, 2, 64, Prime);\r
79 UT_ASSERT_TRUE (Status);\r
80\r
81 Status = DhGenerateKey (mDh1, PublicKey1, &PublicKey1Length);\r
82 UT_ASSERT_TRUE (Status);\r
83\r
84 Status = DhGenerateKey (mDh2, PublicKey2, &PublicKey2Length);\r
85 UT_ASSERT_TRUE (Status);\r
86\r
87 Status = DhComputeKey (mDh1, PublicKey2, PublicKey2Length, Key1, &Key1Length);\r
88 UT_ASSERT_TRUE (Status);\r
89\r
90 Status = DhComputeKey (mDh2, PublicKey1, PublicKey1Length, Key2, &Key2Length);\r
91 UT_ASSERT_TRUE (Status);\r
92\r
93 UT_ASSERT_EQUAL (Key1Length, Key2Length);\r
94\r
95 UT_ASSERT_MEM_EQUAL (Key1, Key2, Key1Length);\r
96\r
97 return UNIT_TEST_PASSED;\r
98}\r
99\r
7c342378
MK
100TEST_DESC mDhTest[] = {\r
101 //\r
102 // -----Description--------------------------------Class---------------------Function----------------Pre-----------------Post------------Context\r
103 //\r
104 { "TestVerifyDhGenerateKey()", "CryptoPkg.BaseCryptLib.Dh", TestVerifyDhGenerateKey, TestVerifyDhPreReq, TestVerifyDhCleanUp, NULL },\r
694bfd6f
MC
105};\r
106\r
7c342378 107UINTN mDhTestNum = ARRAY_SIZE (mDhTest);\r