summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gpxe/crypto.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/include/gpxe/crypto.h b/src/include/gpxe/crypto.h
new file mode 100644
index 000000000..e2a728fda
--- /dev/null
+++ b/src/include/gpxe/crypto.h
@@ -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 */