class Analyzers::CbcMac::VariableLength::Oracles::Tcp
Public Class Methods
new(mac_host = '54.165.60.84', mac_port = 81, verify_host = '54.165.60.84', verify_port = 82)
click to toggle source
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 8 def initialize(mac_host = '54.165.60.84', mac_port = 81, verify_host = '54.165.60.84', verify_port = 82) @mac_host = mac_host @mac_port = mac_port @verify_host = verify_host @verify_port = verify_port @mac_socket = nil @verify_socket = nil end
Public Instance Methods
connect()
click to toggle source
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 16 def connect @mac_socket = TCPSocket.open(@mac_host,@mac_port) @verify_socket = TCPSocket.open(@verify_host,@verify_port) #puts "Connected to server successfully." end
disconnect()
click to toggle source
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 21 def disconnect @verify_socket.close if @verfiy_socket @mac_socket.close if @mac_socket end
mac(message)
click to toggle source
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 26 def mac(message) connect unless @mac_socket packet = assemble_mac_message(message) @mac_socket.write(packet) @mac_socket.read(16) end
verify(message,tag)
click to toggle source
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 34 def verify(message,tag) connect unless @verify_socket packet = assemble_verify_message(message,tag) @verify_socket.write(packet) @verify_socket.read(2).to_i end
Private Instance Methods
assemble_mac_message(message)
click to toggle source
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 51 def assemble_mac_message(message) ( message.length.to_crypt_buffer + message + [0] ).str end
assemble_verify_message(message,tag)
click to toggle source
Message-length + message-chars + tag-chars + 0 NOTE: check why chars instead of bytes.map does not work here
# File lib/crypto-toolbox/analyzers/cbc_mac/variable_length/oracles/tcp.rb, line 47 def assemble_verify_message(message,tag) (message.length.to_crypt_buffer + message + tag.split("") + [0] ).str end