Uncaught error in rebar_core: {'EXIT', {undef, [{crypto,start,[]}, {rebar_core,run,1}, {rebar,main,1}, {escript,run,2}, {escript,start,1}, {init,start_it,1}, {init,start_em,1}]}}
どうやら、crypto モジュールをstart()した時に問題が発生したようです。
調べてみると、bugzilla にエントリが在りました。
Bug 1023017 - Restore ECC support in Erlang's crypto library
さらに詳しく調べると、ruby でも問題になっていました。
backport r41808(openssl build issue on fedora)
原因は、OpenSSL で OPENSSL_NO_EC が define されていないにも関わらず、OPENSSL_NO_EC2M が define されている環境においてビルドすると、定義されていないシンボル EC_GROUP_new_curve_GF2m (ガロア体GF(2m)上の楕円曲線暗号を扱う関数)を利用してしまうことにあるようです。
解決策として、Erlang/OTP の lib/crypto/c_src/crypto.c の EC_GROUP_new_curve_GF2m を利用している if 節を "ifndef OPENSSL_NO_EC2M" でくくってやれば問題ないことを確認しました。
さて、パッチを送るかと思っていると、既に今より16日前に解決済みであることを知りました。
対策パッチ:
crypto: selective support for GF2m curves
関連Pull Request:
more EC curves
上記のパッチを当てれば、問題は解決されます。
0 件のコメント:
コメントを投稿