[#395238] rubygem: ispunity (unite all your internet connections) — Arun Tomar <tomar.arun@...>

Dear friends,

12 messages 2012/05/01

[#395250] Overwriting one Ruby array or arrays with another — Craig Law <lists@...>

Hi

14 messages 2012/05/02

[#395258] array of strings - finding letter combinations — "Sebastjan H." <lists@...>

Hi All,

16 messages 2012/05/02

[#395357] Why Enumerator#next does not return more than one value? — Földes László <lists@...>

If I have an Enumerator which yields elements of a mathematical series

10 messages 2012/05/07

[#395373] How to use Data_Wrap_Struct to assign the DATA VALUE to an exsiting Ruby object? — Iñaki Baz Castillo <ibc@...>

Hi, my code receives an arbitrary klass name (provided by the user)

8 messages 2012/05/07

[#395429] passing via instance variable or regular () — sam jam <lists@...>

def first

10 messages 2012/05/10

[#395463] I'm looking for a Metaprogramming Project — Phil Stone <lists@...>

Hello,

19 messages 2012/05/11

[#395548] A million reasons why Encoding was a mistake — Marc Heiler <lists@...>

Newcomer wants to try Ruby.

15 messages 2012/05/15
[#395561] Re: A million reasons why Encoding was a mistake — Ryan Davis <ryand-ruby@...> 2012/05/15

[#395595] Re: A million reasons why Encoding was a mistake — Brian Candler <lists@...> 2012/05/16

I will add that the OP is not entirely alone in his opinion.

[#395551] How to ensure that a block runs entirely after other threads? (Thread.exclusive does not "work") — Iñaki Baz Castillo <ibc@...>

Hi, I expected that in the following example code, thread t1 would not

8 messages 2012/05/15

[#395575] GUI with ruby on windows — David Acosta <lists@...>

hello friends, i am a begginer and i have a litlle question, how can i

17 messages 2012/05/16

[#395604] what is going wrong here? — roob noob <lists@...>

Notice the initialization of both classes in each of the examples, if

20 messages 2012/05/16

[#395646] rb_gc_register_address() or rb_gc_mark()? — Iñaki Baz Castillo <ibc@...>

Hi, I've bad experiences with rb_gc_register_address(), it does never

16 messages 2012/05/17

[#395686] reading from and writing to a Unicode encoded file — "Sebastjan H." <lists@...>

Hi,

19 messages 2012/05/18
[#395694] Re: reading from and writing to a Unicode encoded file — Regis d'Aubarede <lists@...> 2012/05/18

Hello,

[#395697] Re: reading from and writing to a Unicode encoded file — "Sebastjan H." <lists@...> 2012/05/18

Regis d'Aubarede wrote in post #1061272:

[#395698] Re: reading from and writing to a Unicode encoded file — Regis d'Aubarede <lists@...> 2012/05/18

Sebastjan H. wrote in post #1061276:

[#395699] Re: reading from and writing to a Unicode encoded file — "Sebastjan H." <lists@...> 2012/05/18

Regis d'Aubarede wrote in post #1061277:

[#395750] Re: reading from and writing to a Unicode encoded file - issues when using Shoes — "Sebastjan H." <lists@...> 2012/05/21

Hi,

[#395754] Re: reading from and writing to a Unicode encoded file - issues when using Shoes — "Sebastjan H." <lists@...> 2012/05/21

Sebastjan H. wrote in post #1061483:

[#395740] ? Ruby through CGI and Rails — Shaun Lloyd <list@...>

Hi everybody,

22 messages 2012/05/21
[#395764] Re: Ruby through CGI and Rails — Brian Candler <lists@...> 2012/05/21

Shaun Lloyd wrote in post #1061455:

[#395786] Re: Ruby through CGI and Rails — Shaun Lloyd <list@...> 2012/05/22

On 22/05/12 03:37, Brian Candler wrote:

[#395838] Re: Ruby through CGI and Rails — Brian Candler <lists@...> 2012/05/23

Shaun Lloyd wrote in post #1061602:

[#395787] Changing self class from inside a method?? — David Madison <lists@...>

Let's start off with the assumption I want a method that allows an

10 messages 2012/05/22

[#395841] Memory-efficient set of Fixnums — George Dupre <lists@...>

Hi,

25 messages 2012/05/23

[#395883] looking for a ruby idiom : r=foo; return r if r — botp <botpena@...>

Hi All,

11 messages 2012/05/24

[#395966] Am I justified to use a global variable if it must be used in all scopes? — Phil Stone <lists@...>

Hello,

12 messages 2012/05/27

[#396010] does this leak more than the size of the string via timing side channels — rooby shoez <lists@...>

string1 = "string"

16 messages 2012/05/29

[#396038] Is it possible to avoid longjmp in exceptions, Thread#kill, exit(), signals? — Iñaki Baz Castillo <ibc@...>

Hi, my Ruby C extension runs a C loop (libuv) without GVL. At some

8 messages 2012/05/29

Re: ruby openssl bug, reset cipher fails

From: Martin Bo煬et <martin.bosslet@...>
Date: 2012-05-17 01:18:56 UTC
List: ruby-talk #395627
2012/5/17 roob noob <lists@ruby-forum.com>:
> This is mentioned in this thread
> http://www.ruby-forum.com/topic/4293246#1061067 =C2=A0but I thought it wa=
s a
> different problem then so the thread isn't named correctly. Hopefully
> this will get the attention of people interested more in OpenSSL than in
> helping noobs understand initialize.
>
>
> ruby 1.9.3p125 [x86_64-linux]
>
>
> irb(main):001:0> require 'openssl'
> =3D> true
> irb(main):002:0> message =3D "whatever"
> =3D> "whatever"
> irb(main):003:0> @sha256 =3D OpenSSL::Digest::SHA256.new
> =3D> #<OpenSSL::Digest::SHA256:
> e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
> irb(main):004:0> @cipher =3D OpenSSL::Cipher::Cipher.new("AES-256-CTR")
> =3D> #<OpenSSL::Cipher::Cipher:0x00000002467830>
> irb(main):005:0> 2.times do
> irb(main):006:1* key =3D @sha256.digest("whatever")
> irb(main):007:1> @sha256.reset
> irb(main):008:1> @cipher.encrypt
> irb(main):009:1> @cipher.key =3D key
> irb(main):010:1> ciphertext =3D @cipher.update(message)
> irb(main):011:1> ciphertext << @cipher.final
> irb(main):012:1> @cipher.reset
> irb(main):013:1> puts ciphertext
> irb(main):014:1> end
> =EF=BF=BDa=EF=BF=BDxtT=EF=BF=BD=EF=BF=BD
> 9]K=EF=BF=BD=EF=BF=BD=EF=BF=BD/
> =3D> 2
>
> --
> Posted via http://www.ruby-forum.com/.

Hi,

this is not a bug and Cipher#reset is working fine. What's "going
wrong" here is that you also have to take the IV into account when
trying to reproduce a certain ciphertext. In fact, you don't even need
to call #reset explicitly, #encrypt implies the same functionality
already. Let me explain:

require 'openssl'

message =3D "whatever"
sha256 =3D OpenSSL::Digest::SHA256.new
cipher =3D OpenSSL::Cipher::Cipher.new("AES-256-CTR")
iv =3D "0" * 32 # you shouldn't do this of course, see my remarks below

2.times do
  key =3D sha256.digest("whatever")
  sha256.reset
  cipher.encrypt
  cipher.key =3D key
  cipher.iv =3D iv
  ciphertext =3D cipher.update(message)
  ciphertext << cipher.final
  #cipher.reset
  puts ciphertext #will reproduce the same ciphertext twice
end

Of course, it's bad practice to choose a deterministic IV like that,
it was just for demonstration. Generally, you should prefer to use
#random_iv and #random_key in production code as outlined in
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/Cipher.htm=
l.
Hope that clarifies the issue?

-Martin

In This Thread