Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > New AES gem available -- fast-aes

Reply
Thread Tools

New AES gem available -- fast-aes

 
 
Nate Wiger
Guest
Posts: n/a
 
      01-20-2010
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
for many years. I created this gem because other AES implementations
didn't even run, or were buggy, or performed poorly, or all of the
above.

To install:

gem install fast-aes

Usage is very easy and docs are available here:

http://github.com/nateware/fast-aes

Enjoy,

Nate Wiger
 
Reply With Quote
 
 
 
 
Pål Bergström
Guest
Posts: n/a
 
      07-01-2010
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/.

 
Reply With Quote
 
 
 
 
Josh Cheek
Guest
Posts: n/a
 
      07-01-2010
2010/7/1 P=E5l Bergstr=F6m <(E-Mail Removed)>

> 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 =3D String.new , Array.new

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

pp results




Definitively (fast_aes.c), still yes:

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

 
Reply With Quote
 
Pål Bergström
Guest
Posts: n/a
 
      07-01-2010
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/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
New version 2.5.0 of IBM_DB gem now available Praveen Ruby 0 05-12-2010 08:33 AM
New version 1.5.0 of the ibm_db gem is now available Praveen Ruby 0 08-21-2009 01:55 PM
New gem available: rmb-rails explainer Ruby 0 07-27-2009 07:43 PM
WPA AES & WPA2 AES max Wireless Networking 3 02-14-2007 03:14 PM
RubyGems 0.9.1 calling a gem with gem '<gem>' Austin 7873 Ruby 5 01-27-2007 10:05 PM



Advertisments