| /* |
| * Copyright 2020 NXP |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| |
| #include "test_Crypto.h" |
| |
| #define MAC_BLOCK_SIZE 16 |
| |
| /* clang-format off */ |
| const uint8_t gSRCData1[MAC_BLOCK_SIZE] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; |
| const uint8_t gSRCData2[] = { |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1,0x49, |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1,0x49, |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1,0x49, |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1,0x49, |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1,0x49, |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1,0x49, |
| 0x84,0x82,0x33,0x00,0x10,0xB3,0x60,0x8B,0x7A,0x4C,0xC3,0xA1, |
| }; |
| const uint8_t srcData3[] = { |
| 0x84, 0x01, 0x03, 0x00, 0x28, 0x82, 0x7B, 0x9B, 0xBD, 0x3F, 0xDC, 0x41, 0x8C, 0x46, 0xBB, 0x42, 0xD4, 0x9A, 0x32, 0xC7, 0x0C, 0x0F, |
| 0x52, 0xB8, 0x6B, 0x24, 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, |
| 0x52, 0xB8, 0x6B, 0x24, 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, |
| 0x52, 0xB8, 0x6B, 0x24, 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, 11, 1,2,3,4,5, |
| 0x52, 0xB8, 0x6B, 0x24, 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, |
| 0x03, 0x61, 0x5E, 0x97, 0xA6, 0xDD, 0x8C, 0x18 }; |
| const uint8_t srcData4[] = { |
| 0x28, 0x82, 0x7B, 0x9B, 0xBD, 0x3F, 0xDC, 0x41, 0x8C, 0x46, 0xBB, 0x42, 0xD4, 0x9A, 0x32, 0xC7, 0x0C, 0x0F, |
| 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, |
| 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, |
| 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, 11, 1,2,3,4,5, |
| 0x13, 0x73, 0xFF, 1,2,3,4,5,6,6,7,8,9,0,1,2,3,4,5,6,7,9, 10, |
| 0xA6, 0xDD, 0x8C, 0x18 }; |
| |
| const uint8_t keystring[MAC_BLOCK_SIZE] = { 0xB3,0x35,0xFB,0xB5,0x14,0x00,0xB8,0x0B,0xB3,0x9B,0xE1,0xBF,0xD9,0x32,0x78,0x8C }; |
| /* clang-format on */ |
| |
| static sss_status_t test_mac_multiStep_algo(userCtx_t *pUserCtx, |
| const uint8_t expectedData[MAC_BLOCK_SIZE], |
| const uint16_t srcData1Len, |
| const uint16_t srcData2Len, |
| const uint16_t srcData3Len, |
| const uint16_t srcData4Len |
| ); |
| |
| |
| |
| |
| |
| sss_status_t test_mac_multiStep_algo_mmm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x90,0xFA,0x63,0x22,0x11,0x9D,0x60,0xDB,0x82,0x9D,0xC7,0xCF,0xC3,0x98,0x35,0x6C,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mmz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xF5,0x89,0x46,0x96,0x10,0x1B,0x57,0x37,0xD1,0xC5,0x62,0x16,0x9D,0xFF,0x88,0x03,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mmp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xD1,0x05,0x5E,0xF8,0x98,0xFF,0x74,0xF0,0xFC,0x44,0x79,0xE5,0xD9,0x52,0x34,0xEE,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mmq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x6C,0xEB,0x44,0x3F,0xAF,0x8D,0x21,0x78,0x08,0xD0,0x7B,0xC8,0xF0,0x16,0x03,0x4B,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mzm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xC0,0x80,0xB8,0x40,0x88,0xC4,0x0E,0x98,0x24,0xA8,0x93,0xD0,0xA1,0xC9,0xD1,0x29,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mzz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x10,0xEF,0xEE,0x75,0xFD,0xE7,0xDF,0xD9,0x45,0xE5,0x98,0xE3,0x31,0x34,0xF8,0x6A,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mzp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0xD4,0xB0,0xD8,0x39,0x31,0x07,0x78,0xD2,0x9D,0x51,0x2D,0x97,0x6B,0x05,0x07,0xC2,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mzq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x06,0xD2,0xB2,0x05,0x6F,0x6C,0x6C,0x44,0xF6,0xDD,0x51,0x9A,0x0D,0x7B,0x33,0x47,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mpm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0xB6,0xE3,0x43,0x83,0xC1,0x33,0x4B,0x07,0xD8,0x3C,0xB4,0xDA,0xC2,0x7F,0xB1,0x56,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mpz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| { 0x2C,0x86,0x75,0x84,0xD7,0x25,0x75,0x56,0x5A,0xE3,0xDA,0x8A,0x76,0xD5,0x20,0x78, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mpp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x29,0x34,0xF6,0xE5,0xC5,0x1D,0x99,0xC6,0xB7,0x39,0x71,0xC9,0xAC,0x06,0xD1,0x35, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mpq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x71,0x12,0x09,0x62,0x81,0x25,0x54,0xF4,0x7B,0x09,0x1F,0xB9,0xE6,0x23,0x7E,0x3D,}; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mqm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x8D,0xF2,0x84,0xE5,0x30,0xA0,0x1A,0x01,0xDF,0x84,0x6E,0x88,0xB1,0x6C,0xC2,0x50,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mqz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| { 0x80,0x5C,0xD9,0xBB,0x9E,0x6F,0xBB,0x98,0x1C,0xF1,0x7C,0x89,0x6B,0x05,0x86,0x73, }; |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mqp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x6E,0xCC,0x06,0xED,0xC9,0x55,0xED,0xC6,0xA1,0x41,0x0A,0xE2,0xB7,0xF5,0x9E,0x82,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_mqq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x5E,0xDC,0x15,0x66,0xE0,0x67,0x89,0xF8,0x2C,0x2A,0xC3,0xC4,0x53,0xC1,0x1C,0x01,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zmm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xD7,0xE2,0x26,0x83,0xC6,0xC5,0x35,0xD0,0xEE,0x7D,0xB0,0x12,0x49,0xF0,0x54,0x10,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zmz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| { 0xC8,0xDC,0xC5,0xBC,0x31,0x3D,0x7F,0x8F,0xA1,0x76,0x47,0xF1,0xBD,0xED,0xFF,0xCE, }; |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zmp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xCA,0x15,0xFF,0x1B,0xE1,0x2A,0xAC,0x2C,0xF5,0x8E,0x57,0x3B,0x7B,0x18,0x27,0x63, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zmq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x51,0x71,0x68,0xAE,0x0D,0x71,0x00,0x38,0x25,0x90,0xD4,0x20,0x6C,0xDA,0x4C,0xBE, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zzm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x15,0x5D,0xF8,0x66,0x68,0xD8,0x48,0xB9,0x6C,0x32,0x41,0x34,0x1B,0x59,0x2A,0x62, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zzz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x59,0x3D,0x3F,0x51,0x75,0xED,0x59,0x17,0xF4,0x2D,0x1F,0xEF,0x9F,0x52,0xBF,0x53, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zzp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x9A,0xB9,0xCB,0xE5,0x79,0x50,0xF3,0x78,0x66,0xCF,0x6E,0x4A,0xA5,0x77,0x50,0x1F, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zzq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xAB,0xA8,0x71,0x31,0xAC,0x2A,0x1A,0x1A,0xA6,0x5A,0x32,0xEB,0x51,0x64,0x1F,0x29, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zpm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x72,0xCF,0xEB,0xC5,0x5E,0xA0,0xD9,0x36,0x53,0xB6,0x8F,0xF7,0x7E,0xD8,0x75,0xE0, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zpz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xB0,0x50,0x69,0x02,0x73,0x9D,0x0A,0x73,0x46,0x15,0xC7,0x76,0xC7,0x25,0x25,0xEF, }; |
| |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zpp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xF0,0x26,0xF3,0xEF,0xAE,0x80,0x65,0xE5,0x45,0x23,0xF0,0xF6,0xBC,0xD0,0x7D,0x54, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zpq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x78,0x31,0x80,0x6A,0xEE,0xC4,0xE5,0x22,0x08,0x03,0xE6,0x1C,0x80,0x96,0xBB,0x8F, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zqm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x52,0xD2,0x2B,0x58,0xC9,0x90,0xDA,0xA0,0x85,0x9B,0x98,0xE2,0x23,0xB8,0xF6,0x0B, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zqz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xC5,0x75,0xC5,0x03,0x9F,0x31,0xDF,0x67,0xCF,0x05,0xCB,0xE3,0xD4,0x9D,0x5E,0x08, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zqp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x33,0x94,0xBA,0x46,0xFF,0x8E,0x5E,0x82,0xB2,0xFF,0x7A,0xCB,0xBA,0x27,0x85,0x57, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_zqq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x3A,0x98,0x00,0xFF,0x90,0x63,0x90,0x16,0x41,0xB8,0xFF,0x2B,0xF9,0x30,0xB5,0xE1, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pmm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x42,0xF5,0x9A,0x2B,0x3A,0xC6,0x85,0x87,0x8F,0xE4,0x46,0x03,0x94,0x3D,0x5D,0xF7, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pmz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x2F,0xB3,0x72,0xAE,0x9E,0xC3,0x41,0xE9,0x6F,0x35,0x67,0xB8,0xB3,0x0A,0x4C,0x4B, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pmp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xDE,0x6B,0x4C,0xC8,0x39,0xDB,0xDB,0xE4,0x65,0x9B,0x5A,0x2A,0x9F,0x7D,0xA5,0xA2, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pmq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xE6,0x0B,0x48,0x5A,0x7E,0xB6,0xC0,0x48,0xA9,0xA6,0xCE,0xE5,0x1D,0x16,0x8B,0xD3, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pzm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xBB,0xA4,0x76,0x83,0x2B,0xEA,0xEA,0x7D,0x4D,0x77,0x0D,0x07,0x19,0xC5,0x87,0x3D, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pzz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0x38,0x11,0x1B,0xD9,0xF1,0x4D,0x07,0x33,0x28,0xCB,0xB3,0x93,0x95,0xBC,0x69,0x98, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pzp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xD7,0xE0,0x43,0x16,0x1E,0x42,0x6B,0x81,0x97,0x4E,0xFC,0x0E,0x39,0xD5,0xAC,0xB8, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pzq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xE5,0xC8,0xF3,0x69,0xBB,0x35,0x95,0xE1,0x8B,0xCD,0x8F,0x93,0x26,0xD2,0x27,0x10, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_ppm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xE9,0xCC,0x28,0x02,0x30,0x54,0xA0,0x0C,0x08,0x21,0x2E,0xB7,0x9F,0x71,0x94,0xEF, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_ppz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xD0,0x8C,0x24,0x0E,0x7F,0x70,0x34,0x77,0x63,0xE7,0x76,0xF8,0xB2,0xAD,0xF4,0x87, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_ppp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0xE4,0xDF,0x2B,0x4B,0xB7,0x24,0xA5,0x7D,0xA5,0x31,0xB2,0x2D,0x82,0x71,0x66,0xFE,}; |
| ; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_ppq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = {0x17,0xC6,0x24,0xD0,0x4C,0x3C,0x08,0x1C,0x26,0xEB,0x18,0x79,0xFC,0x8E,0x17,0x53,}; |
| ; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pqm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| { 0x9E,0xC2,0x0A,0xE5,0x5C,0xC1,0x90,0xA2,0xE6,0x23,0xD4,0x1E,0xFB,0x5D,0x98,0x32, }; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pqz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = { 0xE7,0x6A,0xA2,0xC1,0xDE,0x97,0xDE,0x0F,0x09,0x61,0xD0,0xA2,0x40,0xBC,0x8E,0x6D, };; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pqp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x0F,0x45,0x6C,0x7F,0x52,0xFE,0xDB,0xF7,0xE8,0x45,0x0C,0x9D,0xA7,0x35,0x24,0x7A,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_pqq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x7F,0x49,0xE2,0x54,0xE5,0xA1,0x82,0xDD,0x5E,0xC3,0xC1,0x1B,0x48,0xD3,0x16,0x27,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qmm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x5D,0x5C,0x78,0x11,0x8F,0x14,0x65,0xC3,0xC7,0x61,0xE7,0x3B,0x84,0xF6,0xCE,0xCE,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qmz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x4A,0x71,0xA4,0xE5,0x8D,0xD0,0xA0,0x66,0xDE,0x31,0xB2,0xE7,0xAD,0xB8,0xD9,0xF6,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qmp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x51,0x6A,0xBE,0xEB,0x00,0x86,0xDE,0xB6,0xAC,0x89,0x9A,0x9F,0x87,0xE9,0x62,0x86,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qmq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x78,0x14,0x6B,0xA9,0x06,0xFC,0x66,0x36,0xDC,0x43,0xD0,0x97,0x2B,0xDF,0x1D,0xEF,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qzm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x37,0xCA,0xAD,0xE1,0xE4,0x2A,0x93,0xC6,0xB6,0x84,0xE6,0xA4,0xF3,0x4D,0x56,0x9D,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qzz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xB6,0x4F,0x1A,0x86,0xF8,0xFA,0x78,0x19,0xE0,0x7B,0xB3,0x22,0x27,0x9F,0xF5,0xED,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qzp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xC0,0x33,0xDA,0xA7,0x1B,0xD6,0xA1,0x9B,0x2F,0x9E,0x42,0x2C,0x55,0x45,0xE3,0xE4,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qzq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x33,0x18,0xE9,0x1D,0xDD,0x67,0xDF,0x78,0xAB,0xB2,0xE0,0x81,0xA0,0xAF,0xC2,0x78,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4), |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qpm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x20,0x2C,0x59,0x8B,0x5F,0xFD,0xBB,0x3D,0x8B,0xC7,0x21,0x2F,0x2A,0x74,0xF3,0xC2,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qpz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x84,0x2C,0xBC,0xD2,0x1A,0xEB,0xD3,0xF4,0xA6,0xCF,0x3D,0xD7,0xAF,0xDF,0xF7,0xB9,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qpp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x1B,0x08,0xEE,0x62,0x89,0xDA,0x5E,0x57,0x87,0x20,0xE2,0x5D,0x85,0x8C,0x7E,0xB4,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qpq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xCB,0xE6,0xF2,0x93,0x55,0x14,0xFA,0x5C,0x44,0x49,0xDB,0x55,0x82,0x43,0xFE,0x7E,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qqm(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x6E,0xD0,0x7C,0x27,0x21,0x48,0x25,0x41,0xC4,0xCD,0xEE,0x53,0x9B,0x3F,0xC9,0x95,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) - 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qqz(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x4D,0x4C,0x25,0x1E,0x6D,0x0D,0xC3,0x81,0x98,0x5B,0xEC,0xC7,0x10,0x5F,0xE7,0xD4,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4)); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qqp(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0x6D,0x5D,0xF5,0x9F,0x0B,0xC1,0x67,0xBC,0xF3,0x70,0x95,0x9B,0x91,0x08,0x2B,0x64,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) + 1); |
| return status; |
| } |
| |
| |
| sss_status_t test_mac_multiStep_algo_qqq(userCtx_t *pUserCtx) { |
| sss_status_t status; |
| const uint8_t expectedData[MAC_BLOCK_SIZE] = |
| {0xB8,0xE0,0x0B,0x59,0xAC,0x33,0xAE,0x74,0xAF,0x09,0x30,0xC0,0x2A,0xFC,0xF3,0x11,}; |
| |
| status = test_mac_multiStep_algo(pUserCtx, expectedData, |
| MAC_BLOCK_SIZE, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0, |
| (MAC_BLOCK_SIZE * 4) * 0); |
| return status; |
| } |
| |
| |
| |
| static sss_status_t test_mac_multiStep_algo(userCtx_t *pUserCtx, |
| const uint8_t expectedData[MAC_BLOCK_SIZE], |
| const uint16_t srcData1Len, |
| const uint16_t srcData2Len, |
| const uint16_t srcData3Len, |
| const uint16_t srcData4Len |
| ) |
| { |
| sss_status_t status; |
| uint8_t outdata[256] = { 0 }; |
| size_t outdatLen = sizeof(outdata); |
| uint8_t count = 0; |
| |
| sss_algorithm_t algorithm = kAlgorithm_SSS_CMAC_AES; |
| sss_mode_t mode = kMode_SSS_Mac; |
| |
| status = sss_host_key_object_allocate_handle(&pUserCtx->key, |
| __LINE__, |
| kSSS_KeyPart_Default, |
| kSSS_CipherType_CMAC, |
| 16, |
| kKeyObject_Mode_Transient); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_key_object_alloc_mac_multiStep Failed!!!"); |
| goto exit; |
| } |
| |
| status = sss_host_key_store_set_key(&pUserCtx->ks, |
| &pUserCtx->key, |
| keystring, |
| sizeof(keystring), |
| sizeof(keystring) * 8, |
| NULL, |
| 0); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_set_key_mac_multiStep Failed!!!"); |
| goto exit; |
| } |
| |
| status = sss_host_mac_context_init( |
| &pUserCtx->mac, &pUserCtx->session, &pUserCtx->key, algorithm, mode); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_context_init_multiStep Failed!!!"); |
| goto exit; |
| } |
| |
| status = sss_host_mac_init(&pUserCtx->mac); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_init_multiStep Failed!!!"); |
| goto exit; |
| } |
| |
| if (srcData1Len > 0) { |
| status = sss_host_mac_update(&pUserCtx->mac, gSRCData1, srcData1Len); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_update_multiStep step1 Failed!!!"); |
| goto exit; |
| } |
| } |
| |
| |
| if (srcData2Len > 0) { |
| status = sss_host_mac_update(&pUserCtx->mac, gSRCData2, srcData2Len); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_update_multiStep step2 Failed!!!"); |
| goto exit; |
| } |
| } |
| |
| if (srcData3Len > 0) { |
| status = sss_host_mac_update(&pUserCtx->mac, srcData3, srcData3Len); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_update_multiStep step2 Failed!!!"); |
| goto exit; |
| } |
| } |
| if (srcData4Len > 0) { |
| status = sss_host_mac_update(&pUserCtx->mac, srcData4, srcData4Len); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_update_multiStep step2 Failed!!!"); |
| goto exit; |
| } |
| } |
| status = sss_host_mac_finish(&pUserCtx->mac, outdata, &outdatLen); |
| if (status != kStatus_SSS_Success) |
| { |
| LOG_E("Userkey_mac_finish_multiStep Failed!!!"); |
| goto exit; |
| } |
| LOG_AU8_I(outdata, outdatLen); |
| for (count = 0;count < outdatLen;count++) |
| { |
| if (outdata[count] != expectedData[count]) |
| { |
| LOG_E("Crypto results are wrong mac_multiStep !!!"); |
| LOG_MAU8_E("Expected", expectedData, MAC_BLOCK_SIZE); |
| printf("\n {"); |
| for (size_t i = 0; i < outdatLen; i++) { |
| printf("0x%02X,", outdata[i]); |
| } |
| printf("};\n\n"); |
| //LOG_MAU8_E("Got", outdata, outdatLen); |
| status = kStatus_SSS_Fail; |
| break; |
| } |
| } |
| |
| #if 0 |
| // sss_host_key_object_free(&pUserCtx->key); |
| sss_host_mac_context_free(&pUserCtx->mac); |
| status = sss_host_mac_context_init( |
| &pUserCtx->mac, &pUserCtx->session, &pUserCtx->key, algorithm, mode); |
| status = sss_host_mac_init(&pUserCtx->mac); |
| status = sss_host_mac_update(&pUserCtx->mac, expectedData, 16); |
| status = sss_host_mac_update(&pUserCtx->mac, srcData3, srcData3Len); |
| sss_host_mac_finish(&pUserCtx->mac, outdata, &outdatLen); |
| #endif |
| |
| exit: |
| sss_host_key_object_free(&pUserCtx->key); |
| sss_host_mac_context_free(&pUserCtx->mac); |
| sss_host_key_store_context_free(&pUserCtx->ks); |
| return status; |
| } |