aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sha1.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sha1.c')
-rw-r--r--lib/sha1.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/sha1.c b/lib/sha1.c
index ce0f0b2e71f..8306d887da5 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -122,21 +122,29 @@ sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf)
122} 122}
123#endif 123#endif
124 124
125#ifdef GL_COMPILE_CRYPTO_STREAM
126
127#include "af_alg.h"
128
125/* Compute SHA1 message digest for bytes read from STREAM. The 129/* Compute SHA1 message digest for bytes read from STREAM. The
126 resulting message digest number will be written into the 16 bytes 130 resulting message digest number will be written into the 20 bytes
127 beginning at RESBLOCK. */ 131 beginning at RESBLOCK. */
128int 132int
129sha1_stream (FILE *stream, void *resblock) 133sha1_stream (FILE *stream, void *resblock)
130{ 134{
131 struct sha1_ctx ctx; 135 switch (afalg_stream (stream, "sha1", resblock, SHA1_DIGEST_SIZE))
132 size_t sum; 136 {
137 case 0: return 0;
138 case -EIO: return 1;
139 }
133 140
134 char *buffer = malloc (BLOCKSIZE + 72); 141 char *buffer = malloc (BLOCKSIZE + 72);
135 if (!buffer) 142 if (!buffer)
136 return 1; 143 return 1;
137 144
138 /* Initialize the computation context. */ 145 struct sha1_ctx ctx;
139 sha1_init_ctx (&ctx); 146 sha1_init_ctx (&ctx);
147 size_t sum;
140 148
141 /* Iterate over full file contents. */ 149 /* Iterate over full file contents. */
142 while (1) 150 while (1)
@@ -194,6 +202,7 @@ sha1_stream (FILE *stream, void *resblock)
194 free (buffer); 202 free (buffer);
195 return 0; 203 return 0;
196} 204}
205#endif
197 206
198#if ! HAVE_OPENSSL_SHA1 207#if ! HAVE_OPENSSL_SHA1
199/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The 208/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The