Directory ext/md5/

Directory Created:
1998-01-16 13:13
Directory Deleted:
2001-07-13 21:06
Total Files:
Deleted Files:
Lines of Code:

Browse with ViewVC


Lines of Code

ext/md5/ Lines of Code


Author Changes Lines of Code Lines per Change
Totals 44 (100.0%) 943 (100.0%) 21.4
matz 26 (59.1%) 906 (96.1%) 34.8
knu 17 (38.6%) 37 (3.9%) 2.1
eban 1 (2.3%) 0 (0.0%) 0.0

Most Recent Commits

knu 2001-07-13 21:06

Import the "digest" module and the submodules, from the Rough Ruby



This module provides the module Digest and the abstract class


ext/digest/md5 (which obsoletes ext/md5):

This module provides the class Digest::MD5 which implements the

MD5 Message-Digest Algorithm.


This module provides the class Digest::RMD160 which implements the

RIPEMD-160 cryptographic hash function.

ext/digest/sha1 (which obsoletes ext/sha1):

This module provides the class Digest::SHA1 which implements the

SHA-1 Secure Hash Algorithm.


This module provides the classes Digest::SHA256, Digest::SHA384

and Digest::SHA512 which implement the SHA-256, SHA-384 and

SHA-512 Secure Hash Algorithms, respectively.

lib/md5.rb, lib/sha1.rb:

These files are provided for backward compatibility.

All these classes have the common API, which previously ext/md5 and

ext/sha1 modules provided. While the new API keeps 100% backward

compatibility, it has been enriched with several utility methods.

Read digest.txt for further details.

0 lines of code changed in:

knu 2001-05-24 17:00

* ext/sha1/sha1-ruby.c (md5i_new): separate initialize() from


* ext/md5/md5init.c (sha1_new): ditto.

18 lines of code changed in:

knu 2001-05-16 23:28

* ext/md5/, ext/sha1/ s/SuperClass/Superclass/.

1 lines of code changed in:

knu 2001-05-16 23:19

* ext/sha1/ add the Japanese version derived from


* ext/sha1/sha1.txt: revise the copyright info and reduce the

difference from ext/md5/md5.txt.

* ext/md5/md5.txt: reduce the difference from ext/sha1/sha1.txt.

1 lines of code changed in:

knu 2001-05-16 22:34

* ext/md5/md5.txt: make wording fixes, and mention the newly added

method: "<<".

* ext/md5/ ditto.

17 lines of code changed in:

knu 2001-05-16 22:16

(This is a forced commit to put the log entry for the previous commit)

* ext/md5/md5init.c: add an instance method "<<" as an alias for

