From: Pål Bergström on
Nate Wiger wrote:
> I've just released a new AES gem for Ruby, written in C for speed.
> This gem leverages some open source AES C code that has been in use

Great. Hopefully what I've been looking for.

I've been using Encryptor.encrypt(:value => string , :key => key,
:algorithm => 'aes-128-cbc') in a module created on my own. Is your gem
faster?

I should add that I don't fully understand this thing with encryption
and the terminology. Could you explain a bit the key length and 128 bit?
Is it always the length as in your example?


--
Posted via http://www.ruby-forum.com/.

From: Josh Cheek on
2010/7/1 Pål Bergström <pal(a)palbergstrom.com>

> I should add that I don't fully understand this thing with encryption
> and the terminology. Could you explain a bit the key length and 128 bit?
> Is it always the length as in your example?
>
>
Empirically yes:

require 'rubygems'
require 'fast-aes'
require 'pp'

key , results = String.new , Array.new

for char in [*'a'..'z'] + [*'A'..'H']
results << begin
FastAES.new key and "Valid: #{key}"
rescue => error
error
end
key << char
end

pp results




Definitively (fast_aes.c), still yes:

key_bits = strlen(key_data)*8;
switch(key_bits)
{
case 128:
case 192:
case 256:
fast_aes->key_bits = key_bits;
memcpy(fast_aes->key, key_data, key_bits/8);
/*printf("AES key=%s, bits=%d\n", fast_aes->key,
fast_aes->key_bits);*/
break;
default:
sprintf(error_mesg, "AES key must be 128, 192, or 256 bits in length
(got %d): %s", key_bits, key_data);
rb_raise(rb_eArgError, error_mesg);
return Qnil;
}

From: Pål Bergström on
Josh Cheek wrote:


> Definitively (fast_aes.c), still yes:

And for saving it in mysql, how do I translate it from binary (?)
"garbage" characters (is that how you explain it) to a string? I use
Base64.b64encode(fast_aes_string) now. Is there a faster way?

--
Posted via http://www.ruby-forum.com/.