- struct cs_blob *csb_next;
- cpu_type_t csb_cpu_type;
- unsigned int csb_flags;
- off_t csb_base_offset; /* Offset of Mach-O binary in fat binary */
- off_t csb_start_offset; /* Blob coverage area start, from csb_base_offset */
- off_t csb_end_offset; /* Blob coverage area end, from csb_base_offset */
- ipc_port_t csb_mem_handle;
- vm_size_t csb_mem_size;
- vm_offset_t csb_mem_offset;
- vm_address_t csb_mem_kaddr;
- unsigned char csb_cdhash[CS_CDHASH_LEN];
- struct cs_hash *csb_hashtype;
- const CS_CodeDirectory *csb_cd;
- const char *csb_teamid;
- unsigned int csb_platform_binary:1;
- unsigned int csb_platform_path:1;
+ struct cs_blob * XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_next") csb_next;
+ cpu_type_t csb_cpu_type;
+ cpu_subtype_t csb_cpu_subtype;
+ unsigned int csb_flags;
+ off_t csb_base_offset; /* Offset of Mach-O binary in fat binary */
+ off_t csb_start_offset; /* Blob coverage area start, from csb_base_offset */
+ off_t csb_end_offset; /* Blob coverage area end, from csb_base_offset */
+ vm_size_t csb_mem_size;
+ vm_offset_t csb_mem_offset;
+ vm_address_t csb_mem_kaddr;
+ unsigned char csb_cdhash[CS_CDHASH_LEN];
+ ptrauth_generic_signature_t csb_cdhash_signature;
+ const struct cs_hash *csb_hashtype;
+#if CONFIG_SUPPLEMENTAL_SIGNATURES
+ unsigned char csb_linkage[CS_CDHASH_LEN];
+ const struct cs_hash *csb_linkage_hashtype;
+#endif
+ int csb_hash_pageshift;
+ int csb_hash_firstlevel_pageshift; /* First hash this many bytes, then hash the hashes together */
+ const CS_CodeDirectory * XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_cd") csb_cd;
+ const char * XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_teamid") csb_teamid;
+#if CONFIG_SUPPLEMENTAL_SIGNATURES
+ char * XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_supplement_teamid") csb_supplement_teamid;
+#endif
+ const CS_GenericBlob * XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_entitlements_blob") csb_entitlements_blob; /* raw blob, subrange of csb_mem_kaddr */
+ void * XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_entitlements") csb_entitlements; /* The entitlements as an OSDictionary */
+ unsigned int csb_signer_type;
+ unsigned int csb_reconstituted; /* signature has potentially been modified after validation */
+ /* The following two will be replaced by the csb_signer_type. */
+ unsigned int csb_platform_binary:1;
+ unsigned int csb_platform_path:1;
+