As shown in Figure 1, the non-secure software (APU) communicates with the cryptographic application using a well-defined, shared memory messaging interface. All messages sent to the cryptographic application are authenticated.
Messages are written to the non-secure DRAM and the cryptographic application is notified of an outstanding message. Upon notification, the software copies the message into the secure DRAM, authenticates, and processes the message. The copy to the secure DRAM is necessary to verify the message is not altered during or after the authentication phase by an untrusted entity.