Ruby 1.9.3是否支持OpenSSL模块中的AES-NI?

时间:2014-01-03 15:19:10

标签: ruby encryption openssl

我目前正在开发一个使用attr_encryptor gem进行大量加密的项目:https://rubygems.org/gems/attr_encryptor

attr_encryptor使用OpenSSL模块(http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL.html)。我使用的是Ruby 1.9.3p374。

我正在研究加速加密的方法。我使用OpenSSL命令行玩过AES-NI,速度非常快,我想尝试修改gem。

我搜索了Stack Overflow,Google和Ruby文档,我找不到任何对AES-NI支持的引用。有人知道任何有用的源代码或文档吗?

1 个答案:

答案 0 :(得分:1)

似乎Ruby 1.9.3 不支持支持AES-NI,但Ruby 2.0.0p247却支持AES-NI。 AES-NI将被列入第106行:

https://github.com/ruby/ruby/blob/v2_0_0_247/ext/openssl/ossl_engine.c#L106-L108

为了进行比较,AESNI未包含在1.9.3中:

https://github.com/ruby/ruby/blob/v1_9_3_362/ext/openssl/ossl_engine.c

我使用AES-256-CBC编写了一个简单的基准测试脚本,并且传闻它在Ruby 2.0.0p247下似乎运行得更快。