refactor(fvp): use RSS API to retrieve attestation token and key

Retrieved the platform attestation token and delegated realm attestation
key through the PSA delegated attestation layer.

Even though FVP doesn't support RSS hardware today, it can still
leverage the RSS implementation of these PSA interfaces in their mocking
form (see PLAT_RSS_NOT_SUPPORTED).

Therefore, platform APIs now call these PSA interfaces instead of
directly providing these hardcoded values.

Change-Id: I31d0ca58f6f1a444f513d954da4e3e67757321ad
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
This commit is contained in:
Manish V Badarkhe 2023-03-12 21:34:44 +00:00 committed by Manish V Badarkhe
parent 0ed75fb78f
commit d679cdecb1
4 changed files with 126 additions and 234 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2022, Arm Limited. All rights reserved.
* Copyright (c) 2022-2023, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@ -87,104 +87,90 @@ static const uint8_t delegated_key[] = {
};
static const uint8_t platform_token[] = {
0xD2, 0x84, 0x43, 0xA1, 0x01, 0x26, 0xA0, 0x59,
0x02, 0xBE, 0xAA, 0x3A, 0x00, 0x01, 0x24, 0xFF,
0x58, 0x20, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
0xAB, 0xAB, 0x3A, 0x00, 0x01, 0x24, 0xFB, 0x58,
0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE,
0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE,
0xBF, 0x3A, 0x00, 0x01, 0x25, 0x00, 0x58, 0x21,
0x01, 0xFA, 0x58, 0x75, 0x5F, 0x65, 0x86, 0x27,
0xCE, 0x54, 0x60, 0xF2, 0x9B, 0x75, 0x29, 0x67,
0x13, 0x24, 0x8C, 0xAE, 0x7A, 0xD9, 0xE2, 0x98,
0x4B, 0x90, 0x28, 0x0E, 0xFC, 0xBC, 0xB5, 0x02,
0x48, 0x3A, 0x00, 0x01, 0x24, 0xFA, 0x58, 0x20,
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
0x3A, 0x00, 0x01, 0x24, 0xF8, 0x20, 0x3A, 0x00,
0x01, 0x24, 0xF9, 0x00, 0x3A, 0x00, 0x01, 0x24,
0xFD, 0x85, 0xA5, 0x05, 0x58, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60,
0x01, 0x65, 0x42, 0x4C, 0x31, 0x5F, 0x32, 0x06,
0x66, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x02,
0x58, 0x20, 0xF8, 0xB7, 0xCE, 0xAD, 0x9B, 0xE4,
0x5A, 0x8F, 0x5C, 0x52, 0x6F, 0x0C, 0x05, 0x25,
0x8F, 0xF3, 0xE9, 0x81, 0xDC, 0xBC, 0xF2, 0x05,
0x7F, 0x33, 0xF6, 0xBB, 0xDC, 0xD9, 0x4D, 0xA2,
0x34, 0x3A, 0xA5, 0x05, 0x58, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x67,
0x31, 0x2E, 0x37, 0x2E, 0x32, 0x2B, 0x30, 0x01,
0x63, 0x42, 0x4C, 0x32, 0x06, 0x66, 0x53, 0x48,
0x41, 0x32, 0x35, 0x36, 0x02, 0x58, 0x20, 0x3A,
0xE5, 0x9E, 0x40, 0xA9, 0x6B, 0xD5, 0x29, 0x1C,
0xAB, 0x7A, 0x5F, 0xBD, 0x1F, 0x9A, 0xA6, 0x52,
0xFB, 0x77, 0x7D, 0xA3, 0xEC, 0x9C, 0x29, 0xBC,
0xE6, 0x5B, 0x3B, 0x43, 0xFC, 0x9D, 0x26, 0xA5,
0x05, 0x58, 0x20, 0xBF, 0xE6, 0xD8, 0x6F, 0x88,
0x26, 0xF4, 0xFF, 0x97, 0xFB, 0x96, 0xC4, 0xE6,
0xFB, 0xC4, 0x99, 0x3E, 0x46, 0x19, 0xFC, 0x56,
0x5D, 0xA2, 0x6A, 0xDF, 0x34, 0xC3, 0x29, 0x48,
0x9A, 0xDC, 0x38, 0x04, 0x67, 0x31, 0x2E, 0x35,
0x2E, 0x30, 0x2B, 0x30, 0x01, 0x64, 0x52, 0x54,
0x5F, 0x30, 0x06, 0x66, 0x53, 0x48, 0x41, 0x32,
0x35, 0x36, 0x02, 0x58, 0x20, 0x47, 0x94, 0x9D,
0x27, 0x33, 0x82, 0x45, 0x1A, 0xDD, 0x25, 0xF4,
0x9A, 0x89, 0x6F, 0x5F, 0xD9, 0xB0, 0xE8, 0x14,
0xD3, 0xA4, 0x9B, 0x53, 0xB0, 0x44, 0x0B, 0xCF,
0x32, 0x1A, 0xC4, 0xD2, 0x65, 0xA5, 0x05, 0x58,
0x20, 0xB3, 0x60, 0xCA, 0xF5, 0xC9, 0x8C, 0x6B,
0x94, 0x2A, 0x48, 0x82, 0xFA, 0x9D, 0x48, 0x23,
0xEF, 0xB1, 0x66, 0xA9, 0xEF, 0x6A, 0x6E, 0x4A,
0xA3, 0x7C, 0x19, 0x19, 0xED, 0x1F, 0xCC, 0xC0,
0x49, 0x04, 0x67, 0x30, 0x2E, 0x30, 0x2E, 0x37,
0x2B, 0x30, 0x01, 0x64, 0x52, 0x54, 0x5F, 0x31,
0x06, 0x66, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36,
0x02, 0x58, 0x20, 0xCD, 0x38, 0xBE, 0xC8, 0xB7,
0xC0, 0x9E, 0xD5, 0x24, 0x30, 0xFE, 0xC8, 0xD0,
0x19, 0x12, 0x56, 0xB2, 0x7A, 0xA5, 0x53, 0x6F,
0xBC, 0x7D, 0x09, 0xCA, 0x11, 0xDD, 0x90, 0xD7,
0xD6, 0x70, 0xFD, 0xA5, 0x05, 0x58, 0x20, 0xAA,
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x04,
0x60, 0x01, 0x60, 0x06, 0x66, 0x53, 0x48, 0x41,
0x32, 0x35, 0x36, 0x02, 0x58, 0x20, 0x28, 0x3D,
0x0C, 0x25, 0x22, 0x0C, 0x87, 0x46, 0xA0, 0x58,
0x64, 0x6C, 0x0B, 0x14, 0x37, 0x39, 0x40, 0x9D,
0x2D, 0x11, 0xD1, 0xCC, 0x54, 0x51, 0xB4, 0x29,
0x22, 0xCD, 0x70, 0x92, 0x71, 0xC3, 0x3A, 0x00,
0x01, 0x25, 0x01, 0x77, 0x77, 0x77, 0x77, 0x2E,
0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x66,
0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x2E,
0x6F, 0x72, 0x67, 0x3A, 0x00, 0x01, 0x24, 0xF7,
0x71, 0x50, 0x53, 0x41, 0x5F, 0x49, 0x4F, 0x54,
0x5F, 0x50, 0x52, 0x4F, 0x46, 0x49, 0x4C, 0x45,
0x5F, 0x31, 0x3A, 0x00, 0x01, 0x24, 0xFC, 0x70,
0x30, 0x36, 0x30, 0x34, 0x35, 0x36, 0x35, 0x32,
0x37, 0x32, 0x38, 0x32, 0x39, 0x31, 0x30, 0x30,
0x58, 0x40, 0x1E, 0x0D, 0x2B, 0xD8, 0x7A, 0xC9,
0x2D, 0xCB, 0x73, 0xD1, 0x42, 0x2F, 0xBF, 0xDA,
0x24, 0x71, 0xE2, 0xAF, 0xEA, 0x48, 0x60, 0x17,
0x23, 0x75, 0x64, 0xAC, 0xCC, 0x23, 0xA2, 0x67,
0xC4, 0xE7, 0x8F, 0x1C, 0x7C, 0x68, 0x49, 0x42,
0x4D, 0xDA, 0xC6, 0xD6, 0x21, 0x1C, 0xAA, 0x00,
0xDA, 0x1E, 0x68, 0x56, 0xA3, 0x48, 0xEE, 0xA7,
0x92, 0xA9, 0x09, 0x83, 0x42, 0x04, 0x06, 0x9E,
0x62, 0xBB
0xD2, 0x84, 0x44, 0xA1, 0x01, 0x38, 0x22, 0xA0,
0x59, 0x02, 0x33, 0xA9, 0x19, 0x01, 0x09, 0x78,
0x1C, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
0x61, 0x72, 0x6D, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
0x43, 0x43, 0x41, 0x2D, 0x53, 0x53, 0x44, 0x2F,
0x31, 0x2E, 0x30, 0x2E, 0x30, 0x0A, 0x58, 0x20,
0xB5, 0x97, 0x3C, 0xB6, 0x8B, 0xAA, 0x9F, 0xC5,
0x55, 0x58, 0x78, 0x6B, 0x7E, 0xC6, 0x7F, 0x69,
0xE4, 0x0D, 0xF5, 0xBA, 0x5A, 0xA9, 0x21, 0xCD,
0x0C, 0x27, 0xF4, 0x05, 0x87, 0xA0, 0x11, 0xEA,
0x19, 0x09, 0x5C, 0x58, 0x20, 0x7F, 0x45, 0x4C,
0x46, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3E,
0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x58, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00,
0x58, 0x21, 0x01, 0x07, 0x06, 0x05, 0x04, 0x03,
0x02, 0x01, 0x00, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B,
0x0A, 0x09, 0x08, 0x17, 0x16, 0x15, 0x14, 0x13,
0x12, 0x11, 0x10, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B,
0x1A, 0x19, 0x18, 0x19, 0x09, 0x61, 0x58, 0x21,
0x01, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01,
0x00, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09,
0x08, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
0x10, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
0x18, 0x19, 0x09, 0x5B, 0x19, 0x30, 0x03, 0x19,
0x09, 0x62, 0x67, 0x73, 0x68, 0x61, 0x2D, 0x32,
0x35, 0x36, 0x19, 0x09, 0x5F, 0x84, 0xA5, 0x01,
0x62, 0x42, 0x4C, 0x05, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x04, 0x65,
0x33, 0x2E, 0x34, 0x2E, 0x32, 0x02, 0x58, 0x20,
0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10,
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
0x06, 0x74, 0x54, 0x46, 0x2D, 0x4D, 0x5F, 0x53,
0x48, 0x41, 0x32, 0x35, 0x36, 0x4D, 0x65, 0x6D,
0x50, 0x72, 0x65, 0x58, 0x49, 0x50, 0xA4, 0x01,
0x62, 0x4D, 0x31, 0x05, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x04, 0x63,
0x31, 0x2E, 0x32, 0x02, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0xA4, 0x01,
0x62, 0x4D, 0x32, 0x05, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x04, 0x65,
0x31, 0x2E, 0x32, 0x2E, 0x33, 0x02, 0x58, 0x20,
0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10,
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
0xA4, 0x01, 0x62, 0x4D, 0x33, 0x05, 0x58, 0x20,
0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10,
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
0x04, 0x61, 0x31, 0x02, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x19, 0x09,
0x60, 0x6C, 0x77, 0x68, 0x61, 0x74, 0x65, 0x76,
0x65, 0x72, 0x2E, 0x63, 0x6F, 0x6D, 0x58, 0x60,
0xE6, 0xB6, 0x38, 0x4F, 0xAE, 0x3F, 0x6E, 0x67,
0xF5, 0xD4, 0x97, 0x4B, 0x3F, 0xFD, 0x0A, 0xFA,
0x1D, 0xF0, 0x2F, 0x73, 0xB8, 0xFF, 0x5F, 0x02,
0xC0, 0x0F, 0x40, 0xAC, 0xF3, 0xA2, 0x9D, 0xB5,
0x31, 0x50, 0x16, 0x4F, 0xFA, 0x34, 0x3D, 0x0E,
0xAF, 0xE0, 0xD0, 0xD1, 0x6C, 0xF0, 0x9D, 0xC1,
0x01, 0x42, 0xA2, 0x3C, 0xCE, 0xD4, 0x4A, 0x59,
0xDC, 0x29, 0x0A, 0x30, 0x93, 0x5F, 0xB4, 0x98,
0x61, 0xBA, 0xE3, 0x91, 0x22, 0x95, 0x24, 0xF4,
0xAE, 0x47, 0x93, 0xD3, 0x84, 0xA3, 0x76, 0xD0,
0xC1, 0x26, 0x96, 0x53, 0xA3, 0x60, 0x3F, 0x6C,
0x75, 0x96, 0x90, 0x6A, 0xF9, 0x4E, 0xDA, 0x30
};
psa_status_t

