Implement uefi variable authentication

Variable authentication is a way to ensure the integrity and
authenticity of certain UEFI variables. To modify or delete
such variable the request has to be verified by other variables
that store the keys. This change implements the aforementioned
functionality.
efi_image_authentication.h was copied from
https://github.com/tianocore/edk2 repository:
sha: c96b4da2a079eb837ab3af9aeb86a97078b3bde6
Original file: MdePkg/Include/Guid/ImageAuthentication.h
Some lines were also added to this file from: MdePkg/Include/Protocol/Hash.h
For details please refer to the comments in the source.

Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Change-Id: I05b8406834ebb77ab21c5fef61d0327625ec0e72
diff --git a/external/MbedTLS/MbedTLS.cmake b/external/MbedTLS/MbedTLS.cmake
index 74513db..4be70e6 100644
--- a/external/MbedTLS/MbedTLS.cmake
+++ b/external/MbedTLS/MbedTLS.cmake
@@ -30,7 +30,7 @@
 	PATCH_COMMAND
 		git stash
 		COMMAND git branch -f bf-am
-		COMMAND git am ${CMAKE_CURRENT_LIST_DIR}/0001-Add-capability-to-build-libmbedcrypto-only.patch
+		COMMAND git am ${CMAKE_CURRENT_LIST_DIR}/0001-Add-capability-to-selectively-build-libraries.patch
 		COMMAND git reset bf-am
 		COMMAND ${Python3_EXECUTABLE} scripts/config.py crypto
 )