Encryption

Encryption

Overview

AirPlay 2 encryption is associated to any of the SupportsCoreUtilsPairingAndEncryption bits in the receiver features.

The minimal set of features described in Multi-room support allow to disable the outer encryption layer of the protocol. The audio frames are still encrypted.

Disabled encryption

Declaring only SupportsUnifiedPairSetupAndMFi without using any of the CoreUtilsPairingAndEncryption bits, we jump straight to the AirPlay 2 streaming protocol. Messages at this point are exchanged in clear text.

if !CoreUtilsPairingAndEncryption && (avoid_auth/is_apple_internal_build)
   log("*** authentication/encryption disabled ***")

If CoreUtilsPairingAndEncryption bits (38, 46, 43, 48) are disabled and the AirPlay sender is an Apple internal build, or avoid_auth, both authentication and encryption are disabled.

The avoid_auth appears to be an internal condition and needs further reversing.