]> granicus.if.org Git - neomutt/commitdiff
move the sha1 functions to the library
authorRichard Russon <rich@flatcap.org>
Wed, 2 Aug 2017 14:15:18 +0000 (15:15 +0100)
committerRichard Russon <rich@flatcap.org>
Wed, 2 Aug 2017 16:15:06 +0000 (17:15 +0100)
Makefile.am
lib/Makefile.am
lib/lib.h
lib/lib_sha1.c [moved from sha1.c with 83% similarity]
lib/lib_sha1.h [new file with mode: 0644]
pgppubring.c
po/POTFILES.in
sha1.h [deleted file]

index 11687460c1ddf390f1fcb1387edc60ab97af1631..08bdc8afa8cb9b92720f8d4bfbddb4c0968d324c 100644 (file)
@@ -80,7 +80,7 @@ AM_CPPFLAGS=-I. -I$(top_srcdir) $(GPGME_CFLAGS)
 
 EXTRA_mutt_SOURCES = browser.h mbyte.h mutt_idna.c mutt_idna.h \
        mutt_lua.c mutt_sasl.c mutt_notmuch.c mutt_ssl.c mutt_ssl_gnutls.c \
-       remailer.c remailer.h resize.c sha1.c url.h utf8.c wcwidth.c
+       remailer.c remailer.h resize.c url.h utf8.c wcwidth.c
 
 EXTRA_DIST = account.h attach.h bcache.h browser.h buffer.h buffy.h \
        ChangeLog.md charset.h CODE_OF_CONDUCT.md compress.h copy.h \
@@ -92,13 +92,13 @@ EXTRA_DIST = account.h attach.h bcache.h browser.h buffer.h buffy.h \
        mutt_socket.h mutt_ssl.h mutt_tunnel.h mx.h myvar.h nntp.h OPS \
        OPS.CRYPT OPS.MIX OPS.NOTMUCH OPS.PGP OPS.SIDEBAR OPS.SMIME pager.h \
        pgpewrap.c pop.h protos.h README.md README.SSL remailer.c remailer.h \
-       rfc1524.h rfc2047.h rfc2231.h rfc3676.h rfc822.h sha1.h sidebar.h \
+       rfc1524.h rfc2047.h rfc2231.h rfc3676.h rfc822.h sidebar.h \
        sort.h txt2c.c txt2c.sh version.h \
        keymap_alldefs.h
 
 EXTRA_SCRIPTS =
 
-pgpring_SOURCES = extlib.c lib.c pgppubring.c sha1.c
+pgpring_SOURCES = extlib.c lib.c pgppubring.c
 pgpring_LDADD = $(LIBOBJS) $(NCRYPT_LIBS) $(INTLLIBS) $(LIBLIB)
 pgpring_DEPENDENCIES = $(LIBOBJS) $(NCRYPT_DEPS) $(INTLDEPS) $(LIBLIBDEPS)
 
index 331129a3cdaac245c2ad4d8d733dcea94c522257..55acb83e9b2f8f137a5f6c836add15b2166e9e34 100644 (file)
@@ -3,12 +3,12 @@ include $(top_srcdir)/flymake.am
 
 AUTOMAKE_OPTIONS = 1.6 foreign
 
-EXTRA_DIST = lib.h lib_ascii.h lib_base64.h lib_date.h lib_exit.h lib_md5.h
+EXTRA_DIST = lib.h lib_ascii.h lib_base64.h lib_date.h lib_exit.h lib_md5.h lib_sha1.h
 
 AM_CPPFLAGS = -I$(top_srcdir)
 
 noinst_LIBRARIES = liblib.a
 noinst_HEADERS =
 
-liblib_a_SOURCES = lib_ascii.c lib_base64.c lib_date.c lib_exit.c lib_md5.c
+liblib_a_SOURCES = lib_ascii.c lib_base64.c lib_date.c lib_exit.c lib_md5.c lib_sha1.c
 
index 87a1d3309eda20c610ee18e49102444bc66676be..04993dc04f3c5f0f8f2cec7fbcf8544ac6051cae 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -33,6 +33,7 @@
  * -# @subpage date
  * -# @subpage exit
  * -# @subpage md5
+ * -# @subpage sha1
  */
 
 #ifndef _LIB_LIB_H
@@ -43,5 +44,6 @@
 #include "lib_date.h"
 #include "lib_exit.h"
 #include "lib_md5.h"
+#include "lib_sha1.h"
 
 #endif /* _LIB_LIB_H */
similarity index 83%
rename from sha1.c
rename to lib/lib_sha1.c
index 103be4edb8f9f8ee86381d352263207a67906269..291cc68c8a002e2635ae499b3c8d9dcea74814f5 100644 (file)
--- a/sha1.c
@@ -2,25 +2,35 @@
  * @file
  * Calculate the SHA1 checksum of a buffer
  *
- * SHA-1 in C
+ * @authors
+ * Steve Reid <steve@edmweb.com>
+ * Thomas Roessler <roessler@does-not-exist.org>
  *
- * By Steve Reid <steve@edmweb.com>, with small changes to make it
- * fit into mutt by Thomas Roessler <roessler@does-not-exist.org>.
+ * @copyright
+ * Public Domain
+ */
+
+/**
+ * @page sha1 Calculate the SHA1 checksum of a buffer
+ *
+ * Calculate the SHA1 cryptographic hash of a string, according to RFC3174.
  *
- * 100% Public Domain.
+ * | Function         | Description
+ * | :--------------- | :----------------------------------------
+ * | sha1_final()     | Add padding and return the message digest
+ * | sha1_init()      | Initialize new context
+ * | sha1_transform() | Hash a single 512-bit block
+ * | sha1_update()    | Run your data through this
  *
- * Test Vectors (from FIPS PUB 180-1)
- * "abc"
- * A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
- * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
- * 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
- * A million repetitions of "a"
- * 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
+ * Test Vectors (from FIPS PUB 180-1):
+ * - "abc" yields `A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D`
+ * - "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" yields `84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1`
+ * - A million repetitions of "a" yields `34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F`
  */
 
 #include "config.h"
 #include <string.h>
