lib/akero/benchmark.rb in akero-1.0.3 vs lib/akero/benchmark.rb in akero-1.0.4

- old
+ new

@@ -13,70 +13,70 @@ def b_size puts "Running size benchmark..." rnd = Random.new - msg_sizes = (8..13).map{|x| 2**x} - key_sizes = [2048, 4096] + msg_sizes = (8..14).map{|x| 2**x} + modes = [[2048, false], [2048, true]] results = {} - key_sizes.each do |ksize| - alice = Akero.new(ksize) - bob = Akero.new(ksize) + modes.each do |mode| + alice = Akero.new(mode[0]) + bob = Akero.new(mode[0]) msg_sizes.each do |msize| msg = rnd.bytes(msize) - ciphertext = alice.encrypt(bob.public_key, msg) - (results["ENCRYPT #{ksize} bits"] ||= []) << [msize, ciphertext.length / msg.length.to_f] + ciphertext = alice.encrypt(bob.public_key, msg, mode[1]) + (results["ENCRYPT #{mode[0]} bits #{mode[1] ? 'ascii_armor=1' : 'ascii_armor=0'}"] ||= []) << [msize, ciphertext.length / msg.length.to_f] end end plot('benchmark/bm_size.png', results, 'Message size overhead', 'Input size (bytes)', 'x') end def b_timing puts "Running timing benchmark..." - msg_sizes = (4..18).map{|x| 2**x} - key_sizes = [2048, 4096] + msg_sizes = (8..18).map{|x| 2**x} + modes = [[2048, false], [2048, true]] rnd = Random.new rounds = 50 results = [] - key_sizes.each do |ksize| - results << B.enchmark("ENCRYPT #{ksize} bits", :rounds => rounds, :compare => :mean) do - alice = Akero.new(ksize) - bob = Akero.new(ksize) + modes.each do |mode| + results << B.enchmark("ENCRYPT #{mode[0]} bits, ascii_armor=#{mode[1]?1:0}", :rounds => rounds, :compare => :mean) do + alice = Akero.new(mode[0]) + bob = Akero.new(mode[0]) msg_sizes.each_with_index do |msize, i| msg = rnd.bytes(msize) job "msg_size #{msize}" do - alice.encrypt(bob.public_key, msg) + alice.encrypt(bob.public_key, msg, mode[1]) end end end end - key_sizes.each do |ksize| - results << B.enchmark("SIGN #{ksize} bits", :rounds => rounds, :compare => :mean) do - alice = Akero.new(ksize) - bob = Akero.new(ksize) + modes.each do |mode| + results << B.enchmark("DECRYPT #{mode[0]} bits, ascii_armor=#{mode[1]?1:0}", :rounds => rounds, :compare => :mean) do + alice = Akero.new(mode[0]) + bob = Akero.new(mode[0]) msg_sizes.each_with_index do |msize, i| msg = rnd.bytes(msize) + msg = alice.encrypt(bob.public_key, msg, mode[1]) job "msg_size #{msize}" do - alice.sign(msg) + bob.receive(msg) end end end end - key_sizes.each do |ksize| - results << B.enchmark("DECRYPT #{ksize} bits", :rounds => rounds, :compare => :mean) do - alice = Akero.new(ksize) - bob = Akero.new(ksize) + modes.each do |mode| + results << B.enchmark("SIGN #{mode[0]} bits, ascii_armor=#{mode[1]?1:0}", :rounds => rounds, :compare => :mean) do + alice = Akero.new(mode[0]) + bob = Akero.new(mode[0]) msg_sizes.each_with_index do |msize, i| msg = rnd.bytes(msize) - msg = alice.encrypt(bob.public_key, msg) job "msg_size #{msize}" do - bob.receive(msg) + alice.sign(msg, mode[1]) end end end end