If we want it to not have the property if it's unavailable then we will need separate interfaces. It seems somewhat confusing to me to have a CipherContext but then an AEADEncryptionContext/AEADDecryptionContext though?