I reordered the arguments to element_from_hash(). It seems to be standard to pass the length of a buffer after the pointer to the buffer. This is incompatible with older versions of the library.
I renamed quan.c (contributed by Dmitry Kosolapov) to yuanli.c and removed workarounds that are not needed anymore.
I fixed a bug in element_init_same_as() (reported by John Bethencourt).
I also implemented some discrete log algorithms (brute force, Pollard rho and index calculus for some cases), but these aren’t documented.
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.