summaryrefslogtreecommitdiff
path: root/devel/tcl-trf/files/patch-rmd160
diff options
context:
space:
mode:
Diffstat (limited to 'devel/tcl-trf/files/patch-rmd160')
-rw-r--r--devel/tcl-trf/files/patch-rmd160284
1 files changed, 284 insertions, 0 deletions
diff --git a/devel/tcl-trf/files/patch-rmd160 b/devel/tcl-trf/files/patch-rmd160
new file mode 100644
index 000000000000..d29a996f819e
--- /dev/null
+++ b/devel/tcl-trf/files/patch-rmd160
@@ -0,0 +1,284 @@
+--- 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 <openssl/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"