View file

@ -1,113 +1,26 @@
/*
* Copyright (c) 2022, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2022-2023, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <errno.h>
#include <stdint.h>
#include <string.h>
/* Using hardcoded token values for AEM FVP */
static uint8_t platform_token[] = {
0xD2, 0x84, 0x44, 0xA1, 0x01, 0x38, 0x22, 0xA0,
0x59, 0x02, 0x33, 0xA9, 0x19, 0x01, 0x09, 0x78,
0x1C, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
0x61, 0x72, 0x6D, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
0x43, 0x43, 0x41, 0x2D, 0x53, 0x53, 0x44, 0x2F,
0x31, 0x2E, 0x30, 0x2E, 0x30, 0x0A, 0x58, 0x20,
0xB5, 0x97, 0x3C, 0xB6, 0x8B, 0xAA, 0x9F, 0xC5,
0x55, 0x58, 0x78, 0x6B, 0x7E, 0xC6, 0x7F, 0x69,
0xE4, 0x0D, 0xF5, 0xBA, 0x5A, 0xA9, 0x21, 0xCD,
0x0C, 0x27, 0xF4, 0x05, 0x87, 0xA0, 0x11, 0xEA,
0x19, 0x09, 0x5C, 0x58, 0x20, 0x7F, 0x45, 0x4C,
0x46, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3E,
0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x58, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00,
0x58, 0x21, 0x01, 0x07, 0x06, 0x05, 0x04, 0x03,
0x02, 0x01, 0x00, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B,
0x0A, 0x09, 0x08, 0x17, 0x16, 0x15, 0x14, 0x13,
0x12, 0x11, 0x10, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B,
0x1A, 0x19, 0x18, 0x19, 0x09, 0x61, 0x58, 0x21,
0x01, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01,
0x00, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09,
0x08, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
0x10, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
0x18, 0x19, 0x09, 0x5B, 0x19, 0x30, 0x03, 0x19,
0x09, 0x62, 0x67, 0x73, 0x68, 0x61, 0x2D, 0x32,
0x35, 0x36, 0x19, 0x09, 0x5F, 0x84, 0xA5, 0x01,
0x62, 0x42, 0x4C, 0x05, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x04, 0x65,
0x33, 0x2E, 0x34, 0x2E, 0x32, 0x02, 0x58, 0x20,
0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10,
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
0x06, 0x74, 0x54, 0x46, 0x2D, 0x4D, 0x5F, 0x53,
0x48, 0x41, 0x32, 0x35, 0x36, 0x4D, 0x65, 0x6D,
0x50, 0x72, 0x65, 0x58, 0x49, 0x50, 0xA4, 0x01,
0x62, 0x4D, 0x31, 0x05, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x04, 0x63,
0x31, 0x2E, 0x32, 0x02, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0xA4, 0x01,
0x62, 0x4D, 0x32, 0x05, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x04, 0x65,
0x31, 0x2E, 0x32, 0x2E, 0x33, 0x02, 0x58, 0x20,
0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10,
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
0xA4, 0x01, 0x62, 0x4D, 0x33, 0x05, 0x58, 0x20,
0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10,
0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
0x04, 0x61, 0x31, 0x02, 0x58, 0x20, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0F, 0x0E,
0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x17, 0x16,
0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x1F, 0x1E,
0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x19, 0x09,
0x60, 0x6C, 0x77, 0x68, 0x61, 0x74, 0x65, 0x76,
0x65, 0x72, 0x2E, 0x63, 0x6F, 0x6D, 0x58, 0x60,
0xE6, 0xB6, 0x38, 0x4F, 0xAE, 0x3F, 0x6E, 0x67,
0xF5, 0xD4, 0x97, 0x4B, 0x3F, 0xFD, 0x0A, 0xFA,
0x1D, 0xF0, 0x2F, 0x73, 0xB8, 0xFF, 0x5F, 0x02,
0xC0, 0x0F, 0x40, 0xAC, 0xF3, 0xA2, 0x9D, 0xB5,
0x31, 0x50, 0x16, 0x4F, 0xFA, 0x34, 0x3D, 0x0E,
0xAF, 0xE0, 0xD0, 0xD1, 0x6C, 0xF0, 0x9D, 0xC1,
0x01, 0x42, 0xA2, 0x3C, 0xCE, 0xD4, 0x4A, 0x59,
0xDC, 0x29, 0x0A, 0x30, 0x93, 0x5F, 0xB4, 0x98,
0x61, 0xBA, 0xE3, 0x91, 0x22, 0x95, 0x24, 0xF4,
0xAE, 0x47, 0x93, 0xD3, 0x84, 0xA3, 0x76, 0xD0,
0xC1, 0x26, 0x96, 0x53, 0xA3, 0x60, 0x3F, 0x6C,
0x75, 0x96, 0x90, 0x6A, 0xF9, 0x4E, 0xDA, 0x30
};
#include <delegated_attestation.h>
#include <psa/error.h>
/*
* Get the platform attestation token through the PSA delegated attestation
* layer.
*
* FVP cannot support RSS hardware at the moment, but it can still mock the
* RSS implementation of the PSA interface (see PLAT_RSS_NOT_SUPPORTED).
*/
int plat_rmmd_get_cca_attest_token(uintptr_t buf, size_t *len,
uintptr_t hash, size_t hash_size)
{
(void)hash;
(void)hash_size;
psa_status_t ret;
if (*len < sizeof(platform_token)) {
return -EINVAL;
}
ret = rss_delegated_attest_get_token((const uint8_t *)hash, hash_size,
(uint8_t *)buf, *len, len);
(void)memcpy((void *)buf, platform_token, sizeof(platform_token));
*len = sizeof(platform_token);
return 0;
return ret;
}