-#include "sha1.h"
+#include "lib_sha1.h"
 
 #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
 
   z += (w ^ x ^ y) + blk(i) + 0xCA62C1D6 + rol(v, 5);                          \
   w = rol(w, 30);
 
-
 /**
  * sha1_transform - Hash a single 512-bit block
+ * @param state  Internal state of the transform
+ * @param buffer Data to transform
  *
  * This is the core of the algorithm.
  */
@@ -168,9 +179,9 @@ void sha1_transform(uint32_t state[5], const unsigned char buffer[64])
   memset(block, '\0', sizeof(block));
 }
 
-
 /**
  * sha1_init - Initialize new context
+ * @param context SHA1 context
  */
 void sha1_init(struct Sha1Ctx *context)
 {
@@ -183,9 +194,11 @@ void sha1_init(struct Sha1Ctx *context)
   context->count[0] = context->count[1] = 0;
 }
 
-
 /**
  * sha1_update - Run your data through this
+ * @param context SHA1 context
+ * @param data    Data to be hashed
+ * @param len     Length of data
  */
 void sha1_update(struct Sha1Ctx *context, const unsigned char *data, uint32_t len)
 {
@@ -212,9 +225,10 @@ void sha1_update(struct Sha1Ctx *context, const unsigned char *data, uint32_t le
   memcpy(&context->buffer[j], &data[i], len - i);
 }
 
-
 /**
  * sha1_final - Add padding and return the message digest
+ * @param[out] digest  Message digest (SHA1 sum)
+ * @param[in]  context SHA1 context
  */
 void sha1_final(unsigned char digest[20], struct Sha1Ctx *context)
 {
diff --git a/lib/lib_sha1.h b/lib/lib_sha1.h
new file mode 100644 (file)
index 0000000..8a36ac2
--- /dev/null
@@ -0,0 +1,47 @@
+/**
+ * @file
+ * Calculate the SHA1 checksum of a buffer
+ *
+ * @authors
+ * Copyright (C) 2000 Steve Reid <steve@edmweb.com>
+ * Copyright (C) 2000 Thomas Roessler <roessler@does-not-exist.org>
+ * Copyright (C) 2017 Richard Russon <rich@flatcap.org>
+ *
+ * @copyright
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _LIB_SHA1_H
+#define _LIB_SHA1_H
+
+#include <stdint.h>
+
+/**
+ * struct Sha1Ctx - Cursor for the SHA1 hashing
+ */
+struct Sha1Ctx
+{
+  uint32_t state[5];
+  uint32_t count[2];
+  unsigned char buffer[64];
+};
+
+void sha1_final(unsigned char digest[20], struct Sha1Ctx *context);
+void sha1_init(struct Sha1Ctx *context);
+void sha1_transform(uint32_t state[5], const unsigned char buffer[64]);
+void sha1_update(struct Sha1Ctx *context, const unsigned char *data, uint32_t len);
+
+#define SHA_DIGEST_LENGTH 20
+
+#endif /* _LIB_SHA1_H */
index 394e1e6ec2ef7e05b9b965c5aa3847035e9aec4e..3d2081ae417f995b86b7f2352e4db520d1d9c846 100644 (file)
@@ -47,7 +47,6 @@
 #include "ncrypt/ncrypt.h"
 #include "ncrypt/pgplib.h"
 #include "ncrypt/pgppacket.h"
-#include "sha1.h"
 
 extern char *optarg;
 extern int optind;
index 43aed0e209f075edc9b3406262669ad06efff515..13c3944c5cf4135485f9c27432e6a65867c3eec4 100644 (file)
@@ -64,6 +64,7 @@ lib/lib_base64.c
 lib/lib_date.c
 lib/lib_exit.c
 lib/lib_md5.c
+lib/lib_sha1.c
 main.c
 mbox.c
 mbyte.c
@@ -120,7 +121,6 @@ safe_asprintf.c
 score.c
 send.c
 sendlib.c
-sha1.c
 sidebar.c
 signal.c
 smtp.c
diff --git a/sha1.h b/sha1.h
deleted file mode 100644 (file)
index 4760064..0000000
--- a/sha1.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * @file
- * Calculate the SHA1 checksum of a buffer
- *
- * SHA-1 in C
- *
- * By Steve Reid <steve@edmweb.com>, with small changes to make it
- * fit into mutt by Thomas Roessler <roessler@does-not-exist.org>.
- */
-
-#ifndef _MUTT_SHA1_H
-#define _MUTT_SHA1_H
-
-#include <stdint.h>
-
-/**
- * struct Sha1Ctx - Cursor for the SHA1 hashing
- */
-struct Sha1Ctx
-{
-  uint32_t state[5];
-  uint32_t count[2];
-  unsigned char buffer[64];
-};
-
-void sha1_transform(uint32_t state[5], const unsigned char buffer[64]);
-void sha1_init(struct Sha1Ctx *context);
-void sha1_update(struct Sha1Ctx *context, const unsigned char *data, uint32_t len);
-void sha1_final(unsigned char digest[20], struct Sha1Ctx *context);
-
-#define SHA_DIGEST_LENGTH 20
-
-#endif /* _MUTT_SHA1_H */