I added the element_mul_zn() function so using additive notation for groups matches multiplicative notation better.
I changed how element_from_hash() and element_to_bytes() work. They are incompatible with older versions of PBC.
By default, PBC now tries to use /dev/urandom for random number generation. If this fails, it prints a warning and falls back to a deterministic random number generator.
Dmitry Kosolapov contributed quan.c (in the test subdirectory), which demonstrates the scheme described in this paper.
The previous release accidentally omitted a certain header file, due to a problem with Makefile.am.
Preprocessing for A1 pairings was implemented.
I was a little surprised because I have a script named makerelease that performs basic sanity checks when I release new versions. But then I realized my script only checks building from a git export, not from a tarball built by the autotools.
To avoid these sorts of problems in the future, I rewrote my script to create the tarball from the git tree, rather than rely on make dist. I’m not very good with the autotools, and for me it is much more important that the git repository contains every file.
Fixed a bug in the element_to_bytes() function for finite fields causing the output to depend on the host byte order.
Behind the scenes, code was cleaned. For example, I got rid of the curve_t data type which I found confusing, and did not fit with my philosophy of shoehorning every algebraic structure into the field_t data type.
The main improvement is Hovav Shacham’s preprocessed element exponentiation routines. See the manual for details.
Hovav Shacham and I created a mailing list to discuss the development of the PBC library.
From now, if you have any PBC-related questions please send them to pbc-devel at googlegroups dot com.
The URL for the list is: http://groups.google.com/group/pbc-devel