diff options
Diffstat (limited to 'trunk/ext/digest/rmd160')
-rw-r--r-- | trunk/ext/digest/rmd160/.cvsignore | 4 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/depend | 6 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/extconf.rb | 28 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/rmd160.c | 457 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/rmd160.h | 56 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/rmd160init.c | 40 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/rmd160ossl.c | 8 | ||||
-rw-r--r-- | trunk/ext/digest/rmd160/rmd160ossl.h | 19 |
8 files changed, 0 insertions, 618 deletions
diff --git a/trunk/ext/digest/rmd160/.cvsignore b/trunk/ext/digest/rmd160/.cvsignore deleted file mode 100644 index 814345ece8..0000000000 --- a/trunk/ext/digest/rmd160/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile -mkmf.log -*.def -extconf.h diff --git a/trunk/ext/digest/rmd160/depend b/trunk/ext/digest/rmd160/depend deleted file mode 100644 index a21d7188dc..0000000000 --- a/trunk/ext/digest/rmd160/depend +++ /dev/null @@ -1,6 +0,0 @@ -rmd160.o: rmd160.c rmd160.h $(srcdir)/../defs.h $(hdrdir)/ruby.h \ - $(topdir)/config.h $(hdrdir)/defines.h $(hdrdir)/intern.h -rmd160init.o: rmd160init.c $(srcdir)/../digest.h $(hdrdir)/ruby.h \ - $(topdir)/config.h $(hdrdir)/defines.h $(hdrdir)/intern.h \ - rmd160.h $(srcdir)/../defs.h -rmd160ossl.o: rmd160ossl.h $(srcdir)/../defs.h diff --git a/trunk/ext/digest/rmd160/extconf.rb b/trunk/ext/digest/rmd160/extconf.rb deleted file mode 100644 index 09359944f2..0000000000 --- a/trunk/ext/digest/rmd160/extconf.rb +++ /dev/null @@ -1,28 +0,0 @@ -# $RoughId: extconf.rb,v 1.3 2001/08/14 19:54:51 knu Exp $ -# $Id$ - -require "mkmf" - -$defs << "-DNDEBUG" << "-DHAVE_CONFIG_H" -$INCFLAGS << " -I$(srcdir)/.." - -$objs = [ "rmd160init.#{$OBJEXT}" ] - -dir_config("openssl") - -if !with_config("bundled-rmd160") && - have_library("crypto") && have_header("openssl/ripemd.h") - $objs << "rmd160ossl.#{$OBJEXT}" -else - $objs << "rmd160.#{$OBJEXT}" -end - -have_header("sys/cdefs.h") - -have_header("inttypes.h") - -have_header("unistd.h") - -$preload = %w[digest] - -create_makefile("digest/rmd160") diff --git a/trunk/ext/digest/rmd160/rmd160.c b/trunk/ext/digest/rmd160/rmd160.c deleted file mode 100644 index 88918728cd..0000000000 --- a/trunk/ext/digest/rmd160/rmd160.c +++ /dev/null @@ -1,457 +0,0 @@ -/* $NetBSD: rmd160.c,v 1.1.1.1 2001/03/06 11:21:05 agc Exp $ */ -/* $RoughId: rmd160.c,v 1.2 2001/07/13 19:49:10 knu Exp $ */ -/* $Id$ */ - -/********************************************************************\ - * - * FILE: rmd160.c - * - * CONTENTS: A sample C-implementation of the RIPEMD-160 - * hash-function. - * TARGET: any computer with an ANSI C compiler - * - * AUTHOR: Antoon Bosselaers, ESAT-COSIC - * (Arranged for libc by Todd C. Miller) - * DATE: 1 March 1996 - * VERSION: 1.0 - * - * Copyright (c) Katholieke Universiteit Leuven - * 1996, All Rights Reserved - * -\********************************************************************/ - -#include "rmd160.h" - -#ifndef lint -/* __RCSID("$NetBSD: rmd160.c,v 1.1.1.1 2001/03/06 11:21:05 agc Exp $"); */ -#endif /* not lint */ - -/* header files */ - -#ifdef HAVE_SYS_ENDIAN_H_ -#include <sys/endian.h> -#endif - -#ifdef HAVE_MACHINE_ENDIAN_H_ -#include <machine/endian.h> -#endif - -/* #include "namespace.h" */ - -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif - - -/********************************************************************/ - -/* macro definitions */ - -/* collect four bytes into one word: */ -#define BYTES_TO_DWORD(strptr) \ - (((uint32_t) *((strptr)+3) << 24) | \ - ((uint32_t) *((strptr)+2) << 16) | \ - ((uint32_t) *((strptr)+1) << 8) | \ - ((uint32_t) *(strptr))) - -/* ROL(x, n) cyclically rotates x over n bits to the left */ -/* x must be of an unsigned 32 bits type and 0 <= n < 32. */ -#define ROL(x, n) (((x) << (n)) | ((x) >> (32-(n)))) - -/* the three basic functions F(), G() and H() */ -#define F(x, y, z) ((x) ^ (y) ^ (z)) -#define G(x, y, z) (((x) & (y)) | (~(x) & (z))) -#define H(x, y, z) (((x) | ~(y)) ^ (z)) -#define I(x, y, z) (((x) & (z)) | ((y) & ~(z))) -#define J(x, y, z) ((x) ^ ((y) | ~(z))) - -/* the eight basic operations FF() through III() */ -#define FF(a, b, c, d, e, x, s) { \ - (a) += F((b), (c), (d)) + (x); \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define GG(a, b, c, d, e, x, s) { \ - (a) += G((b), (c), (d)) + (x) + 0x5a827999U; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define HH(a, b, c, d, e, x, s) { \ - (a) += H((b), (c), (d)) + (x) + 0x6ed9eba1U; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define II(a, b, c, d, e, x, s) { \ - (a) += I((b), (c), (d)) + (x) + 0x8f1bbcdcU; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define JJ(a, b, c, d, e, x, s) { \ - (a) += J((b), (c), (d)) + (x) + 0xa953fd4eU; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define FFF(a, b, c, d, e, x, s) { \ - (a) += F((b), (c), (d)) + (x); \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define GGG(a, b, c, d, e, x, s) { \ - (a) += G((b), (c), (d)) + (x) + 0x7a6d76e9U; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define HHH(a, b, c, d, e, x, s) { \ - (a) += H((b), (c), (d)) + (x) + 0x6d703ef3U; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define III(a, b, c, d, e, x, s) { \ - (a) += I((b), (c), (d)) + (x) + 0x5c4dd124U; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} -#define JJJ(a, b, c, d, e, x, s) { \ - (a) += J((b), (c), (d)) + (x) + 0x50a28be6U; \ - (a) = ROL((a), (s)) + (e); \ - (c) = ROL((c), 10); \ -} - -/********************************************************************/ - -void -RMD160_Init(RMD160_CTX *context) -{ - - _DIAGASSERT(context != NULL); - - /* ripemd-160 initialization constants */ - context->state[0] = 0x67452301U; - context->state[1] = 0xefcdab89U; - context->state[2] = 0x98badcfeU; - context->state[3] = 0x10325476U; - context->state[4] = 0xc3d2e1f0U; - context->length[0] = context->length[1] = 0; - context->buflen = 0; -} - -/********************************************************************/ - -void -RMD160_Transform(uint32_t state[5], const uint32_t block[16]) -{ - uint32_t aa, bb, cc, dd, ee; - uint32_t aaa, bbb, ccc, ddd, eee; - - _DIAGASSERT(state != NULL); - _DIAGASSERT(block != NULL); - - aa = aaa = state[0]; - bb = bbb = state[1]; - cc = ccc = state[2]; - dd = ddd = state[3]; - ee = eee = state[4]; - - /* round 1 */ - FF(aa, bb, cc, dd, ee, block[ 0], 11); - FF(ee, aa, bb, cc, dd, block[ 1], 14); - FF(dd, ee, aa, bb, cc, block[ 2], 15); - FF(cc, dd, ee, aa, bb, block[ 3], 12); - FF(bb, cc, dd, ee, aa, block[ 4], 5); - FF(aa, bb, cc, dd, ee, block[ 5], 8); - FF(ee, aa, bb, cc, dd, block[ 6], 7); - FF(dd, ee, aa, bb, cc, block[ 7], 9); - FF(cc, dd, ee, aa, bb, block[ 8], 11); - FF(bb, cc, dd, ee, aa, block[ 9], 13); - FF(aa, bb, cc, dd, ee, block[10], 14); - FF(ee, aa, bb, cc, dd, block[11], 15); - FF(dd, ee, aa, bb, cc, block[12], 6); - FF(cc, dd, ee, aa, bb, block[13], 7); - FF(bb, cc, dd, ee, aa, block[14], 9); - FF(aa, bb, cc, dd, ee, block[15], 8); - - /* round 2 */ - GG(ee, aa, bb, cc, dd, block[ 7], 7); - GG(dd, ee, aa, bb, cc, block[ 4], 6); - GG(cc, dd, ee, aa, bb, block[13], 8); - GG(bb, cc, dd, ee, aa, block[ 1], 13); - GG(aa, bb, cc, dd, ee, block[10], 11); - GG(ee, aa, bb, cc, dd, block[ 6], 9); - GG(dd, ee, aa, bb, cc, block[15], 7); - GG(cc, dd, ee, aa, bb, block[ 3], 15); - GG(bb, cc, dd, ee, aa, block[12], 7); - GG(aa, bb, cc, dd, ee, block[ 0], 12); - GG(ee, aa, bb, cc, dd, block[ 9], 15); - GG(dd, ee, aa, bb, cc, block[ 5], 9); - GG(cc, dd, ee, aa, bb, block[ 2], 11); - GG(bb, cc, dd, ee, aa, block[14], 7); - GG(aa, bb, cc, dd, ee, block[11], 13); - GG(ee, aa, bb, cc, dd, block[ 8], 12); - - /* round 3 */ - HH(dd, ee, aa, bb, cc, block[ 3], 11); - HH(cc, dd, ee, aa, bb, block[10], 13); - HH(bb, cc, dd, ee, aa, block[14], 6); - HH(aa, bb, cc, dd, ee, block[ 4], 7); - HH(ee, aa, bb, cc, dd, block[ 9], 14); - HH(dd, ee, aa, bb, cc, block[15], 9); - HH(cc, dd, ee, aa, bb, block[ 8], 13); - HH(bb, cc, dd, ee, aa, block[ 1], 15); - HH(aa, bb, cc, dd, ee, block[ 2], 14); - HH(ee, aa, bb, cc, dd, block[ 7], 8); - HH(dd, ee, aa, bb, cc, block[ 0], 13); - HH(cc, dd, ee, aa, bb, block[ 6], 6); - HH(bb, cc, dd, ee, aa, block[13], 5); - HH(aa, bb, cc, dd, ee, block[11], 12); - HH(ee, aa, bb, cc, dd, block[ 5], 7); - HH(dd, ee, aa, bb, cc, block[12], 5); - - /* round 4 */ - II(cc, dd, ee, aa, bb, block[ 1], 11); - II(bb, cc, dd, ee, aa, block[ 9], 12); - II(aa, bb, cc, dd, ee, block[11], 14); - II(ee, aa, bb, cc, dd, block[10], 15); - II(dd, ee, aa, bb, cc, block[ 0], 14); - II(cc, dd, ee, aa, bb, block[ 8], 15); - II(bb, cc, dd, ee, aa, block[12], 9); - II(aa, bb, cc, dd, ee, block[ 4], 8); - II(ee, aa, bb, cc, dd, block[13], 9); - II(dd, ee, aa, bb, cc, block[ 3], 14); - II(cc, dd, ee, aa, bb, block[ 7], 5); - II(bb, cc, dd, ee, aa, block[15], 6); - II(aa, bb, cc, dd, ee, block[14], 8); - II(ee, aa, bb, cc, dd, block[ 5], 6); - II(dd, ee, aa, bb, cc, block[ 6], 5); - II(cc, dd, ee, aa, bb, block[ 2], 12); - - /* round 5 */ - JJ(bb, cc, dd, ee, aa, block[ 4], 9); - JJ(aa, bb, cc, dd, ee, block[ 0], 15); - JJ(ee, aa, bb, cc, dd, block[ 5], 5); - JJ(dd, ee, aa, bb, cc, block[ 9], 11); - JJ(cc, dd, ee, aa, bb, block[ 7], 6); - JJ(bb, cc, dd, ee, aa, block[12], 8); - JJ(aa, bb, cc, dd, ee, block[ 2], 13); - JJ(ee, aa, bb, cc, dd, block[10], 12); - JJ(dd, ee, aa, bb, cc, block[14], 5); - JJ(cc, dd, ee, aa, bb, block[ 1], 12); - JJ(bb, cc, dd, ee, aa, block[ 3], 13); - JJ(aa, bb, cc, dd, ee, block[ 8], 14); - JJ(ee, aa, bb, cc, dd, block[11], 11); - JJ(dd, ee, aa, bb, cc, block[ 6], 8); - JJ(cc, dd, ee, aa, bb, block[15], 5); - JJ(bb, cc, dd, ee, aa, block[13], 6); - - /* parallel round 1 */ - JJJ(aaa, bbb, ccc, ddd, eee, block[ 5], 8); - JJJ(eee, aaa, bbb, ccc, ddd, block[14], 9); - JJJ(ddd, eee, aaa, bbb, ccc, block[ 7], 9); - JJJ(ccc, ddd, eee, aaa, bbb, block[ 0], 11); - JJJ(bbb, ccc, ddd, eee, aaa, block[ 9], 13); - JJJ(aaa, bbb, ccc, ddd, eee, block[ 2], 15); - JJJ(eee, aaa, bbb, ccc, ddd, block[11], 15); - JJJ(ddd, eee, aaa, bbb, ccc, block[ 4], 5); - JJJ(ccc, ddd, eee, aaa, bbb, block[13], 7); - JJJ(bbb, ccc, ddd, eee, aaa, block[ 6], 7); - JJJ(aaa, bbb, ccc, ddd, eee, block[15], 8); - JJJ(eee, aaa, bbb, ccc, ddd, block[ 8], 11); - JJJ(ddd, eee, aaa, bbb, ccc, block[ 1], 14); - JJJ(ccc, ddd, eee, aaa, bbb, block[10], 14); - JJJ(bbb, ccc, ddd, eee, aaa, block[ 3], 12); - JJJ(aaa, bbb, ccc, ddd, eee, block[12], 6); - - /* parallel round 2 */ - III(eee, aaa, bbb, ccc, ddd, block[ 6], 9); - III(ddd, eee, aaa, bbb, ccc, block[11], 13); - III(ccc, ddd, eee, aaa, bbb, block[ 3], 15); - III(bbb, ccc, ddd, eee, aaa, block[ 7], 7); - III(aaa, bbb, ccc, ddd, eee, block[ 0], 12); - III(eee, aaa, bbb, ccc, ddd, block[13], 8); - III(ddd, eee, aaa, bbb, ccc, block[ 5], 9); - III(ccc, ddd, eee, aaa, bbb, block[10], 11); - III(bbb, ccc, ddd, eee, aaa, block[14], 7); - III(aaa, bbb, ccc, ddd, eee, block[15], 7); - III(eee, aaa, bbb, ccc, ddd, block[ 8], 12); - III(ddd, eee, aaa, bbb, ccc, block[12], 7); - III(ccc, ddd, eee, aaa, bbb, block[ 4], 6); - III(bbb, ccc, ddd, eee, aaa, block[ 9], 15); - III(aaa, bbb, ccc, ddd, eee, block[ 1], 13); - III(eee, aaa, bbb, ccc, ddd, block[ 2], 11); - - /* parallel round 3 */ - HHH(ddd, eee, aaa, bbb, ccc, block[15], 9); - HHH(ccc, ddd, eee, aaa, bbb, block[ 5], 7); - HHH(bbb, ccc, ddd, eee, aaa, block[ 1], 15); - HHH(aaa, bbb, ccc, ddd, eee, block[ 3], 11); - HHH(eee, aaa, bbb, ccc, ddd, block[ 7], 8); - HHH(ddd, eee, aaa, bbb, ccc, block[14], 6); - HHH(ccc, ddd, eee, aaa, bbb, block[ 6], 6); - HHH(bbb, ccc, ddd, eee, aaa, block[ 9], 14); - HHH(aaa, bbb, ccc, ddd, eee, block[11], 12); - HHH(eee, aaa, bbb, ccc, ddd, block[ 8], 13); - HHH(ddd, eee, aaa, bbb, ccc, block[12], 5); - HHH(ccc, ddd, eee, aaa, bbb, block[ 2], 14); - HHH(bbb, ccc, ddd, eee, aaa, block[10], 13); - HHH(aaa, bbb, ccc, ddd, eee, block[ 0], 13); - HHH(eee, aaa, bbb, ccc, ddd, block[ 4], 7); - HHH(ddd, eee, aaa, bbb, ccc, block[13], 5); - - /* parallel round 4 */ - GGG(ccc, ddd, eee, aaa, bbb, block[ 8], 15); - GGG(bbb, ccc, ddd, eee, aaa, block[ 6], 5); - GGG(aaa, bbb, ccc, ddd, eee, block[ 4], 8); - GGG(eee, aaa, bbb, ccc, ddd, block[ 1], 11); - GGG(ddd, eee, aaa, bbb, ccc, block[ 3], 14); - GGG(ccc, ddd, eee, aaa, bbb, block[11], 14); - GGG(bbb, ccc, ddd, eee, aaa, block[15], 6); - GGG(aaa, bbb, ccc, ddd, eee, block[ 0], 14); - GGG(eee, aaa, bbb, ccc, ddd, block[ 5], 6); - GGG(ddd, eee, aaa, bbb, ccc, block[12], 9); - GGG(ccc, ddd, eee, aaa, bbb, block[ 2], 12); - GGG(bbb, ccc, ddd, eee, aaa, block[13], 9); - GGG(aaa, bbb, ccc, ddd, eee, block[ 9], 12); - GGG(eee, aaa, bbb, ccc, ddd, block[ 7], 5); - GGG(ddd, eee, aaa, bbb, ccc, block[10], 15); - GGG(ccc, ddd, eee, aaa, bbb, block[14], 8); - - /* parallel round 5 */ - FFF(bbb, ccc, ddd, eee, aaa, block[12] , 8); - FFF(aaa, bbb, ccc, ddd, eee, block[15] , 5); - FFF(eee, aaa, bbb, ccc, ddd, block[10] , 12); - FFF(ddd, eee, aaa, bbb, ccc, block[ 4] , 9); - FFF(ccc, ddd, eee, aaa, bbb, block[ 1] , 12); - FFF(bbb, ccc, ddd, eee, aaa, block[ 5] , 5); - FFF(aaa, bbb, ccc, ddd, eee, block[ 8] , 14); - FFF(eee, aaa, bbb, ccc, ddd, block[ 7] , 6); - FFF(ddd, eee, aaa, bbb, ccc, block[ 6] , 8); - FFF(ccc, ddd, eee, aaa, bbb, block[ 2] , 13); - FFF(bbb, ccc, ddd, eee, aaa, block[13] , 6); - FFF(aaa, bbb, ccc, ddd, eee, block[14] , 5); - FFF(eee, aaa, bbb, ccc, ddd, block[ 0] , 15); - FFF(ddd, eee, aaa, bbb, ccc, block[ 3] , 13); - FFF(ccc, ddd, eee, aaa, bbb, block[ 9] , 11); - FFF(bbb, ccc, ddd, eee, aaa, block[11] , 11); - - /* combine results */ - ddd += cc + state[1]; /* final result for state[0] */ - state[1] = state[2] + dd + eee; - state[2] = state[3] + ee + aaa; - state[3] = state[4] + aa + bbb; - state[4] = state[0] + bb + ccc; - state[0] = ddd; -} - -/********************************************************************/ - -void -RMD160_Update(RMD160_CTX *context, const uint8_t *data, size_t nbytes) -{ - uint32_t X[16]; - uint32_t ofs = 0; - uint32_t i; -#ifdef WORDS_BIGENDIAN - uint32_t j; -#endif - - _DIAGASSERT(context != NULL); - _DIAGASSERT(data != NULL); - - /* update length[] */ - if (context->length[0] + nbytes < context->length[0]) - context->length[1]++; /* overflow to msb of length */ - context->length[0] += nbytes; - - (void)memset(X, 0, sizeof(X)); - - if ( context->buflen + nbytes < 64 ) - { - (void)memcpy(context->bbuffer + context->buflen, data, nbytes); - context->buflen += nbytes; - } - else - { - /* process first block */ - ofs = 64 - context->buflen; - (void)memcpy(context->bbuffer + context->buflen, data, ofs); -#ifndef WORDS_BIGENDIAN - (void)memcpy(X, context->bbuffer, sizeof(X)); -#else - for (j=0; j < 16; j++) - X[j] = BYTES_TO_DWORD(context->bbuffer + (4 * j)); -#endif - RMD160_Transform(context->state, X); - nbytes -= ofs; - - /* process remaining complete blocks */ - for (i = 0; i < (nbytes >> 6); i++) { -#ifndef WORDS_BIGENDIAN - (void)memcpy(X, data + (64 * i) + ofs, sizeof(X)); -#else - for (j=0; j < 16; j++) - X[j] = BYTES_TO_DWORD(data + (64 * i) + (4 * j) + ofs); -#endif - RMD160_Transform(context->state, X); - } - - /* - * Put last bytes from data into context's buffer - */ - context->buflen = nbytes & 63; - memcpy(context->bbuffer, data + (64 * i) + ofs, context->buflen); - } -} - -/********************************************************************/ - -void -RMD160_Finish(RMD160_CTX *context, uint8_t digest[20]) -{ - uint32_t i; - uint32_t X[16]; -#ifdef WORDS_BIGENDIAN - uint32_t j; -#endif - - _DIAGASSERT(digest != NULL); - _DIAGASSERT(context != NULL); - - /* append the bit m_n == 1 */ - context->bbuffer[context->buflen] = (uint8_t)'\200'; - - (void)memset(context->bbuffer + context->buflen + 1, 0, - 63 - context->buflen); -#ifndef WORDS_BIGENDIAN - (void)memcpy(X, context->bbuffer, sizeof(X)); -#else - for (j=0; j < 16; j++) - X[j] = BYTES_TO_DWORD(context->bbuffer + (4 * j)); -#endif - if ((context->buflen) > 55) { - /* length goes to next block */ - RMD160_Transform(context->state, X); - (void)memset(X, 0, sizeof(X)); - } - - /* append length in bits */ - X[14] = context->length[0] << 3; - X[15] = (context->length[0] >> 29) | - (context->length[1] << 3); - RMD160_Transform(context->state, X); - - if (digest != NULL) { - for (i = 0; i < 20; i += 4) { - /* extracts the 8 least significant bits. */ - digest[i] = context->state[i>>2]; - digest[i + 1] = (context->state[i>>2] >> 8); - digest[i + 2] = (context->state[i>>2] >> 16); - digest[i + 3] = (context->state[i>>2] >> 24); - } - } -} - -/************************ end of file rmd160.c **********************/ diff --git a/trunk/ext/digest/rmd160/rmd160.h b/trunk/ext/digest/rmd160/rmd160.h deleted file mode 100644 index 54d1ca9140..0000000000 --- a/trunk/ext/digest/rmd160/rmd160.h +++ /dev/null @@ -1,56 +0,0 @@ -/* $NetBSD: rmd160.h,v 1.2 2000/07/07 10:47:06 ad Exp $ */ -/* $RoughId: rmd160.h,v 1.3 2002/02/24 08:14:31 knu Exp $ */ -/* $Id$ */ - -/********************************************************************\ - * - * FILE: rmd160.h - * - * CONTENTS: Header file for a sample C-implementation of the - * RIPEMD-160 hash-function. - * TARGET: any computer with an ANSI C compiler - * - * AUTHOR: Antoon Bosselaers, ESAT-COSIC - * DATE: 1 March 1996 - * VERSION: 1.0 - * - * Copyright (c) Katholieke Universiteit Leuven - * 1996, All Rights Reserved - * -\********************************************************************/ - -/* - * from OpenBSD: rmd160.h,v 1.4 1999/08/16 09:59:04 millert Exp - */ - -#ifndef _RMD160_H_ -#define _RMD160_H_ - -#include "defs.h" - -typedef struct { - uint32_t state[5]; /* state (ABCDE) */ - uint32_t length[2]; /* number of bits */ - uint8_t bbuffer[64]; /* overflow buffer */ - uint32_t buflen; /* number of chars in bbuffer */ -} RMD160_CTX; - -#ifdef RUBY -#define RMD160_Init rb_Digest_RMD160_Init -#define RMD160_Transform rb_Digest_RMD160_Transform -#define RMD160_Update rb_Digest_RMD160_Update -#define RMD160_Finish rb_Digest_RMD160_Finish -#endif - -__BEGIN_DECLS -void RMD160_Init _((RMD160_CTX *)); -void RMD160_Transform _((uint32_t[5], const uint32_t[16])); -void RMD160_Update _((RMD160_CTX *, const uint8_t *, size_t)); -void RMD160_Finish _((RMD160_CTX *, uint8_t[20])); -__END_DECLS - -#define RMD160_BLOCK_LENGTH 64 -#define RMD160_DIGEST_LENGTH 20 -#define RMD160_DIGEST_STRING_LENGTH (RMD160_DIGEST_LENGTH * 2 + 1) - -#endif /* !_RMD160_H_ */ diff --git a/trunk/ext/digest/rmd160/rmd160init.c b/trunk/ext/digest/rmd160/rmd160init.c deleted file mode 100644 index 763867df86..0000000000 --- a/trunk/ext/digest/rmd160/rmd160init.c +++ /dev/null @@ -1,40 +0,0 @@ -/* $RoughId: rmd160init.c,v 1.3 2001/07/13 20:00:43 knu Exp $ */ -/* $Id$ */ - -#include "digest.h" -#if defined(HAVE_OPENSSL_RIPEMD_H) -#include "rmd160ossl.h" -#else -#include "rmd160.h" -#endif - -static rb_digest_metadata_t rmd160 = { - RUBY_DIGEST_API_VERSION, - RMD160_DIGEST_LENGTH, - RMD160_BLOCK_LENGTH, - sizeof(RMD160_CTX), - (rb_digest_hash_init_func_t)RMD160_Init, - (rb_digest_hash_update_func_t)RMD160_Update, - (rb_digest_hash_finish_func_t)RMD160_Finish, -}; - -/* - * A class for calculating message digests using RIPEMD-160 - * cryptographic hash function, designed by Hans Dobbertin, Antoon - * Bosselaers, and Bart Preneel. - */ -void -Init_rmd160() -{ - VALUE mDigest, cDigest_Base, cDigest_RMD160; - - rb_require("digest"); - - mDigest = rb_path2class("Digest"); - cDigest_Base = rb_path2class("Digest::Base"); - - cDigest_RMD160 = rb_define_class_under(mDigest, "RMD160", cDigest_Base); - - rb_ivar_set(cDigest_RMD160, rb_intern("metadata"), - Data_Wrap_Struct(rb_cObject, 0, 0, &rmd160)); -} diff --git a/trunk/ext/digest/rmd160/rmd160ossl.c b/trunk/ext/digest/rmd160/rmd160ossl.c deleted file mode 100644 index f24e63e3d8..0000000000 --- a/trunk/ext/digest/rmd160/rmd160ossl.c +++ /dev/null @@ -1,8 +0,0 @@ -/* $Id$ */ - -#include "defs.h" -#include "rmd160ossl.h" - -void RMD160_Finish(RMD160_CTX *ctx, char *buf) { - RIPEMD160_Final((unsigned char *)buf, ctx); -} diff --git a/trunk/ext/digest/rmd160/rmd160ossl.h b/trunk/ext/digest/rmd160/rmd160ossl.h deleted file mode 100644 index 3df38a01c0..0000000000 --- a/trunk/ext/digest/rmd160/rmd160ossl.h +++ /dev/null @@ -1,19 +0,0 @@ -/* $Id$ */ - -#ifndef RMD160OSSL_H_INCLUDED -#define RMD160OSSL_H_INCLUDED - -#include <stddef.h> -#include <openssl/ripemd.h> - -#define RMD160_CTX RIPEMD160_CTX - -#define RMD160_Init RIPEMD160_Init -#define RMD160_Update RIPEMD160_Update - -#define RMD160_BLOCK_LENGTH RIPEMD160_CBLOCK -#define RMD160_DIGEST_LENGTH RIPEMD160_DIGEST_LENGTH - -void RMD160_Finish(RMD160_CTX *ctx, char *buf); - -#endif |