xref: /optee_os/core/pta/veraison_attestation/cbor.h (revision 900bf7c6b0b2a2dc120a1286c5efa414974078f9)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (C) 2024, Institute of Information Security (IISEC)
4  */
5 
6 #ifndef PTA_VERAISON_ATTESTATION_CBOR_H
7 #define PTA_VERAISON_ATTESTATION_CBOR_H
8 
9 #include <qcbor.h>
10 #include <stddef.h>
11 #include <stdint.h>
12 
13 /* PSA claim keys */
14 /* https://datatracker.ietf.org/doc/draft-tschofenig-rats-psa-token/13/ */
15 #define PSA_NONCE 10
16 #define PSA_INSTANCE_ID 256
17 #define PSA_PROFILE_DEFINITION 265
18 #define PSA_ARM_RANGE_BASE (2393)
19 #define PSA_CLIENT_ID (PSA_ARM_RANGE_BASE + 1)
20 #define PSA_SECURITY_LIFECYCLE (PSA_ARM_RANGE_BASE + 2)
21 #define PSA_IMPLEMENTATION_ID (PSA_ARM_RANGE_BASE + 3)
22 #define PSA_BOOT_SEED (PSA_ARM_RANGE_BASE + 4)
23 #define PSA_CERTIFICATION_REFERENCE (PSA_ARM_RANGE_BASE + 5)
24 #define PSA_SW_COMPONENTS (PSA_ARM_RANGE_BASE + 6)
25 #define PSA_VERIFICATION_SERVICE (PSA_ARM_RANGE_BASE + 7)
26 
27 #define PSA_SW_COMPONENT_MEASUREMENT_TYPE (1)
28 #define PSA_SW_COMPONENT_MEASUREMENT_VALUE (2)
29 #define PSA_SW_COMPONENT_VERSION (4)
30 #define PSA_SW_COMPONENT_SIGNER_ID (5)
31 #define PSA_SW_COMPONENT_MEASUREMENT_DESC (6)
32 
33 #define COSE_HEADER_PARAM_ALG 1
34 #define COSE_ALGORITHM_ES256 -7
35 #define COSE_SIG_CONTEXT_STRING_SIGNATURE1 "Signature1"
36 
37 UsefulBufC generate_cbor_evidence(const char *eat_profile,
38 				  int psa_client_id,
39 				  int psa_security_lifecycle,
40 				  const uint8_t *psa_implementation_id,
41 				  size_t psa_implementation_id_len,
42 				  const char *measurement_type,
43 				  const uint8_t *signer_id,
44 				  size_t signer_id_len,
45 				  const uint8_t *psa_instance_id,
46 				  size_t psa_instance_id_len,
47 				  const uint8_t *psa_nonce,
48 				  size_t psa_nonce_len,
49 				  const uint8_t *measurement_value,
50 				  size_t measurement_value_len);
51 
52 UsefulBufC generate_cose_evidence(UsefulBufC ubc_cbor_evidence);
53 
54 #endif /* PTA_VERAISON_ATTESTATION_CBOR_H */
55