summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavutil/sha1.c7
-rw-r--r--libavutil/sha1.h20
2 files changed, 24 insertions, 3 deletions
diff --git a/libavutil/sha1.c b/libavutil/sha1.c
index f3e45deb91..fbff52a17b 100644
--- a/libavutil/sha1.c
+++ b/libavutil/sha1.c
@@ -23,10 +23,11 @@
#include "bswap.h"
#include "sha1.h"
+/** hash context */
typedef struct AVSHA1 {
- uint64_t count;
- uint8_t buffer[64];
- uint32_t state[5];
+ uint64_t count; ///< number of bytes in buffer
+ uint8_t buffer[64]; ///< 512-bit buffer of input values used in hash updating
+ uint32_t state[5]; ///< current hash value
} AVSHA1;
const int av_sha1_size = sizeof(AVSHA1);
diff --git a/libavutil/sha1.h b/libavutil/sha1.h
index 0f14ca8960..b9a43cdd39 100644
--- a/libavutil/sha1.h
+++ b/libavutil/sha1.h
@@ -27,8 +27,28 @@ extern const int av_sha1_size;
struct AVSHA1;
+/**
+ * Initializes SHA-1 hashing.
+ *
+ * @param context pointer to the function context (of size av_sha_size)
+ */
void av_sha1_init(struct AVSHA1* context);
+
+/**
+ * Updates hash value.
+ *
+ * @param context hash function context
+ * @param data input data to update hash with
+ * @param len input data length
+ */
void av_sha1_update(struct AVSHA1* context, const uint8_t* data, unsigned int len);
+
+/**
+ * Finishes hashing and output digest value.
+ *
+ * @param context hash function context
+ * @param digest buffer where output digest value is stored
+ */
void av_sha1_final(struct AVSHA1* context, uint8_t digest[20]);
#endif /* AVUTIL_SHA1_H */