//\r
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 *HashData = "abc";\r
\r
+//\r
+// Result for MD4("abc"). (From "A.5 Test suite" of IETF RFC1320)\r
+//\r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 Md4Digest[MD4_DIGEST_SIZE] = {\r
+ 0xa4, 0x48, 0x01, 0x7a, 0xaf, 0x21, 0xd8, 0x52, 0x5f, 0xc1, 0x0a, 0xe8, 0x7a, 0xa6, 0x72, 0x9d\r
+ };\r
+\r
//\r
// Result for MD5("abc"). (From "A.5 Test suite" of IETF RFC1321)\r
//\r
Print (L" UEFI-OpenSSL Hash Engine Testing:\n");\r
DataSize = AsciiStrLen (HashData);\r
\r
+ Print (L"- MD4: ");\r
+ \r
+ //\r
+ // MD4 Digest Validation\r
+ //\r
+ ZeroMem (Digest, MAX_DIGEST_SIZE);\r
+ CtxSize = Md4GetContextSize ();\r
+ HashCtx = AllocatePool (CtxSize);\r
+\r
+ Print (L"Init... ");\r
+ Status = Md4Init (HashCtx);\r
+ if (!Status) {\r
+ Print (L"[Fail]");\r
+ return EFI_ABORTED;\r
+ }\r
+\r
+ Print (L"Update... ");\r
+ Status = Md4Update (HashCtx, HashData, DataSize);\r
+ if (!Status) {\r
+ Print (L"[Fail]");\r
+ return EFI_ABORTED;\r
+ }\r
+\r
+ Print (L"Finalize... ");\r
+ Status = Md4Final (HashCtx, Digest);\r
+ if (!Status) {\r
+ Print (L"[Fail]");\r
+ return EFI_ABORTED;\r
+ }\r
+\r
+ FreePool (HashCtx);\r
+\r
+ Print (L"Check Value... ");\r
+ if (CompareMem (Digest, Md4Digest, MD5_DIGEST_SIZE) != 0) {\r
+ Print (L"[Fail]");\r
+ return EFI_ABORTED;\r
+ }\r
+\r
+ Print (L"[Pass]\n");\r
+\r
Print (L"- MD5: ");\r
\r
//\r