Generalisation of a message digest algorithm
authorMichael Brown <mcb30@etherboot.org>
Mon, 11 Sep 2006 16:29:45 +0000 (16:29 +0000)
committerMichael Brown <mcb30@etherboot.org>
Mon, 11 Sep 2006 16:29:45 +0000 (16:29 +0000)
src/include/gpxe/crypto.h [new file with mode: 0644]

diff --git a/src/include/gpxe/crypto.h b/src/include/gpxe/crypto.h
new file mode 100644 (file)
index 0000000..e2a728f
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef _GPXE_CRYPTO_H
+#define _GPXE_CRYPTO_H
+
+/** @file
+ *
+ * Cryptographic API
+ *
+ */
+
+#include <stdint.h>
+
+/**
+ * A message-digest algorithm
+ *
+ */
+struct digest_algorithm {
+       /** Size of a context for this algorithm */
+       size_t context_len;
+       /** Size of a message digest for this algorithm */
+       size_t digest_len;
+       /**
+        * Initialise digest algorithm
+        *
+        * @v context           Context for digest operations
+        */
+       void ( * init ) ( void *context );
+       /**
+        * Calculate digest over data buffer
+        *
+        * @v context           Context for digest operations
+        * @v data              Data buffer
+        * @v len               Length of data buffer
+        */
+       void ( * update ) ( void *context, const void *data, size_t len );
+       /**
+        * Finish calculating digest
+        *
+        * @v context           Context for digest operations
+        * @v digest            Buffer for message digest
+        */
+       void ( * finish ) ( void *context, void *digest );
+};
+
+#endif /* _GPXE_CRYPTO_H */