Parent

Digest::HMAC

Public Class Methods

new(key, digester) click to toggle source
    # 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

Public Instance Methods

<<(text) click to toggle source
Alias for: update
block_length() click to toggle source
    # File lib/digest/hmac.rb, line 95
95:       def block_length
96:         @md.block_length
97:       end
digest_length() click to toggle source
    # File lib/digest/hmac.rb, line 91
91:       def digest_length
92:         @md.digest_length
93:       end
initialize_copy(other) click to toggle source
    # File lib/digest/hmac.rb, line 67
67:       def initialize_copy(other)
68:         @md = other.instance_eval { @md.clone }
69:       end
inspect() click to toggle source
     # 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
reset() click to toggle source
    # File lib/digest/hmac.rb, line 77
77:       def reset
78:         @md.reset
79:         @md.update(@ipad)
80:         self
81:       end
update(text) click to toggle source
    # File lib/digest/hmac.rb, line 71
71:       def update(text)
72:         @md.update(text)
73:         self
74:       end
Also aliased as: <<

Private Instance Methods

finish() click to toggle source
    # File lib/digest/hmac.rb, line 83
83:       def finish
84:         d = @md.digest!
85:         @md.update(@opad)
86:         @md.update(d)
87:         @md.digest!
88:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.