Мне любопытно узнать, каковы возможности аппаратного обеспечения и действительно ли Apple мешает разработчикам приложений использовать все функции аппаратного чипа.
По крайней мере, некоторыеаппаратного ускорения AES и SHA происходит от возможностей процессора ARMv8-а и выше.ARMv8-a - это ARM-64, и вы можете увидеть его с помощью:
$ clang++ -arch arm64 -dM -E - < /dev/null | sort | egrep -i '(arm|aarch)'
#define __AARCH64EL__ 1
#define __AARCH64_SIMD__ 1
#define __ARM64_ARCH_8__ 1
#define __ARM_64BIT_STATE 1
#define __ARM_ACLE 200
#define __ARM_ALIGN_MAX_STACK_PWR 4
#define __ARM_ARCH 8
#define __ARM_ARCH_ISA_A64 1
#define __ARM_ARCH_PROFILE 'A'
#define __ARM_FEATURE_CLZ 1
#define __ARM_FEATURE_CRYPTO 1
#define __ARM_FEATURE_DIV 1
#define __ARM_FEATURE_FMA 1
#define __ARM_FEATURE_UNALIGNED 1
#define __ARM_FP 0xe
#define __ARM_FP16_FORMAT_IEEE 1
#define __ARM_FP_FENV_ROUNDING 1
#define __ARM_NEON 1
#define __ARM_NEON_FP 7
#define __ARM_NEON__ 1
#define __ARM_PCS_AAPCS64 1
#define __ARM_SIZEOF_MINIMAL_ENUM 4
#define __ARM_SIZEOF_WCHAR_T 4
#define __aarch64__ 1
#define __arm64 1
#define __arm64__ 1
При действии __ARM_FEATURE_CRYPTO
вы получите доступ к инструкциям ассемблера рукава и внутренним элементам рукоятки, обычно встречающимся в <arm_neon.h>
и <arm_acle.h>
.
Я не знаю, является ли это той же схемой AES на пути передачи данных DMA от хранилища к памяти.Я полагаю, что этот AES является частью API защиты данных, анонсированного в iOS 4.3.
Возможно, вы найдете ответ у Жан-Батиста Бедруна и Жана Сигвальда Глубокая защита данных iPhone ;и оценка безопасности Apple iOS 4 * Дино Зави 1019 *.