15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
19 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
24 0x8C, 0xA6, 0x4D, 0xE9, 0xC1, 0xB1, 0x23, 0xA7,
28 0x92, 0x95, 0xB5, 0x9B, 0xB3, 0x84, 0x73, 0x6E,
32 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20,
33 0x4E, 0x6F, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74,
34 0x68, 0x65, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20
38 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
39 0xf1, 0xe0, 0xd3, 0xc2, 0xb5, 0xa4, 0x97, 0x86,
40 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
44 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
48 0x3F, 0xE3, 0x01, 0xC9, 0x62, 0xAC, 0x01, 0xD0,
49 0x22, 0x13, 0x76, 0x3C, 0x1C, 0xBD, 0x4C, 0xDC,
50 0x79, 0x96, 0x57, 0xC0, 0x64, 0xEC, 0xF5, 0xD4
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
61 0x10, 0xa5, 0x88, 0x69, 0xd7, 0x4b, 0xe5, 0xa3, 0x74, 0xcf, 0x86, 0x7c, 0xfb, 0x47, 0x38, 0x59
65 0x6d, 0x25, 0x1e, 0x69, 0x44, 0xb0, 0x51, 0xe0, 0x4e, 0xaa, 0x6f, 0xb4, 0xdb, 0xf7, 0x84, 0x65
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
73 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
74 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
78 0xdd, 0x8a, 0x49, 0x35, 0x14, 0x23, 0x1c, 0xbf, 0x56, 0xec, 0xce, 0xe4, 0xc4, 0x08, 0x89, 0xfb
82 0x01, 0x47, 0x30, 0xf8, 0x0a, 0xc6, 0x25, 0xfe, 0x84, 0xf0, 0x26, 0xc6, 0x0b, 0xfd, 0x54, 0x7d
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
91 0x5c, 0x9d, 0x84, 0x4e, 0xd4, 0x6f, 0x98, 0x85, 0x08, 0x5e, 0x5d, 0x6a, 0x4f, 0x94, 0xc7, 0xd7
95 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
96 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
100 0xc2, 0x86, 0x69, 0x6d, 0x88, 0x7c, 0x9a, 0xa0, 0x61, 0x1b, 0xbb, 0x3e, 0x20, 0x25, 0xa4, 0x5a
104 0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58
108 0xd2, 0x96, 0xcd, 0x94, 0xc2, 0xcc, 0xcf, 0x8a, 0x3a, 0x86, 0x30, 0x28, 0xb5, 0xe1, 0xdc, 0x0a,
109 0x75, 0x86, 0x60, 0x2d, 0x25, 0x3c, 0xff, 0xf9, 0x1b, 0x82, 0x66, 0xbe, 0xa6, 0xd6, 0x1a, 0xb1
117 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
121 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF
125 0x74, 0x94, 0xC2, 0xE7, 0x10, 0x4B, 0x08, 0x79
130(EFIAPI *EFI_BLOCK_CIPHER_GET_CONTEXT_SIZE)(
136(EFIAPI *EFI_BLOCK_CIPHER_INIT)(
137 OUT VOID *BlockCipherContext,
144(EFIAPI *EFI_BLOCK_CIPHER_ECB_ENCRYPT_DECRYPT)(
145 IN VOID *BlockCipherContext,
153(EFIAPI *EFI_BLOCK_CIPHER_CBC_ENCRYPT_DECRYPT)(
154 IN VOID *BlockCipherContext,
163(EFIAPI *EFI_BLOCK_CIPHER_RESET)(
164 IN OUT VOID *BlockCipherContext
168 EFI_BLOCK_CIPHER_GET_CONTEXT_SIZE GetContextSize;
169 EFI_BLOCK_CIPHER_INIT Init;
170 EFI_BLOCK_CIPHER_ECB_ENCRYPT_DECRYPT EcbEncrypt;
171 EFI_BLOCK_CIPHER_ECB_ENCRYPT_DECRYPT EcbDecrypt;
172 EFI_BLOCK_CIPHER_CBC_ENCRYPT_DECRYPT CbcEncrypt;
173 EFI_BLOCK_CIPHER_CBC_ENCRYPT_DECRYPT CbcDecrypt;
174 EFI_BLOCK_CIPHER_RESET Reset;
192BLOCK_CIPHER_TEST_CONTEXT mAes128CbcTestCtx = {
AesGetContextSize,
AesInit,
NULL,
NULL,
AesCbcEncrypt,
AesCbcDecrypt,
NULL, Aes128CbcKey, 128, Aes128CbcIvec, Aes128CbcData,
sizeof (Aes128CbcData), Aes128CbcCipher,
sizeof (Aes128CbcCipher) };
196TestVerifyBLockCiperPreReq (
203 TestContext = Context;
204 CtxSize = TestContext->GetContextSize ();
206 if (TestContext->Ctx ==
NULL) {
207 return UNIT_TEST_ERROR_TEST_FAILED;
210 return UNIT_TEST_PASSED;
215TestVerifyBLockCiperCleanUp (
221 TestContext = Context;
222 if (TestContext->Ctx !=
NULL) {
229TestVerifyBLockCiper (
238 TestContext = Context;
240 ZeroMem (Encrypt,
sizeof (Encrypt));
241 ZeroMem (Decrypt,
sizeof (Decrypt));
243 Status = TestContext->Init (TestContext->Ctx, TestContext->Key, TestContext->KeySize);
246 if (TestContext->Ivec ==
NULL) {
247 Status = TestContext->EcbEncrypt (TestContext->Ctx, TestContext->Data, TestContext->DataSize, Encrypt);
250 if (TestContext->Reset !=
NULL) {
251 Status = TestContext->Reset (TestContext->Ctx);
255 Status = TestContext->EcbDecrypt (TestContext->Ctx, Encrypt, TestContext->DataSize, Decrypt);
258 Status = TestContext->CbcEncrypt (TestContext->Ctx, TestContext->Data, TestContext->DataSize, TestContext->Ivec, Encrypt);
261 if (TestContext->Reset !=
NULL) {
262 Status = TestContext->Reset (TestContext->Ctx);
266 Status = TestContext->CbcDecrypt (TestContext->Ctx, Encrypt, TestContext->DataSize, TestContext->Ivec, Decrypt);
273 return UNIT_TEST_PASSED;
280 {
"TestVerifyAes128Cbc()",
"CryptoPkg.BaseCryptLib.BlockCipher", TestVerifyBLockCiper, TestVerifyBLockCiperPreReq, TestVerifyBLockCiperCleanUp, &mAes128CbcTestCtx },
BOOLEAN EFIAPI AesInit(OUT VOID *AesContext, IN CONST UINT8 *Key, IN UINTN KeyLength)
UINTN EFIAPI AesGetContextSize(VOID)
BOOLEAN EFIAPI AesCbcEncrypt(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, IN CONST UINT8 *Ivec, OUT UINT8 *Output)
BOOLEAN EFIAPI AesCbcDecrypt(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, IN CONST UINT8 *Ivec, OUT UINT8 *Output)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
VOID EFIAPI Input(IN CHAR16 *Prompt OPTIONAL, OUT CHAR16 *InStr, IN UINTN StrLen)
VOID EFIAPI FreePool(IN VOID *Buffer)
#define ARRAY_SIZE(Array)
#define GLOBAL_REMOVE_IF_UNREFERENCED
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
#define UT_ASSERT_MEM_EQUAL(BufferA, BufferB, Length)
#define UT_ASSERT_TRUE(Expression)