From 2b9edf6fd1219d2d354381ade73b70f6ed800573 Mon Sep 17 00:00:00 2001 From: Philipp Schafft Date: Wed, 21 Oct 2020 18:41:33 +0000 Subject: [PATCH] Feature: Added support to copy a digest --- src/digest.c | 15 +++++++++++++++ src/digest.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/digest.c b/src/digest.c index 2c0e8918..99834424 100644 --- a/src/digest.c +++ b/src/digest.c @@ -381,6 +381,21 @@ digest_t * digest_new(digest_algo_t algo) return digest; } +digest_t * digest_copy(digest_t *digest) +{ + digest_t *n; + + if (!digest) + return NULL; + + n = refobject_new__new(digest_t, NULL, NULL, NULL); + n->algo = digest->algo; + n->done = digest->done; + n->state = digest->state; + + return n; +} + ssize_t digest_write(digest_t *digest, const void *data, size_t len) { if (!digest || !data) diff --git a/src/digest.h b/src/digest.h index dc4db598..e0cba4ef 100644 --- a/src/digest.h +++ b/src/digest.h @@ -25,6 +25,7 @@ const char *digest_algo_id2str(digest_algo_t algo); ssize_t digest_algo_length_bytes(digest_algo_t algo); digest_t * digest_new(digest_algo_t algo); +digest_t * digest_copy(digest_t *digest); ssize_t digest_write(digest_t *digest, const void *data, size_t len); ssize_t digest_read(digest_t *digest, void *buf, size_t len);