Archived
1
0
Fork 0

Adding sha1_io.c/h: A wrapper interface for performing posix file I/O

with SHA1 as a CRC mechanism.

When writing file formats using SHA1 as CRC, its is handy to
have SHA1_Update() to be applied to every write(). so that an
SHA1 hash can be calculated for that data and used as an CRC check.

Therefor this interface is created to wrap the code used to do this.
This commit is contained in:
Henrik Hautakoski 2012-02-17 22:37:24 +01:00
parent 37ba894802
commit 0b2b159b2d
2 changed files with 67 additions and 0 deletions

35
sha1_io.c Normal file
View file

@ -0,0 +1,35 @@
/* sha1_io.c - sha1 file I/O wrappers.
*
* Copyright (C) 2011-2012 Henrik Hautakoski <henrik@fiktivkod.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#include <unistd.h>
#include <arpa/inet.h>
#include "sha1_io.h"
int sha1_write(SHA_CTX *ctx, int fd, void *buf, size_t size) {
SHA1_Update(ctx, buf, size);
return write(fd, buf, size);
}
int sha1_write_int(SHA_CTX *ctx, int fd, int val) {
val = htonl(val);
return sha1_write(ctx, fd, &val, sizeof val);
}