mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/digest/lib/digest/hmac.rb: Complete half-boiled updates.
* ext/digest/sha2/lib/digest/sha2.rb: Fix #initialize_clone(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b2c7fe1bbf
commit
670887f5f6
3 changed files with 16 additions and 9 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Fri Oct 20 22:00:43 2006 Akinori MUSHA <knu@iDaemons.org>
|
||||||
|
|
||||||
|
* ext/digest/lib/digest/hmac.rb: Complete half-boiled updates.
|
||||||
|
|
||||||
|
* ext/digest/sha2/lib/digest/sha2.rb: Fix #initialize_clone().
|
||||||
|
|
||||||
Fri Oct 20 20:28:37 2006 Akinori MUSHA <knu@iDaemons.org>
|
Fri Oct 20 20:28:37 2006 Akinori MUSHA <knu@iDaemons.org>
|
||||||
|
|
||||||
* ext/digest: Prefix C constants with RUBY_ and C type names with
|
* ext/digest: Prefix C constants with RUBY_ and C type names with
|
||||||
|
|
|
@ -63,22 +63,23 @@ module Digest
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize_copy(other)
|
def initialize_copy(other)
|
||||||
@md = @md.new
|
@md = other.instance_eval { @md.clone }
|
||||||
end
|
end
|
||||||
|
|
||||||
def update(text)
|
def update(text)
|
||||||
@md.reset.update(@opad + @md.digest(@ipad + text))
|
@md.reset.update(@opad + @md.digest(@ipad + text))
|
||||||
|
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
def reset
|
def reset
|
||||||
@md.reset
|
@md.reset
|
||||||
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
def digest
|
def finish
|
||||||
@md.digest
|
@md.digest!
|
||||||
end
|
end
|
||||||
|
private :finish
|
||||||
|
|
||||||
def digest_length
|
def digest_length
|
||||||
@md.digest_length
|
@md.digest_length
|
||||||
|
@ -89,7 +90,7 @@ module Digest
|
||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
sprintf('#<%s: key=%s, digest=%s: %s>', self.class.name, @key.inspect, @tmp_md.reset.inspect, hexdigest());
|
sprintf('#<%s: key=%s, digest=%s>', self.class.name, @key.inspect, @md.inspect.sub(/^\#<(.*)>$/) { $1 });
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -105,7 +106,7 @@ require 'test/unit'
|
||||||
module TM_HMAC
|
module TM_HMAC
|
||||||
def test_s_hexdigest
|
def test_s_hexdigest
|
||||||
cases.each { |h|
|
cases.each { |h|
|
||||||
digesters { |d|
|
digesters.each { |d|
|
||||||
assert_equal(h[:hexdigest], Digest::HMAC.hexdigest(h[:data], h[:key], d))
|
assert_equal(h[:hexdigest], Digest::HMAC.hexdigest(h[:data], h[:key], d))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,7 +114,7 @@ module TM_HMAC
|
||||||
|
|
||||||
def test_hexdigest
|
def test_hexdigest
|
||||||
cases.each { |h|
|
cases.each { |h|
|
||||||
digesters { |d|
|
digesters.each { |d|
|
||||||
hmac = Digest::HMAC.new(h[:key], d)
|
hmac = Digest::HMAC.new(h[:key], d)
|
||||||
|
|
||||||
hmac.update(h[:data])
|
hmac.update(h[:data])
|
||||||
|
@ -125,7 +126,7 @@ module TM_HMAC
|
||||||
|
|
||||||
def test_reset
|
def test_reset
|
||||||
cases.each { |h|
|
cases.each { |h|
|
||||||
digesters { |d|
|
digesters.each { |d|
|
||||||
hmac = Digest::HMAC.new(h[:key], d)
|
hmac = Digest::HMAC.new(h[:key], d)
|
||||||
hmac.update("test")
|
hmac.update("test")
|
||||||
hmac.reset
|
hmac.reset
|
||||||
|
|
|
@ -62,7 +62,7 @@ module Digest
|
||||||
|
|
||||||
# :nodoc:
|
# :nodoc:
|
||||||
def initialize_copy(other)
|
def initialize_copy(other)
|
||||||
@sha2 = @sha2.clone
|
@sha2 = other.instance_eval { @sha2.clone }
|
||||||
end
|
end
|
||||||
|
|
||||||
# :nodoc:
|
# :nodoc:
|
||||||
|
|
Loading…
Reference in a new issue