summaryrefslogtreecommitdiffstats
path: root/src/detection/tpm/tpm_apple.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/detection/tpm/tpm_apple.c')
-rw-r--r--src/detection/tpm/tpm_apple.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/detection/tpm/tpm_apple.c b/src/detection/tpm/tpm_apple.c
new file mode 100644
index 0000000..250dd01
--- /dev/null
+++ b/src/detection/tpm/tpm_apple.c
@@ -0,0 +1,30 @@
+#include "tpm.h"
+
+#ifndef __aarch64__
+ #include "common/apple/cf_helpers.h"
+ #include <IOKit/IOKitLib.h>
+#endif
+
+const char* ffDetectTPM(FFTPMResult* result) {
+#ifdef __aarch64__
+
+ ffStrbufSetStatic(&result->version, "2.0");
+ ffStrbufSetStatic(&result->description, "Apple Silicon Security");
+ return NULL;
+
+#else
+
+ FF_IOOBJECT_AUTO_RELEASE io_service_t t2Service = IOServiceGetMatchingService(
+ MACH_PORT_NULL,
+ IOServiceMatching("AppleT2"));
+
+ if (t2Service) {
+ ffStrbufSetStatic(&result->version, "2.0");
+ ffStrbufSetStatic(&result->description, "Apple T2 Security Chip");
+ return NULL;
+ }
+
+#endif
+
+ return "No Apple Security hardware detected";
+}