mirror of
https://git.freebsd.org/ports.git
synced 2025-05-30 09:56:43 -04:00
as the source of various digest-algorithms. Years ago, when I was undertaking the replacement of the bundled implementations with those found in the base system, it seemed like OpenSSL will be more stable... Ha-ha. Fix the WWW, while I'm here. PR: 229026 Submitted by: brnrd Reported by: Package Fallout
284 lines
6.7 KiB
Text
284 lines
6.7 KiB
Text
--- generic/rmd160.c 2009-06-18 00:54:44.000000000 -0400
|
||
+++ generic/rmd160.c 2009-07-13 00:25:20.000000000 -0400
|
||
@@ -29,5 +29,5 @@
|
||
|
||
#include "transformInt.h"
|
||
-#include "ripemd/rmd160.h"
|
||
+#include <ripemd.h>
|
||
|
||
/*
|
||
@@ -40,27 +40,4 @@
|
||
|
||
#define DIGEST_SIZE (20)
|
||
-/*#define CTX_TYPE */
|
||
-#define CONTEXT_SIZE (20)
|
||
-#define CHUNK_SIZE (64)
|
||
-
|
||
-typedef struct ripemd_context {
|
||
- dword state [5]; /* state variables of ripemd-160 */
|
||
- byte buf [CHUNK_SIZE]; /* buffer of 16-dword's */
|
||
- byte byteCount; /* number of bytes in buffer */
|
||
- dword lowc; /* lower half of a 64bit counter */
|
||
- dword highc; /* upper half of a 64bit counter */
|
||
-} ripemd_context;
|
||
-
|
||
-
|
||
-/*
|
||
- * Declarations of internal procedures.
|
||
- */
|
||
-
|
||
-static void MDrmd160_Start _ANSI_ARGS_ ((VOID* context));
|
||
-static void MDrmd160_Update _ANSI_ARGS_ ((VOID* context, unsigned int character));
|
||
-static void MDrmd160_UpdateBuf _ANSI_ARGS_ ((VOID* context, unsigned char* buffer, int bufLen));
|
||
-static void MDrmd160_Final _ANSI_ARGS_ ((VOID* context, VOID* digest));
|
||
-static void CountLength _ANSI_ARGS_ ((ripemd_context* ctx,
|
||
- unsigned int nbytes));
|
||
|
||
/*
|
||
@@ -70,10 +47,10 @@
|
||
static Trf_MessageDigestDescription mdDescription = { /* THREADING: constant, read-only => safe */
|
||
"ripemd160",
|
||
- sizeof (ripemd_context),
|
||
+ sizeof (RIPEMD160_CTX),
|
||
DIGEST_SIZE,
|
||
- MDrmd160_Start,
|
||
- MDrmd160_Update,
|
||
- MDrmd160_UpdateBuf,
|
||
- MDrmd160_Final,
|
||
+ (Trf_MDStart *)RIPEMD160_Init,
|
||
+ NULL,
|
||
+ (Trf_MDUpdateBuf *)RIPEMD160_Update,
|
||
+ (Trf_MDFinal *)RIPEMD160_Final,
|
||
NULL
|
||
};
|
||
@@ -103,230 +80,2 @@
|
||
return Trf_RegisterMessageDigest (interp, &mdDescription);
|
||
}
|
||
-
|
||
-/*
|
||
- *------------------------------------------------------*
|
||
- *
|
||
- * MDrmd160_Start --
|
||
- *
|
||
- * ------------------------------------------------*
|
||
- * Initialize the internal state of the message
|
||
- * digest generator.
|
||
- * ------------------------------------------------*
|
||
- *
|
||
- * Sideeffects:
|
||
- * As of the called procedure.
|
||
- *
|
||
- * Result:
|
||
- * None.
|
||
- *
|
||
- *------------------------------------------------------*
|
||
- */
|
||
-
|
||
-static void
|
||
-MDrmd160_Start (context)
|
||
-VOID* context;
|
||
-{
|
||
- ripemd_context* ctx = (ripemd_context*) context;
|
||
-
|
||
- ripemd160_MDinit (ctx->state);
|
||
- memset (ctx->buf, '\0', CHUNK_SIZE);
|
||
-
|
||
- ctx->byteCount = 0;
|
||
- ctx->lowc = 0;
|
||
- ctx->highc = 0;
|
||
-}
|
||
-
|
||
-/*
|
||
- *------------------------------------------------------*
|
||
- *
|
||
- * MDrmd160_Update --
|
||
- *
|
||
- * ------------------------------------------------*
|
||
- * Update the internal state of the message digest
|
||
- * generator for a single character.
|
||
- * ------------------------------------------------*
|
||
- *
|
||
- * Sideeffects:
|
||
- * As of the called procedure.
|
||
- *
|
||
- * Result:
|
||
- * None.
|
||
- *
|
||
- *------------------------------------------------------*
|
||
- */
|
||
-
|
||
-static void
|
||
-MDrmd160_Update (context, character)
|
||
-VOID* context;
|
||
-unsigned int character;
|
||
-{
|
||
- ripemd_context* ctx = (ripemd_context*) context;
|
||
-
|
||
- ctx->buf [ctx->byteCount] = character;
|
||
- ctx->byteCount ++;
|
||
-
|
||
- if (ctx->byteCount == CHUNK_SIZE) {
|
||
- CountLength (ctx, CHUNK_SIZE);
|
||
-
|
||
-#ifdef WORDS_BIGENDIAN
|
||
- Trf_FlipRegisterLong (ctx->buf, CHUNK_SIZE);
|
||
-#endif
|
||
- ripemd160_compress (ctx->state, (dword*) ctx->buf);
|
||
- ctx->byteCount = 0;
|
||
- }
|
||
-}
|
||
-
|
||
-/*
|
||
- *------------------------------------------------------*
|
||
- *
|
||
- * MDrmd160_UpdateBuf --
|
||
- *
|
||
- * ------------------------------------------------*
|
||
- * Update the internal state of the message digest
|
||
- * generator for a character buffer.
|
||
- * ------------------------------------------------*
|
||
- *
|
||
- * Sideeffects:
|
||
- * As of the called procedure.
|
||
- *
|
||
- * Result:
|
||
- * None.
|
||
- *
|
||
- *------------------------------------------------------*
|
||
- */
|
||
-
|
||
-static void
|
||
-MDrmd160_UpdateBuf (context, buffer, bufLen)
|
||
-VOID* context;
|
||
-unsigned char* buffer;
|
||
-int bufLen;
|
||
-{
|
||
- ripemd_context* ctx = (ripemd_context*) context;
|
||
-
|
||
- if ((ctx->byteCount + bufLen) < CHUNK_SIZE) {
|
||
- /*
|
||
- * Not enough for full chunk. Remember incoming
|
||
- * data and wait for another call containing more data.
|
||
- */
|
||
-
|
||
- memcpy ((VOID*) (ctx->buf + ctx->byteCount), (VOID*) buffer, bufLen);
|
||
- ctx->byteCount += bufLen;
|
||
- } else {
|
||
- /*
|
||
- * Complete chunk with incoming data, update digest,
|
||
- * then use all chunks contained in the buffer. Remember
|
||
- * an incomplete chunk and wait for further calls.
|
||
- */
|
||
-
|
||
- int k = CHUNK_SIZE - ctx->byteCount;
|
||
-
|
||
- if (k < CHUNK_SIZE) {
|
||
- memcpy ((VOID*) (ctx->buf + ctx->byteCount), (VOID*) buffer, k);
|
||
-
|
||
- CountLength (ctx, CHUNK_SIZE);
|
||
-
|
||
-#ifdef WORDS_BIGENDIAN
|
||
- Trf_FlipRegisterLong (ctx->buf, CHUNK_SIZE);
|
||
-#endif
|
||
- ripemd160_compress (ctx->state, (dword*) ctx->buf);
|
||
-
|
||
- buffer += k;
|
||
- bufLen -= k;
|
||
- } /* k == CHUNK_SIZE => internal buffer was empty, so skip it entirely */
|
||
-
|
||
- while (bufLen >= CHUNK_SIZE) {
|
||
- CountLength (ctx, CHUNK_SIZE);
|
||
-
|
||
-#ifdef WORDS_BIGENDIAN
|
||
- Trf_FlipRegisterLong (buffer, CHUNK_SIZE);
|
||
-#endif
|
||
- ripemd160_compress (ctx->state, (dword*) buffer);
|
||
-#ifdef WORDS_BIGENDIAN
|
||
- Trf_FlipRegisterLong (buffer, CHUNK_SIZE);
|
||
-#endif
|
||
-
|
||
- buffer += CHUNK_SIZE;
|
||
- bufLen -= CHUNK_SIZE;
|
||
- }
|
||
-
|
||
- ctx->byteCount = bufLen;
|
||
- if (bufLen > 0) {
|
||
- memcpy ((VOID*) ctx->buf, (VOID*) buffer, bufLen);
|
||
- }
|
||
- }
|
||
-}
|
||
-
|
||
-/*
|
||
- *------------------------------------------------------*
|
||
- *
|
||
- * MDrmd160_Final --
|
||
- *
|
||
- * ------------------------------------------------*
|
||
- * Generate the digest from the internal state of
|
||
- * the message digest generator.
|
||
- * ------------------------------------------------*
|
||
- *
|
||
- * Sideeffects:
|
||
- * As of the called procedure.
|
||
- *
|
||
- * Result:
|
||
- * None.
|
||
- *
|
||
- *------------------------------------------------------*
|
||
- */
|
||
-
|
||
-static void
|
||
-MDrmd160_Final (context, digest)
|
||
-VOID* context;
|
||
-VOID* digest;
|
||
-{
|
||
- ripemd_context* ctx = (ripemd_context*) context;
|
||
-
|
||
- CountLength (ctx, ctx->byteCount);
|
||
-
|
||
- ripemd160_MDfinish (ctx->state, ctx->buf, ctx->lowc, ctx->highc);
|
||
-
|
||
- memcpy (digest, ctx->state, DIGEST_SIZE);
|
||
-#ifdef WORDS_BIGENDIAN
|
||
- Trf_FlipRegisterLong (digest, DIGEST_SIZE);
|
||
-#endif
|
||
-}
|
||
-
|
||
-/*
|
||
- *------------------------------------------------------*
|
||
- *
|
||
- * CountLength --
|
||
- *
|
||
- * ------------------------------------------------*
|
||
- * Update the 64bit counter in the context structure
|
||
- * ------------------------------------------------*
|
||
- *
|
||
- * Sideeffects:
|
||
- * See above.
|
||
- *
|
||
- * Result:
|
||
- * None.
|
||
- *
|
||
- *------------------------------------------------------*
|
||
- */
|
||
-
|
||
-static void
|
||
-CountLength (ctx, nbytes)
|
||
- ripemd_context* ctx;
|
||
- unsigned int nbytes;
|
||
-{
|
||
- /* update length counter */
|
||
-
|
||
- if ((ctx->lowc + nbytes) < ctx->lowc) {
|
||
- /* overflow to msb of length */
|
||
- ctx->highc ++;
|
||
- }
|
||
-
|
||
- ctx->lowc += nbytes;
|
||
-}
|
||
-
|
||
-/*
|
||
- * External code from here on.
|
||
- */
|
||
-
|
||
-#include "ripemd/rmd160.c"
|