]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
refactor(fvp): use RSS API to retrieve attestation token and key
authorManish V Badarkhe <Manish.Badarkhe@arm.com>
Sun, 12 Mar 2023 21:34:44 +0000 (21:34 +0000)
committerManish V Badarkhe <manish.badarkhe@arm.com>
Wed, 22 Mar 2023 15:18:30 +0000 (16:18 +0100)
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>
lib/psa/delegated_attestation.c
plat/arm/board/fvp/fvp_plat_attest_token.c
plat/arm/board/fvp/fvp_realm_attest_key.c
plat/arm/board/fvp/platform.mk

index 399a3f102ca3e399cb3a7252185f1732f55ffbce..a813e84a6536c455e216d319b71a2fcbc8eaa51f 100644 (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
index dda215640fdecb6cb4a016827a6e5a54b268af50..5af240542e029fda0f0c8458ca13b08e929aa6f9 100644 (file)
 /*
- * 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;
-
-       if (*len < sizeof(platform_token)) {
-               return -EINVAL;
-       }
+       psa_status_t ret;
 
-       (void)memcpy((void *)buf, platform_token, sizeof(platform_token));
-       *len = sizeof(platform_token);
+       ret = rss_delegated_attest_get_token((const uint8_t *)hash, hash_size,
+                                            (uint8_t *)buf, *len, len);
 
-       return 0;
+       return ret;
 }
index 1af1f0d3fd1fe60ee9f7053203b6761e9ffc26ce..26354f42aa23cbff9ba84708fb7e0107a14286fd 100644 (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)
 {
-       assert(type == ATTEST_KEY_CURVE_ECC_SECP384R1);
+       psa_status_t ret;
 
-       if (*len < sizeof(sample_attest_priv_key)) {
-               return -EINVAL;
-       }
+       assert(type == ATTEST_KEY_CURVE_ECC_SECP384R1);
 
-       (void)memcpy((void *)buf, sample_attest_priv_key,
-                    sizeof(sample_attest_priv_key));
-       *len = sizeof(sample_attest_priv_key);
+       ret = rss_delegated_attest_get_delegated_key(0U, 0U, (uint8_t *)buf,
+                                                    *len, len, 0U);
 
-       return 0;
+       return ret;
 }
index 6acc879e14e9b8cb80c550c42331ecd17ed4427d..2d2886b2a63902a957f105fab772ea9eb15e4445 100644 (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