2008年7月18日

[ruby-list:45242] Re: Ruby版Camelliaライブラリ

須藤です。

In <20080718195826.6453.KANNO-S@xxxxx>
"[ruby-list:45241] Ruby版Camelliaライブラリ" on Fri, 18 Jul 2008 19:56:13 +0900,
Satoru Kanno <kanno-s@xxxxx> wrote:

> この度,株式会社アルテ様の協力を受けNTTが共同で開発した
> Rubyで利用可能なCamelliaライブラリを公開いたしましたので,

> ご報告させていただきます.

> URL:
> http://info.isl.ntt.co.jp/crypt/camellia/source.html

少し試してみていくつか気になった点がありました。

== cext -> ext

setup.rbを使用するのであればcext/ではなくext/ディレクトリに
した方がよいと思います。ruby setup.rb config && ruby
setup.rb buildでできるようになります。

Hoeだけを使うのであればsetup.rbは必要ないので混乱のないよう
に消してしまってもよいと思います。


ext/camellia-example.rbはsample/などに移動した方がわかりやす
いかもしれません。

== lib/

lib/以下にcamellia_rb*があってライブラリのバージョンは
CamelliaRb::VERSIONで定義されています。おそらくnewgemで生成し
たテンプレートをそのまま利用しているのだと思いますが、以下の
ようにした方がよいと思います。

lib/camellia_rb.rb -> lib/camellia.rb
lib/camellia/version.rb -> lib/camellia/version.rb

lib/camellia.rb:
require 'camellia'
require 'camellia/version'

lib/camellia/version.rb:
module Camellia #:nodoc:
module VERSION #:nodoc:
MAJOR = 1
MINOR = 0
TINY = 0

STRING = [MAJOR, MINOR].join('.')
end
end

こうすることでrequire 'camellia'しただけでCamellia::VERSION
できるようになります。必要がないのであればCamelliaRbのRbは外
した方がよいと思います。

ただ、こうするとconfig/hoe.rbも↑の変更に追従する必要がある
と思います。


ついでに言えば必要のないファイルなどは消してもよいのではない
かと思います。例えば、log/やtest/(書かれていないので)など
です。

== Camellia.new

cext/camellia-rb.cではCamellia.newを定義していますが
Camellia#initializeを定義した方がよいと思います。

== RSTRING()

もし、1.9対応も視野に入れているのであれば
RSTRING()->len/RSTRING()->ptrではなく
RSTRING_LEN()/RSTRING_PTR()を使った方がよいと思います。
# RSTRING_LEN()/RSTRING_PTR()がないときは自分で#define。

== Camellia::CamelliaError

Camellia::CamelliaError#errorとCamellia::CamelliaError#errno
は必要ない気がします。

個人的な好みで言えばCamellia::Errorでもよさそうな気がします。

== Camellia#set_key

別名としてCamellia#key=も用意すると便利かもしれません。

ざっと眺めて書いたのでおかしなことを言っているところもあると
思いますが、そのようなところは無視してやってください。


投稿者 xml-rpc : 2008年7月18日 21:28
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75465
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。