The Pairing-Based Cryptography Library

News Archive 1

released pbc-0.5.4

I added functions so you can get at the coordinates of a point, and also the coefficients of a polynomial.

Sun Aug 23 17:09:51 PDT 2009

released pbc-0.5.3

I replaced the hand-coded parser of pbc/pbc with one generated by Flex and Bison. I also changed its syntax slightly.

No garbage is collected, so long scripts should be avoided. I added a sample script, pairing_test.pbc, which I hope to be the beginning of a battery of tests.

Thu Aug 13 23:06:01 PDT 2009

pbc-0.5.2 released

I fixed a bug with pbc_param_set_str(). The pbc/pbc program works again.

I added a DLL to the Windows binary release. Hopefully it works with compilers besides MinGW. I would have added a GMP DLL as well but I was unable to build one.

Tue Aug 4 11:53:28 PDT 2009

pbc-0.5.1 released

Paul Miller reported bugs in my brand new pairing initialization functions. They should be fixed now.

Wed Jul 29 14:45:27 PDT 2009

Released pbc-0.5.0

The largest changes involve pairing initialization and pairing parameters.

For pairing initialization, supply a buffer containing pairing parameters instead of a FILE * stream. For example, rather than:

pairing_init_inp_str(pairing, stdin);

write something like:

char s[1024];
size_t count = fread(s, 1, 1024, stdin);
if (!count) pbc_die("input error");
if (pairing_init_set_buf(pairing, s, count)) pbc_die("pairing init failed");

For file reads, personally I like to use mmap() which suits pairing_init_set_buf().

The pbc_param_t data type for pairing parameters replaces a_param_t, …, g_param_t. Having the same data type for all pairing parameter types simplifies the library, though some functions had to be changed slightly.

At last, one can initialize a pairing_t from a pbc_param_t:

pairing_t p;
pbc_param_t par;
pbc_param_init_a_gen(par, 160, 512);
pairing_init_pbc_param(p, par);
pbc_param_clear(par);

Minor differences:

I trimmed the API. The file stream operations are gone. I removed the fetch_ops_t and tracker_t types: the standard C library already provides routines for reading from disk to memory.

I refactored to avoid exposing symtab_t and darray_t, and undocumented routines such as poly_alloc(). I mostly preserved the headers that define these functions, but they are no longer included by pbc.h.

I replaced the CMake files with simple.make, which I use during development, though I test the autotools build before release.

To reduce symbol pollution, all official functions and variables of the PBC now start with pbc_, field_, element_ or pairing_. Other names mostly have hidden visibility in a shared library. Watch out for renamed functions.

Wed Jul 29 00:43:35 PDT 2009

News: 0 1 2 3 4 5 6 7 8 9 10 11