View file

@ -1,36 +1,30 @@
/*
* Copyright (c) 2022, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2022-2023, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <assert.h>
#include <errno.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <delegated_attestation.h>
#include <psa/error.h>
#include <services/rmmd_svc.h>
static uint8_t sample_attest_priv_key[] = {
0x20, 0x11, 0xC7, 0xF0, 0x3C, 0xEE, 0x43, 0x25, 0x17, 0x6E,
0x52, 0x4F, 0x03, 0x3C, 0x0C, 0xE1, 0xE2, 0x1A, 0x76, 0xE6,
0xC1, 0xA4, 0xF0, 0xB8, 0x39, 0xAA, 0x1D, 0xF6, 0x1E, 0x0E,
0x8A, 0x5C, 0x8A, 0x05, 0x74, 0x0F, 0x9B, 0x69, 0xEF, 0xA7,
0xEB, 0x1A, 0x41, 0x85, 0xBD, 0x11, 0x7F, 0x68
};
/*
* Get the delegated realm attestation key through the PSA delegated
* attestation layer.
*
* FVP cannot support RSS hardware at the moment, but it can still mock
* the RSS implementation of the PSA interface (see PLAT_RSS_NOT_SUPPORTED).
*/
int plat_rmmd_get_cca_realm_attest_key(uintptr_t buf, size_t *len,
unsigned int type)
{
psa_status_t ret;
assert(type == ATTEST_KEY_CURVE_ECC_SECP384R1);
if (*len < sizeof(sample_attest_priv_key)) {
return -EINVAL;
}
ret = rss_delegated_attest_get_delegated_key(0U, 0U, (uint8_t *)buf,
*len, len, 0U);
(void)memcpy((void *)buf, sample_attest_priv_key,
sizeof(sample_attest_priv_key));
*len = sizeof(sample_attest_priv_key);
return 0;
return ret;
}

