Project

General

Profile

Actions

Bug #10633

closed

OpenSSL RangeError on update

Added by khoffmann (Kenneth Hoffmann) over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
ruby -v:
2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]
[ruby-core:67043]

Description

OpenSSL Cipher throws a RangeError on the update function when given a very large string. I've verified that it happens with a file of 2 or 3GB in size. 1 GB works fine. This has been tested with 2.1.2, 2.1.3, and 2.2rc-1.

require 'openssl'
cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
cipher.decrypt
cipher.iv = "fooooooooooooooooooooooooooooooooo"
cipher.key = "barrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
f = File.open("<path to a 2 GB file generated with dd>", "r")
contents = f.read;
cipher.update(contents)

Running this will return:

RangeError: integer 2147483648 too big to convert to `int'

File generated with dd:

dd if=/dev/zero of=2g.img bs=1 count=0 seek=2G
Actions

Also available in: Atom PDF