diff options
Diffstat (limited to 'devel/tcl-trf/files/patch-rmd160')
-rw-r--r-- | devel/tcl-trf/files/patch-rmd160 | 284 |
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" |