aboutsummaryrefslogtreecommitdiff
path: root/lib/tar/src/checksum.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-02-04 16:30:48 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-02-04 16:43:40 +0100
commit89b367941e12b1163afa517eeddca1b5ecd2a054 (patch)
tree932f6566a0194d0dfe978b378a053e5725ef9ca7 /lib/tar/src/checksum.c
parent72c8155d9fc0eaeac72c053f46ebb7b231d4596a (diff)
libtar: some minor cleanups
- Use is_memory_zero from libutil - Move checksum update function to tar writer code - Move checksum verify function to tar reader code - Only export the function to compute the checksum Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/tar/src/checksum.c')
-rw-r--r--lib/tar/src/checksum.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/lib/tar/src/checksum.c b/lib/tar/src/checksum.c
index 6541373..9dc6c0f 100644
--- a/lib/tar/src/checksum.c
+++ b/lib/tar/src/checksum.c
@@ -4,13 +4,9 @@
*
* Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
*/
-#include "config.h"
-
#include "tar/format.h"
-#include <stdio.h>
-
-static unsigned int get_checksum(const tar_header_t *hdr)
+unsigned int tar_compute_checksum(const tar_header_t *hdr)
{
const unsigned char *header_start = (const unsigned char *)hdr;
const unsigned char *chksum_start = (const unsigned char *)hdr->chksum;
@@ -27,22 +23,3 @@ static unsigned int get_checksum(const tar_header_t *hdr)
chksum += *p;
return chksum;
}
-
-void update_checksum(tar_header_t *hdr)
-{
- unsigned int chksum = get_checksum(hdr);
-
- sprintf(hdr->chksum, "%06o", chksum);
- hdr->chksum[6] = '\0';
- hdr->chksum[7] = ' ';
-}
-
-bool is_checksum_valid(const tar_header_t *hdr)
-{
- unsigned int calculated_chksum = get_checksum(hdr);
- sqfs_u64 read_chksum;
-
- if (read_octal(hdr->chksum, sizeof(hdr->chksum), &read_chksum))
- return 0;
- return read_chksum == calculated_chksum;
-}