summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorNigel Croxon <nigel.croxon@hpe.com>2016-03-17 09:31:29 -0400
committerNigel Croxon <nigel.croxon@hpe.com>2016-03-17 09:31:29 -0400
commit8c29617e0bfe1675bdaf49d6708672f61faed29a (patch)
treeb0f3cbbdec0506fb659a0ede4c084fc993a31b33 /inc
parent883702e8133ce1e50fa199aa80179b49b35c998b (diff)
downloadgnu-efi-8c29617e0bfe1675bdaf49d6708672f61faed29a.tar.gz
Added definitions for EFI HASH PROTOCOL
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
Diffstat (limited to 'inc')
-rw-r--r--inc/efilib.h1
-rw-r--r--inc/efiprot.h70
2 files changed, 71 insertions, 0 deletions
diff --git a/inc/efilib.h b/inc/efilib.h
index c3cb921..85edd90 100644
--- a/inc/efilib.h
+++ b/inc/efilib.h
@@ -63,6 +63,7 @@ extern EFI_GUID PciIoProtocol;
extern EFI_GUID DriverBindingProtocol;
extern EFI_GUID ComponentNameProtocol;
extern EFI_GUID ComponentName2Protocol;
+extern EFI_GUID HashProtocol;
extern EFI_GUID EfiGlobalVariable;
extern EFI_GUID GenericFileInfo;
diff --git a/inc/efiprot.h b/inc/efiprot.h
index 9224366..007294d 100644
--- a/inc/efiprot.h
+++ b/inc/efiprot.h
@@ -546,6 +546,76 @@ BOOLEAN
OUT CHAR8 *Fat
);
+//
+// Hash Protocol
+//
+#define HASH_PROTOCOL \
+ { 0xC5184932, 0xDBA5, 0x46DB, { 0xA5, 0xBA, 0xCC, 0x0B, 0xDA, 0x9C, 0x14, 0x35 } }
+
+#define EFI_HASH_ALGORITHM_SHA1 \
+ { 0x2AE9D80F, 0x3FB2, 0x4095, { 0xB7, 0xB1, 0xE9, 0x31, 0x57, 0xB9, 0x46, 0xB6 } } // Deprecated
+
+#define EFI_HASH_ALGORITHM_SHA224 \
+ { 0x8DF01A06, 0x9BD5, 0x4BF7, { 0xB0, 0x21, 0xDB, 0x4F, 0xD9, 0xCC, 0xF4, 0x5B } } // Deprecated
+
+#define EFI_HASH_ALGORITHM_SHA256 \
+ { 0x51AA59DE, 0xFDF2, 0x4EA3, { 0xBC, 0x63, 0x87, 0x5F, 0xB7, 0x84, 0x2E, 0xE9 } } // Deprecated
+
+#define EFI_HASH_ALGORITHM_SHA384 \
+ { 0xEFA96432, 0xDE33, 0x4DD2, { 0xAE, 0xE6, 0x32, 0x8C, 0x33, 0xDF, 0x77, 0x7A } } // Deprecated
+
+#define EFI_HASH_ALGORITHM_SHA512 \
+ { 0xCAA4381E, 0x750C, 0x4770, { 0xB8, 0x70, 0x7A, 0x23, 0xB4, 0xE4, 0x21, 0x30 } } // Deprecated
+
+#define EFI_HASH_ALGORITHM_MD5 \
+ { 0x0AF7C79C, 0x65B5, 0x4319, { 0xB0, 0xAE, 0x44, 0xEC, 0x48, 0x4E, 0x4A, 0xD7 } } // Deprecated
+
+#define EFI_HASH_ALGORITHM_SHA1_NOPAD \
+ { 0x24C5DC2F, 0x53E2, 0x40CA, { 0x9E, 0xD6, 0xA5, 0xD9, 0xA4, 0x9F, 0x46, 0x3B } }
+
+#define EFI_HASH_ALGORITHM_SHA256_NOPAD \
+ { 0x8628752A, 0x6CB7, 0x4814, { 0x96, 0xFC, 0x24, 0xA8, 0x15, 0xAC, 0x22, 0x26 } }
+
+
+INTERFACE_DECL(_EFI_HASH);
+
+typedef UINT8 EFI_MD5_HASH[16];
+typedef UINT8 EFI_SHA1_HASH[20];
+typedef UINT8 EFI_SHA224_HASH[28];
+typedef UINT8 EFI_SHA256_HASH[32];
+typedef UINT8 EFI_SHA384_HASH[48];
+typedef UINT8 EFI_SHA512_HASH[64];
+typedef union _EFI_HASH_OUTPUT {
+ EFI_MD5_HASH *Md5Hash;
+ EFI_SHA1_HASH *Sha1Hash;
+ EFI_SHA224_HASH *Sha224Hash;
+ EFI_SHA256_HASH *Sha256Hash;
+ EFI_SHA384_HASH *Sha384Hash;
+ EFI_SHA512_HASH *Sha512Hash;
+} EFI_HASH_OUTPUT;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HASH_GET_HASH_SIZE) (
+ IN CONST struct _EFI_HASH *This,
+ IN CONST EFI_GUID *HashAlgorithm,
+ OUT UINTN *HashSize);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HASH_HASH) (
+ IN CONST struct _EFI_HASH *This,
+ IN CONST EFI_GUID *HashAlgorithm,
+ IN BOOLEAN Extend,
+ IN CONST UINT8 *Message,
+ IN UINT64 MessageSize,
+ IN OUT EFI_HASH_OUTPUT *Hash);
+
+typedef struct _EFI_HASH {
+ EFI_HASH_GET_HASH_SIZE GetHashSize;
+ EFI_HASH_HASH Hash;
+} EFI_HASH;
+
typedef struct _EFI_UNICODE_COLLATION_INTERFACE {