From: Evan Webb Date: 2004-04-06T15:07:23+09:00 Subject: Proposal: New Bignum During some experiments with ruby cryptography, I found some problems with the existing Bignum classes. These problems were primarily focused around certain lacking features required to do more complex operations as well as some number theory ones. After examining the existing Bignum code, I found it would be simpler and yield larger results to work on an alternative. I had at the time been working with libtommath, a public domain math library with all the functions I required and more. In addition, it's API made it extremely easy to create a simple, thin, easy layer between ruby and the library. And thus MBignum was born. Early uses found it extremely easy to integrate as an alternative to Bignum. My Crypt::RSA, Crypt::DSS, and Crypt::ElGamal implementations become simple, elegant, and importantly, fast. And thus I propose that we integrate MBignum into the ruby core as Bignum, replacing the current implementation. This will give ruby more builtin mathematical power and allow other core developers the ability to concentrate on other issues. Licensing wise, there is no problem. Tom St. Denis, the author of libtommath, has released libtommath as public domain. I believe that we should of course give him credit if and when we integrate his work. And now, for the code: Current MBignum release: http://dark-ruby.org/release/ruby-mbignum-current.tar.gz Current Crypt::RSA: http://dark-ruby.org/release/ruby-rsa-current.tar.gz Crypt::DSS and Crypt::ElGamal are currently unreleased but should be out this week. As always, comments, concerns, and criticisms are welcome. Enjoy the code. Evan M. Webb // evan@fallingsnow.net