added sha2 functions
This commit is contained in:
@ -7,7 +7,8 @@ AM_CPPFLAGS = \
|
||||
|
||||
|
||||
bin_PROGRAMS = \
|
||||
bf01
|
||||
bf01 \
|
||||
sha01
|
||||
|
||||
AM_LDFLAGS = -L../../lib/cry -L../../lib/si -L../../lib/cmn
|
||||
LDADD = -lqsecry -lqsesi -lqsecmn
|
||||
@ -19,3 +20,4 @@ endif
|
||||
endif
|
||||
|
||||
bf01_SOURCES = bf01.c
|
||||
sha01_SOURCES = sha01.c
|
||||
|
@ -88,7 +88,7 @@ PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
bin_PROGRAMS = bf01$(EXEEXT)
|
||||
bin_PROGRAMS = bf01$(EXEEXT) sha01$(EXEEXT)
|
||||
@WCHAR_TRUE@@WIN32_TRUE@am__append_1 = $(UNICOWS_LIBS)
|
||||
subdir = samples/cry
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@ -118,6 +118,10 @@ AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
am__v_lt_0 = --silent
|
||||
am__v_lt_1 =
|
||||
am_sha01_OBJECTS = sha01.$(OBJEXT)
|
||||
sha01_OBJECTS = $(am_sha01_OBJECTS)
|
||||
sha01_LDADD = $(LDADD)
|
||||
sha01_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
@ -133,7 +137,7 @@ am__v_at_1 =
|
||||
DEFAULT_INCLUDES =
|
||||
depcomp = $(SHELL) $(top_srcdir)/ac/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/bf01.Po
|
||||
am__depfiles_remade = ./$(DEPDIR)/bf01.Po ./$(DEPDIR)/sha01.Po
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
@ -153,8 +157,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
am__v_CCLD_1 =
|
||||
SOURCES = $(bf01_SOURCES)
|
||||
DIST_SOURCES = $(bf01_SOURCES)
|
||||
SOURCES = $(bf01_SOURCES) $(sha01_SOURCES)
|
||||
DIST_SOURCES = $(bf01_SOURCES) $(sha01_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
@ -355,6 +359,7 @@ AM_CPPFLAGS = \
|
||||
AM_LDFLAGS = -L../../lib/cry -L../../lib/si -L../../lib/cmn
|
||||
LDADD = -lqsecry -lqsesi -lqsecmn $(am__append_1)
|
||||
bf01_SOURCES = bf01.c
|
||||
sha01_SOURCES = sha01.c
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
@ -442,6 +447,10 @@ bf01$(EXEEXT): $(bf01_OBJECTS) $(bf01_DEPENDENCIES) $(EXTRA_bf01_DEPENDENCIES)
|
||||
@rm -f bf01$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(bf01_OBJECTS) $(bf01_LDADD) $(LIBS)
|
||||
|
||||
sha01$(EXEEXT): $(sha01_OBJECTS) $(sha01_DEPENDENCIES) $(EXTRA_sha01_DEPENDENCIES)
|
||||
@rm -f sha01$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(sha01_OBJECTS) $(sha01_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
@ -449,6 +458,7 @@ distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bf01.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha01.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@ -611,6 +621,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/bf01.Po
|
||||
-rm -f ./$(DEPDIR)/sha01.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -657,6 +668,7 @@ installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/bf01.Po
|
||||
-rm -f ./$(DEPDIR)/sha01.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
191
qse/samples/cry/sha01.c
Normal file
191
qse/samples/cry/sha01.c
Normal file
@ -0,0 +1,191 @@
|
||||
#include <qse/cry/sha2.h>
|
||||
#include <qse/cry/sha1.h>
|
||||
#include <qse/cry/md5.h>
|
||||
#include <qse/cmn/path.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <getopt.h>
|
||||
|
||||
#define READ_BUF_SIZE (32768)
|
||||
|
||||
static void sha512sum (int fd, unsigned char digest[QSE_SHA512_DIGEST_LEN])
|
||||
{
|
||||
qse_sha512_t md;
|
||||
unsigned char buf[READ_BUF_SIZE];
|
||||
ssize_t n;
|
||||
|
||||
qse_sha512_initialize (&md);
|
||||
while (1)
|
||||
{
|
||||
n = read(fd, buf, sizeof(buf));
|
||||
if (n <= 0) break;
|
||||
qse_sha512_update (&md, buf, n);
|
||||
}
|
||||
qse_sha512_digest (&md, digest, QSE_SHA512_DIGEST_LEN);
|
||||
}
|
||||
|
||||
static void sha384sum (int fd, unsigned char digest[QSE_SHA384_DIGEST_LEN])
|
||||
{
|
||||
qse_sha384_t md;
|
||||
unsigned char buf[READ_BUF_SIZE];
|
||||
ssize_t n;
|
||||
|
||||
qse_sha384_initialize (&md);
|
||||
while (1)
|
||||
{
|
||||
n = read(fd, buf, sizeof(buf));
|
||||
if (n <= 0) break;
|
||||
qse_sha384_update (&md, buf, n);
|
||||
}
|
||||
qse_sha384_digest (&md, digest, QSE_SHA384_DIGEST_LEN);
|
||||
}
|
||||
|
||||
static void sha256sum (int fd, unsigned char digest[QSE_SHA256_DIGEST_LEN])
|
||||
{
|
||||
qse_sha256_t md;
|
||||
unsigned char buf[READ_BUF_SIZE];
|
||||
ssize_t n;
|
||||
|
||||
qse_sha256_initialize (&md);
|
||||
while (1)
|
||||
{
|
||||
n = read(fd, buf, sizeof(buf));
|
||||
if (n <= 0) break;
|
||||
qse_sha256_update (&md, buf, n);
|
||||
}
|
||||
qse_sha256_digest (&md, digest, QSE_SHA256_DIGEST_LEN);
|
||||
}
|
||||
|
||||
static void sha1sum (int fd, unsigned char digest[QSE_SHA1_DIGEST_LEN])
|
||||
{
|
||||
qse_sha1_t md;
|
||||
unsigned char buf[READ_BUF_SIZE];
|
||||
ssize_t n;
|
||||
|
||||
qse_sha1_initialize (&md);
|
||||
while (1)
|
||||
{
|
||||
n = read(fd, buf, sizeof(buf));
|
||||
if (n <= 0) break;
|
||||
qse_sha1_update (&md, buf, n);
|
||||
}
|
||||
qse_sha1_digest (&md, digest, QSE_SHA1_DIGEST_LEN);
|
||||
}
|
||||
|
||||
static void md5sum (int fd, unsigned char digest[QSE_MD5_DIGEST_LEN])
|
||||
{
|
||||
qse_md5_t md;
|
||||
unsigned char buf[READ_BUF_SIZE];
|
||||
ssize_t n;
|
||||
|
||||
qse_md5_initialize (&md);
|
||||
while (1)
|
||||
{
|
||||
n = read(fd, buf, sizeof(buf));
|
||||
if (n <= 0) break;
|
||||
qse_md5_update (&md, buf, n);
|
||||
}
|
||||
qse_md5_digest (&md, digest, QSE_MD5_DIGEST_LEN);
|
||||
}
|
||||
|
||||
|
||||
static void print_usage (const char* argv0)
|
||||
{
|
||||
fprintf (stderr, "Usage: %s [options]\n", argv0);
|
||||
fprintf (stderr, "where options are:\n");
|
||||
fprintf (stderr, " -m md5\n");
|
||||
fprintf (stderr, " -1 sha1\n");
|
||||
fprintf (stderr, " -2 sha256\n");
|
||||
fprintf (stderr, " -3 sha384\n");
|
||||
fprintf (stderr, " -5 sha512\n");
|
||||
}
|
||||
|
||||
int main (int argc, char* argv[])
|
||||
{
|
||||
unsigned char digest[QSE_SHA512_DIGEST_LEN];
|
||||
int digest_len = QSE_SHA512_DIGEST_LEN;
|
||||
void (*sha_func) (int fd, unsigned char* digest) = sha512sum;
|
||||
int i, j;
|
||||
|
||||
while (1)
|
||||
{
|
||||
int c;
|
||||
|
||||
c = getopt(argc, argv, ":hm1235");
|
||||
if (c == -1) break;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case 'h':
|
||||
print_usage (qse_mbsbasename(argv[0]));
|
||||
return 0;
|
||||
|
||||
case 'm':
|
||||
digest_len = QSE_MD5_DIGEST_LEN;
|
||||
sha_func = md5sum;
|
||||
break;
|
||||
|
||||
case '1':
|
||||
digest_len = QSE_SHA1_DIGEST_LEN;
|
||||
sha_func = sha1sum;
|
||||
break;
|
||||
|
||||
case '2':
|
||||
digest_len = QSE_SHA256_DIGEST_LEN;
|
||||
sha_func = sha256sum;
|
||||
break;
|
||||
|
||||
case '3':
|
||||
digest_len = QSE_SHA384_DIGEST_LEN;
|
||||
sha_func = sha384sum;
|
||||
break;
|
||||
|
||||
case '5':
|
||||
digest_len = QSE_SHA512_DIGEST_LEN;
|
||||
sha_func = sha512sum;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
case ':':
|
||||
print_usage (qse_mbsbasename(argv[0]));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (optind >= argc)
|
||||
{
|
||||
sha_func (STDIN_FILENO, digest);
|
||||
for (j = 0; j < digest_len; j++)
|
||||
printf ("%02x", digest[j]);
|
||||
printf (" -\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
int fd;
|
||||
|
||||
for (i = optind; i < argc; i++)
|
||||
{
|
||||
fd = strcmp(argv[i], "-")? open(argv[i], O_RDONLY): STDIN_FILENO;
|
||||
if (fd >= 0)
|
||||
{
|
||||
sha_func (fd, digest);
|
||||
for (j = 0; j < digest_len; j++)
|
||||
printf ("%02x", digest[j]);
|
||||
printf (" %s\n", argv[i]);
|
||||
if (strcmp(argv[i], "-")) close (fd);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf (stderr, "%s: %s\n", argv[i], strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user