Add attestation report creation

Adds components to create a cbor encoded attestion report using
claims gathered from registered claim sources.  Tests added
that check the decoded cbor is as expected.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I8faddd6c5bea120745f85d70846725c5c51665b6
diff --git a/components/service/attestation/claims/claim.h b/components/service/attestation/claims/claim.h
index d36825d..1808f45 100644
--- a/components/service/attestation/claims/claim.h
+++ b/components/service/attestation/claims/claim.h
@@ -114,13 +114,47 @@
 }
 
 /**
+ * Claim category.  Values may be combined in a bitmap
+ * to allow a set of categries to be expressed.
+ */
+enum claim_category
+{
+    CLAIM_CATEGORY_NONE = 0,
+
+    /**
+     * A catagory of claim about the device instance.
+     */
+    CLAIM_CATEGORY_DEVICE = (1U << 0),
+
+    /**
+     * A catagory of claim based on a measurement during boot.
+     */
+    CLAIM_CATEGORY_BOOT_MEASUREMENT = (1U << 1),
+
+    /**
+     * A catagory of claim about an associated verifcation service.
+     */
+    CLAIM_CATEGORY_VERIFICATION_SERVICE = (1U << 2)
+};
+
+/**
  * Claim subject identifier.  Used for identifying what the claim relates
  * to.
  */
 enum claim_subject_id
 {
     CLAIM_SUBJECT_ID_NONE = 0,
-    CLAIM_SUBJECT_ID_SW_COMPONENT,
+    CLAIM_SUBJECT_ID_AUTH_CHALLENGE,
+    CLAIM_SUBJECT_ID_INSTANCE_ID,
+    CLAIM_SUBJECT_ID_VERIFICATION_SERVICE_INDICATOR,
+    CLAIM_SUBJECT_ID_PROFILE_DEFINITION,
+    CLAIM_SUBJECT_ID_IMPLEMENTATION_ID,
+    CLAIM_SUBJECT_ID_CLIENT_ID,
+    CLAIM_SUBJECT_ID_LIFECYCLE_STATE,
+    CLAIM_SUBJECT_ID_HW_VERSION,
+    CLAIM_SUBJECT_ID_BOOT_SEED,
+    CLAIM_SUBJECT_ID_NO_SW_MEASUREMENTS,
+    CLAIM_SUBJECT_ID_SW_COMPONENT
 };
 
 /**
@@ -143,6 +177,7 @@
  */
 struct claim
 {
+    enum claim_category category;
     enum claim_subject_id subject_id;
     enum claim_variant_id variant_id;