[#56333] [CommonRuby - Feature #8723][Open] Array.any? predicate returns true for empty array. — "nurettin (Nurettin Onur TUGCU)" <onurtugcu@...>

12 messages 2013/08/02

[#56368] [ruby-trunk - Bug #8730][Open] "rescue Exception" rescues Timeout::ExitException — "takiuchi (Genki Takiuchi)" <genki@...21g.com>

15 messages 2013/08/04

[#56407] [ruby-trunk - misc #8741][Open] email notification on bugs.ruby-lang.org is broken — "rits (First Last)" <redmine@...>

18 messages 2013/08/05

[#56524] [ruby-trunk - Bug #8770][Open] [PATCH] process.c: avoid EINTR from Process.spawn — "normalperson (Eric Wong)" <normalperson@...>

19 messages 2013/08/10

[#56536] [ruby-trunk - Feature #8772][Open] Hash alias #| merge, and the case for Hash and Array polymorphism — "trans (Thomas Sawyer)" <redmine@...>

24 messages 2013/08/11

[#56544] [ruby-trunk - Bug #8774][Open] rb_file_dirname return wrong encoding string when dir is "." — jiayp@... (贾 延平) <jiayp@...>

10 messages 2013/08/11

[#56569] [ruby-trunk - Feature #8781][Open] Use require_relative() instead of require() if possible — "ko1 (Koichi Sasada)" <redmine@...>

31 messages 2013/08/12
[#56582] [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — "drbrain (Eric Hodel)" <drbrain@...7.net> 2013/08/12

[#56584] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — SASADA Koichi <ko1@...> 2013/08/12

(2013/08/13 2:25), drbrain (Eric Hodel) wrote:

[#56636] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — Aaron Patterson <tenderlove@...> 2013/08/16

On Tue, Aug 13, 2013 at 07:38:01AM +0900, SASADA Koichi wrote:

[#56634] [ruby-trunk - Feature #8788][Open] use eventfd on newer Linux instead of pipe for timer thread — "normalperson (Eric Wong)" <normalperson@...>

11 messages 2013/08/16

[#56648] [ruby-trunk - Bug #8795][Open] "Null byte in string error" on Marshal.load — "mml (McClain Looney)" <m@...>

17 messages 2013/08/16

[#56824] [ruby-trunk - Feature #8823][Open] Run trap handler in an independent thread called "Signal thread" — "ko1 (Koichi Sasada)" <redmine@...>

14 messages 2013/08/27

[#56878] [ruby-trunk - misc #8835][Open] Introducing a semantic versioning scheme and branching policy — "knu (Akinori MUSHA)" <knu@...>

11 messages 2013/08/30

[#56890] [ruby-trunk - Feature #8839][Open] Class and module should return the class or module that was opened — "headius (Charles Nutter)" <headius@...>

26 messages 2013/08/30

[#56894] [ruby-trunk - Feature #8840][Open] Yielder#state — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

14 messages 2013/08/30

[ruby-core:56377] [ruby-trunk - Bug #8720][Rejected] ECB mode seems to be broken

From: "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
Date: 2013-08-04 19:22:38 UTC
List: ruby-core #56377
Issue #8720 has been updated by MartinBosslet (Martin Bosslet).

Status changed from Open to Rejected
Assignee set to MartinBosslet (Martin Bosslet)

=begin
Hi Ben,
 
thanks for caring! But it's not really a bug of Ruby OpenSSL, the problem is that unfortunately the Cipher instance is stateful and it is important in which order you call #encrypt, #key= etc. In our defense, this is mentioned in the docs [1].
  
The example from the gist may be fixed like this:
    
 require 'openssl'
     
 # AES-128 ECB mode test vectors
 # Taken from: http://www.inconteam.com/software-development/41-encryption/55-aes-test-vectors#aes-ecb-128
 KEY        = ["2b7e151628aed2a6abf7158809cf4f3c"].pack("H*")
 PLAINTEXT  = ["6bc1bee22e409f96e93d7e117393172a"].pack("H*")
 CIPHERTEXT = ["3ad77bb40d7a3660a89ecaf32466ef97"].pack("H*")
 
 cipher = OpenSSL::Cipher::Cipher.new("aes-128-ecb")
 cipher.encrypt # call before assigning key
 cipher.key = KEY
 cipher.padding = 0 # Padding is enabled by default o_O
     
 print "Testing encryption: "
    
 ciphertext = cipher.update(PLAINTEXT) << cipher.final
    
 if ciphertext == CIPHERTEXT
   puts "OK!"
 else
   puts "FAILED! Got #{ciphertext.inspect} instead of #{CIPHERTEXT.inspect}"
 end
     
 print "Testing decryption: "
     
 cipher.reset
 cipher.decrypt # call before assigning key
 cipher.key = KEY # needs to be set again
   
 plaintext = cipher.update(CIPHERTEXT) << cipher.final
   
 if plaintext == PLAINTEXT
   puts "OK!"
 else
   puts "FAILED! Got #{plaintext.inspect} instead of #{PLAINTEXT.inspect}"
 end

[1] http://www.ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL/Cipher.html#method-i-encrypt
=end
----------------------------------------
Bug #8720: ECB mode seems to be broken
https://bugs.ruby-lang.org/issues/8720#change-40889

Author: netjunki (Ben Lau)
Status: Rejected
Priority: Normal
Assignee: MartinBosslet (Martin Bosslet)
Category: ext/openssl
Target version: 
ruby -v: ruby 2.0.0p283 (2013-07-28) [x86_64-darwin12.0.0]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


The reporting on this is partially from someone else's work that I found in a gist on github:
https://gist.github.com/tarcieri/5550786

But there appears to be some sort of issue with ECB mode. It works correctly in JRuby, which I assume is due to the fact that JRuby is using Java's underlying crypto libs instead of OpenSSL.

I've attached the test code from the gist. I've also included the output in the description here from my run with latest svn and the gist for reference:

Testing output:

$ /usr/local/bin/ruby --version; /usr/local/bin/ruby ecb_test.rb 
ruby 2.0.0p283 (2013-07-28) [x86_64-darwin12.0.0]
Testing encryption: FAILED! Got "\xCE\x9Dp\xDFL\xD0\x95\xC3\x13\x18+\xAC\x1D2\xE7\x15" instead of ":\xD7{\xB4\rz6`\xA8\x9E\xCA\xF3$f\xEF\x97"
Testing decryption: OK!

$ ruby --version; ruby ecb_test.rb
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]
Testing encryption: FAILED! Got "\xCE\x9Dp\xDFL\xD0\x95\xC3\x13\x18+\xAC\x1D2\xE7\x15" instead of ":\xD7{\xB4\rz6`\xA8\x9E\xCA\xF3$f\xEF\x97"
Testing decryption: OK!
 
$ ruby --version; ruby ecb_test.rb
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0]
Testing encryption: FAILED! Got "\xCE\x9Dp\xDFL\xD0\x95\xC3\x13\x18+\xAC\x1D2\xE7\x15" instead of ":\xD7{\xB4\rz6`\xA8\x9E\xCA\xF3$f\xEF\x97"
Testing decryption: OK!
 
$ ruby --version; ruby ecb_test.rb
jruby 1.7.2 (1.9.3p327) 2013-01-04 302c706 on Java HotSpot(TM) 64-Bit Server VM 1.7.0_21-b12 [darwin-x86_64]
Testing encryption: OK!
Testing decryption: OK!





-- 
http://bugs.ruby-lang.org/

In This Thread