"update". (inspired by Steve Coltrin's ruby-sha1)

0 lines of code changed in:

matz 2001-05-16 10:05

* array.c (rb_ary_and): should not push frozen key string.

* array.c (rb_ary_or): ditto.

* eval.c (rb_thread_schedule): should save context before raising

deadlock, saved context for current thread might be obsolete.

* time.c (make_time_t): non DST timezone shift supported (hopefully).

* time.c (make_time_t): strict range detection for negative time_t.

* signal.c: SIGINFO added.

* eval.c (rb_ensure): should not SEGV when prot_tag is NULL.

1 lines of code changed in:

matz 2001-05-02 05:22

* eval.c (block_pass): should not downgrade safe level.

* ext/dbm/extconf.rb: allow specifying dbm-type explicitly.

* ext/dbm/extconf.rb: avoid gdbm if possible, because it leaks

memory, whereas doesn't. potential incompatibility.

* string.c (rb_str_insert): new method.

* parse.y (yylex): lex_state after RESCUE_MOD should be EXPR_BEG.

* array.c (rb_ary_insert): new method.

* array.c (rb_ary_update): new utility function.

* io.c (set_outfile): should check if closed before assignment.

* eval.c (rb_eval): should preserve value of ruby_errinfo.

* eval.c (rb_thread_schedule): infinite sleep should not cause

dead lock.

* array.c (rb_ary_flatten_bang): proper recursive detection.

* eval.c (yield_under): need not to prohibit at safe level 4.

* pack.c (pack_pack): p/P packs nil into NULL.

* pack.c (pack_unpack): p/P unpacks NULL into nil.

* pack.c (pack_pack): size check for P template.

* ruby.c (set_arg0): wrong predicate when new $0 value is bigger

than original space.

* gc.c (id2ref): should use NUM2ULONG()

* object.c (rb_mod_const_get): check whether name is a class

variable name.

* object.c (rb_mod_const_set): ditto.

* object.c (rb_mod_const_defined): ditto.

* marshal.c (w_float): precision changed to "%.16g"

* eval.c (rb_call0): wrong retry behavior.

* numeric.c (fix_aref): a bug on long>int architecture.

* eval.c (rb_eval_string_wrap): should restore ruby_wrapper.

* regex.c (re_compile_pattern): char class at either edge of range

should be invalid.

* eval.c (handle_rescue): use === to compare exception match.

* error.c (syserr_eqq): comparison between SytemCallErrors should

based on their error numbers.

* eval.c (safe_getter): should use INT2NUM().

* bignum.c (rb_big2long): 2**31 cannot fit in 31 bit long.

* regex.c (calculate_must_string): wrong length calculation.

* eval.c (rb_thread_start_0): fixed memory leak.

* parse.y (none): should clear cmdarg_stack too.

* io.c (rb_fopen): use setvbuf() to avoid recursive malloc() on

some platforms.

* file.c (rb_stat_dev): device functions should honor stat field

types (except long long such as dev_t).

* eval.c (rb_mod_nesting): should not push nil for nesting array.

* eval.c (rb_mod_s_constants): should not search array by

rb_mod_const_at() for nil (happens for singleton class).

* class.c (rb_singleton_class_attached): should modify iv_tbl by

itself, no longer use rb_iv_set() to avoid freeze check error.

* variable.c (rb_const_get): error message "uninitialized constant

Foo at Bar::Baz" instead of "uninitialized constantBar::Baz::Foo".

* eval.c (rb_mod_included): new hook called from rb_mod_include().

* io.c (opt_i_set): should strdup() inplace_edit string.

* eval.c (exec_under): need to push cref too.

* eval.c (rb_f_missing): raise NameError for "undefined local

variable or method".

* error.c (Init_Exception): new exception NoMethodError.

NameError moved under ScriptError again.

* eval.c (rb_f_missing): use NoMethodError instead of NameError.

* file.c (Init_File): should redifine "new" class method.

* eval.c (PUSH_CREF): sharing cref node was problematic. maintain

runtime cref list instead.

* eval.c (rb_eval): copy defn node before registering.

* eval.c (rb_load): clear ruby_cref before loading.

* variable.c (rb_const_get): no recursion to show full class path

for modules.

* eval.c (rb_set_safe_level): should set safe level in curr_thread

as well.

* eval.c (safe_setter): ditto.

* object.c (rb_obj_is_instance_of): nil belongs to false, not true.

* time.c (make_time_t): proper (I hope) daylight saving time

handling for both US and Europe. I HATE DST!

* eval.c (rb_thread_wait_for): non blocked signal interrupt should

stop the interval.

* eval.c (proc_eq): class check aded.

* eval.c (proc_eq): typo fixed ("return" was ommitted).

* error.c (Init_Exception): move NameError under StandardError.

* class.c (rb_mod_clone): should copy method bodies too.

* bignum.c (bigdivrem): should trim trailing zero bdigits of

remainder, even if dd == 0.

* file.c (check3rdbyte): safe string check moved here.

* time.c (make_time_t): remove HAVE_TM_ZONE code since it

sometimes reports wrong time.

* time.c (make_time_t): remove unnecessary range check for

platforms where negative time_t is available.

* process.c (proc_waitall): should push Process::Status instead of

Finuxm status.

* process.c (waitall_each): should add all entries in pid_tbl.

these changes are inspired by Koji Arai. Thanks.

* process.c (proc_wait): should not iterate if pid_tbl is 0.

* process.c (proc_waitall): ditto.

* numeric.c (flodivmod): a bug in no fmod case.

* process.c (pst_wifsignaled): should apply WIFSIGNALED for status

(int), not st (VALUE).

* io.c (Init_IO): value of $/ and $\ are no longer restricted to

strings. type checks are done on demand.

* class.c (rb_include_module): module inclusion should be check


* ruby.h (STR2CSTR): replace to StringType() and StringTypePtr().

* ruby.h (rb_str2cstr): ditto.

* eval.c (rb_load): should not copy topleve local variables. It

cause variable/method ambiguity. Thanks to L. Peter Deutsch.

* class.c (rb_include_module): freeze check at first.

* eval.c (rb_attr): sprintf() and rb_intern() moved into

conditional body.

5 lines of code changed in:

eban 2001-03-26 10:27

* ext/md5/md5init.c (md5i_new): remove rb_scan_args().

0 lines of code changed in:

matz 2001-03-26 09:57

* eval.c: remove TMP_PROTECT_END to prevent C_ALLOCA crash.

* file.c (rb_file_flock): do not trap EINTR.

* missing/flock.c (flock): returns the value from lockf(2)


* eval.c (ev_const_defined): should ignore toplevel cbase (Object).

* eval.c (ev_const_get): ditto.

* ext/md5/md5.h: replace by independent md5 implementation

contributed by L. Peter Deutsch (thanks).

* ext/md5/md5init.c: adopted to Deutsch's md5 implementation.

* pack.c (pack_unpack): string from P/p should be tainted.

* ext/curses/curses.c: curses on Mac OS X public beta does not

have _maxx etc.

* marshal.c (w_object): should truncate trailing zero short for


* object.c (sym_intern): new method.

468 lines of code changed in:

matz 2001-02-14 06:52

* dir.c (dir_s_glob): supprt backslash escape of metacharacters

and delimiters.

* dir.c (remove_backslases): remove backslashes from path before

calling stat(2).

* dir.c (dir_s_glob): call rb_yield directly (via push_pattern) if

block is given to the method.

* dir.c (push_pattern): do not call rb_ary_push; yield directly.

* eval.c (blk_copy_prev): reduced ALLOC_N too much.

* eval.c (frame_dup): ditto.

1 lines of code changed in:

knu 2001-01-09 18:11

Add .cvsignore's.

0 lines of code changed in:

matz 2000-07-24 08:19


1 lines of code changed in:

matz 2000-06-22 09:29


23 lines of code changed in:

matz 2000-05-24 05:34


1 lines of code changed in:

matz 2000-05-15 07:38


0 lines of code changed in:

matz 2000-05-12 10:07


1 lines of code changed in:

matz 2000-03-06 05:15


0 lines of code changed in:

matz 1999-08-13 06:37

remove marshal/gtk/kconv

27 lines of code changed in:

matz 1999-01-20 05:59

This commit was generated by cvs2svn to compensate for changes in r372,

which included commits to RCS files with non-trunk default branches.

9 lines of code changed in:

(2 more)

Generated by StatSVN 0.3.2-SNAPSHOT