File: [local] / OpenXM / src / ox_ntl / crypt / sha1 / sha1test.c (download)
Revision 1.2, Sun Jun 20 10:59:01 2004 UTC (20 years, 3 months ago) by iwane
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9 Changes since 1.1: +62 -16
lines
fixed a bug in base filesize == 0
convert "unsigned int" to "uint32_t"
|
/* $OpenXM: OpenXM/src/ox_ntl/crypt/sha1/sha1test.c,v 1.2 2004/06/20 10:59:01 iwane Exp $ */
/* openssl sha1 ${FILE} */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include "sha1.h"
void
Usage(char *cmd)
{
printf("Usage: %s [-f][-s] file\n", cmd);
exit (-1);
}
int
main(int argc, char *argv[])
{
FILE *fp;
char buf[1000000];
int ret;
int i;
unsigned char sha[100];
int flag = 0;
enum {
SHA = 1,
F_SHA = 2
};
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-f") == 0) {
flag |= F_SHA;
} else if (strcmp(argv[i], "-s") == 0) {
flag |= SHA;
} else {
break;
}
}
if (flag == 0)
flag |= SHA;
argc -= i;
if (argc != 1)
Usage(argv[0]);
argv += i - 1;
if (flag & SHA) {
fp = fopen(argv[1], "r");
if (fp == NULL) {
fprintf(stderr, "file not found: %s\n", argv[1]);
exit (-1);
}
ret = fread(buf, 1, sizeof(buf), fp);
sha1(sha, (unsigned char *)buf, ret);
fclose(fp);
printf("SHA1(%s)= ", argv[1]);
for (i = 0; i < 20; i++) {
printf("%02x", sha[i] & 0xff);
}
printf("\n");
}
if (flag & F_SHA) {
int fd;
fd = open(argv[1], O_RDONLY, NULL);
if (fd == -1) {
fprintf(stderr, "file not found: %s\n", argv[1]);
exit (-1);
}
fsha1(sha, fd);
close(fd);
printf("SHA1(%s)= ", argv[1]);
for (i = 0; i < 20; i++) {
printf("%02x", sha[i] & 0xff);
}
printf("\n");
}
return (0);
}