Class: TTTLS13::SequenceNumber

Inherits:
Object
  • Object
show all
Defined in:
lib/tttls1.3/sequence_number.rb

Instance Method Summary collapse

Constructor Details

#initializeSequenceNumber

Returns a new instance of SequenceNumber.



7
8
9
# File 'lib/tttls1.3/sequence_number.rb', line 7

def initialize
  @seq_num = 0
end

Instance Method Details

#next?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/tttls1.3/sequence_number.rb', line 27

def next?
  @seq_num < 2**64 - 1
end

#succObject



22
23
24
# File 'lib/tttls1.3/sequence_number.rb', line 22

def succ
  @seq_num += 1
end

#xor(str, iv_len) ⇒ String

Parameters:

  • str (String)
  • iv_len (Integer)

Returns:

  • (String)


15
16
17
18
19
20
# File 'lib/tttls1.3/sequence_number.rb', line 15

def xor(str, iv_len)
  l = @seq_num.to_uint64.unpack('C*')
  l.unshift(0) while l.length < iv_len
  r = str.unpack('C*')
  l.zip(r).map { |x, y| (x ^ y).chr }.join
end