View file

@ -196,8 +196,15 @@ endif
ifeq (${ENABLE_RME},1)
BL2_SOURCES += plat/arm/board/fvp/aarch64/fvp_helpers.S
BL31_SOURCES += plat/arm/board/fvp/fvp_plat_attest_token.c \
plat/arm/board/fvp/fvp_realm_attest_key.c
# FVP platform does not support RSS, but it can leverage RSS APIs to
# provide hardcoded token/key on request.
BL31_SOURCES += lib/psa/delegated_attestation.c
PLAT_INCLUDES += -Iinclude/lib/psa
endif
ifeq (${ENABLE_FEAT_RNG_TRAP},1)
@ -370,6 +377,10 @@ ifneq (${RESET_TO_BL2}, 0)
override BL1_SOURCES =
endif
# RSS is not supported on FVP right now. Thus, we use the mocked version
# of the provided PSA APIs. They return with success and hard-coded token/key.
PLAT_RSS_NOT_SUPPORTED := 1
# Include Measured Boot makefile before any Crypto library makefile.
# Crypto library makefile may need default definitions of Measured Boot build
# flags present in Measured Boot makefile.
@ -398,17 +409,6 @@ BL2_SOURCES += plat/arm/board/fvp/fvp_common_measured_boot.c \
plat/arm/board/fvp/fvp_bl2_measured_boot.c \
lib/psa/measured_boot.c
# Note that attestation code does not depend on measured boot interfaces per se,
# but the two features go together - attestation without boot measurements is
# pretty much pointless...
BL31_SOURCES += lib/psa/delegated_attestation.c
PLAT_INCLUDES += -Iinclude/lib/psa
# RSS is not supported on FVP right now. Thus, we use the mocked version
# of the provided PSA APIs. They return with success and hard-coded data.
PLAT_RSS_NOT_SUPPORTED := 1
# Even though RSS is not supported on FVP (see above), we support overriding
# PLAT_RSS_NOT_SUPPORTED from the command line, just for the purpose of building
# the code to detect any build regressions. The resulting firmware will not be
@ -418,8 +418,7 @@ ifneq (${PLAT_RSS_NOT_SUPPORTED},1)
include drivers/arm/rss/rss_comms.mk
BL1_SOURCES += ${RSS_COMMS_SOURCES}
BL2_SOURCES += ${RSS_COMMS_SOURCES}
BL31_SOURCES += ${RSS_COMMS_SOURCES} \
lib/psa/delegated_attestation.c
BL31_SOURCES += ${RSS_COMMS_SOURCES}
BL1_CFLAGS += -DPLAT_RSS_COMMS_PAYLOAD_MAX_SIZE=0
BL2_CFLAGS += -DPLAT_RSS_COMMS_PAYLOAD_MAX_SIZE=0