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.