From: "David D." Date: 2013-05-24T07:43:10+09:00 Subject: Re: why first 16 bytes are wrong with ruby openssl aes 128 cbc ? I'm sorry for my late. Thank Ryan. I'm sorry but auth_tag doesn't exist for ruby 1.8.7. For be clear a exemple this : http://pastebin.com/nFgfyXem who is an encrypted file encode to base64. didier@laptop-E520:/tmp$ pbget "http://pastebin.com/p08QTXru" | base64 -d > file_enc didier@laptop-E520:/tmp$ md5sum file_enc 30b8f5e7d700c108cd9815c00ca1de2d file_enc pbget is this http://pastebin.com/fXsuA9bn a bash program for pastebin. decrypte the file : didier@laptop-E520:/tmp/ruby_forum$ openssl aes-128-cbc -d -in file_enc -out pic_bash.jpg -nosalt -iv 00000000000000000000000000000001 -K 7ffb8032dff33aef9aa92e9ac96239d3 ruby code : require 'openssl' c = OpenSSL::Cipher::Cipher.new("aes-128-cbc") c.decrypt c.key = "\177\373\2002\337\363:\357\232\251.\232\311b9\323" c.iv = "00000000000000000000000000000001" data = File.read("/tmp/file_enc") d = c.update(data) d << c.final file = File.open("/tmp/file_decrypt_ruby", "w") file.write(d) file.close didier@laptop-E520:/tmp/ruby_forum$ hd pic_bash.jpg | head 00000000 ff d8 ff e1 22 d2 45 78 69 66 00 00 4d 4d 00 2a |....".Exif..MM.*| 00000010 00 00 00 08 00 0c 01 1a 00 05 00 00 00 01 00 00 |................| 00000020 01 46 01 1b 00 05 00 00 00 01 00 00 01 4e 01 28 |.F...........N.(| 00000030 00 03 00 00 00 01 00 02 00 00 02 13 00 03 00 00 |................| 00000040 00 01 00 01 00 00 87 69 00 04 00 00 00 01 00 00 |.......i........| 00000050 00 9e 01 3b 00 02 00 00 00 0d 00 00 01 56 01 0e |...;.........V..| 00000060 00 02 00 00 00 13 00 00 01 64 01 32 00 02 00 00 |.........d.2....| 00000070 00 14 00 00 01 78 01 0f 00 02 00 00 00 06 00 00 |.....x..........| 00000080 01 8c 01 10 00 02 00 00 00 08 00 00 01 92 01 31 |...............1| 00000090 00 02 00 00 00 08 00 00 01 9a 01 12 00 03 00 00 |................| didier@laptop-E520:/tmp/ruby_forum$ hd file_decrypt_ruby | head 00000000 cf e8 cf d1 12 e2 75 48 59 56 30 30 7d 7d 30 1b |......uHYV00}}0.| 00000010 00 00 00 08 00 0c 01 1a 00 05 00 00 00 01 00 00 |................| 00000020 01 46 01 1b 00 05 00 00 00 01 00 00 01 4e 01 28 |.F...........N.(| 00000030 00 03 00 00 00 01 00 02 00 00 02 13 00 03 00 00 |................| 00000040 00 01 00 01 00 00 87 69 00 04 00 00 00 01 00 00 |.......i........| 00000050 00 9e 01 3b 00 02 00 00 00 0d 00 00 01 56 01 0e |...;.........V..| 00000060 00 02 00 00 00 13 00 00 01 64 01 32 00 02 00 00 |.........d.2....| 00000070 00 14 00 00 01 78 01 0f 00 02 00 00 00 06 00 00 |.....x..........| 00000080 01 8c 01 10 00 02 00 00 00 08 00 00 01 92 01 31 |...............1| 00000090 00 02 00 00 00 08 00 00 01 9a 01 12 00 03 00 00 |................| This is independent of key. Thank you. -- Posted via http://www.ruby-forum.com/.