summaryrefslogtreecommitdiff
path: root/lib/md2.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/md2.c')
-rw-r--r--lib/md2.c84
1 files changed, 1 insertions, 83 deletions
diff --git a/lib/md2.c b/lib/md2.c
index 85b4d20291..5dc8119779 100644
--- a/lib/md2.c
+++ b/lib/md2.c
@@ -21,23 +21,14 @@
#include <config.h>
+/* Specification. */
#include "md2.h"
-#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <minmax.h>
-#if USE_UNLOCKED_IO
-# include "unlocked-io.h"
-#endif
-
-#define BLOCKSIZE 32768
-#if BLOCKSIZE % 64 != 0
-# error "invalid BLOCKSIZE"
-#endif
-
static void md2_update_chksum (struct md2_ctx *md);
static void md2_compress (struct md2_ctx *md);
@@ -87,79 +78,6 @@ md2_finish_ctx (struct md2_ctx *ctx, void *resbuf)
return md2_read_ctx (ctx, resbuf);
}
-/* Compute MD2 message digest for bytes read from STREAM. The
- resulting message digest number will be written into the 16 bytes
- beginning at RESBLOCK. */
-int
-md2_stream (FILE *stream, void *resblock)
-{
- struct md2_ctx ctx;
- size_t sum;
-
- char *buffer = malloc (BLOCKSIZE + 72);
- if (!buffer)
- return 1;
-
- /* Initialize the computation context. */
- md2_init_ctx (&ctx);
-
- /* Iterate over full file contents. */
- while (1)
- {
- /* We read the file in blocks of BLOCKSIZE bytes. One call of the
- computation function processes the whole buffer so that with the
- next round of the loop another block can be read. */
- size_t n;
- sum = 0;
-
- /* Read block. Take care for partial reads. */
- while (1)
- {
- n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
-
- sum += n;
-
- if (sum == BLOCKSIZE)
- break;
-
- if (n == 0)
- {
- /* Check for the error flag IFF N == 0, so that we don't
- exit the loop after a partial read due to e.g., EAGAIN
- or EWOULDBLOCK. */
- if (ferror (stream))
- {
- free (buffer);
- return 1;
- }
- goto process_partial_block;
- }
-
- /* We've read at least one byte, so ignore errors. But always
- check for EOF, since feof may be true even though N > 0.
- Otherwise, we could end up calling fread after EOF. */
- if (feof (stream))
- goto process_partial_block;
- }
-
- /* Process buffer with BLOCKSIZE bytes. Note that
- BLOCKSIZE % 64 == 0
- */
- md2_process_block (buffer, BLOCKSIZE, &ctx);
- }
-
-process_partial_block:;
-
- /* Process any remaining bytes. */
- if (sum > 0)
- md2_process_bytes (buffer, sum, &ctx);
-
- /* Construct result in desired memory. */
- md2_finish_ctx (&ctx, resblock);
- free (buffer);
- return 0;
-}
-
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
result is always in little endian byte order, so that a byte-wise
output yields to the wanted ASCII representation of the message