Digest::Class
# File lib/digest/hmac.rb, line 44
44: def initialize(key, digester)
45: @md = digester.new
46:
47: block_len = @md.block_length
48:
49: if key.bytesize > block_len
50: key = @md.digest(key)
51: end
52:
53: ipad = Array.new(block_len).fill(0x36)
54: opad = Array.new(block_len).fill(0x5c)
55:
56: key.bytes.each_with_index { |c, i|
57: ipad[i] ^= c
58: opad[i] ^= c
59: }
60:
61: @key = key.freeze
62: @ipad = ipad.inject('') { |s, c| s << c.chr }.freeze
63: @opad = opad.inject('') { |s, c| s << c.chr }.freeze
64: @md.update(@ipad)
65: end
# File lib/digest/hmac.rb, line 95
95: def block_length
96: @md.block_length
97: end
# File lib/digest/hmac.rb, line 91
91: def digest_length
92: @md.digest_length
93: end
# File lib/digest/hmac.rb, line 67
67: def initialize_copy(other)
68: @md = other.instance_eval { @md.clone }
69: end
# File lib/digest/hmac.rb, line 99
99: def inspect
100: sprintf('#<%s: key=%s, digest=%s>', self.class.name, @key.inspect, @md.inspect.sub(/^\#<(.*)>$/) { $1 });
101: end
# File lib/digest/hmac.rb, line 77
77: def reset
78: @md.reset
79: @md.update(@ipad)
80: self
81: end
# File lib/digest/hmac.rb, line 71
71: def update(text)
72: @md.update(text)
73: self
74: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.