class Tor257::Key
Public Class Methods
new(s)
click to toggle source
Calls superclass method
# File lib/tor257/core.rb, line 28 def initialize s super(s) raise ArgumentError, "Key must be at least 32 bits strong" if size() < 4 end
Public Instance Methods
subkey(i)
click to toggle source
# File lib/tor257/core.rb, line 33 def subkey(i) # return self[i % self.size].bytes @koff = nil _subkey(i % self.size) end
Private Instance Methods
_subkey(i)
click to toggle source
# File lib/tor257/core.rb, line 40 def _subkey(i) raise ArgumentError unless i.is_a? Integer koff_update if i >= self.size @koff = nil return [] end i += @koff return [self.bytes[i % self.size]] + _subkey(i) # return self.bytes[i % self.size] end
koff_update()
click to toggle source
# File lib/tor257/core.rb, line 52 def koff_update case @koff when nil @koff = 0 when 0, 5 @koff = 2 when 2 @koff = 5 end end