1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
The PBC pairing-based cryptography library. See COPYING for license.
Ben Lynn
Changes between PBC version 0.5.14 and 0.5.13
* Eta pairing (type I), by Homer Hsing
Changes between PBC version 0.5.13 and 0.5.12
* Many thanks to Homer Hsing for volunteering to maintain this library.
* Flattened nested functions.
* Bugfix for test script.
Changes between PBC version 0.5.12 and 0.5.11
* Fixed a parsing bug reported by Michael Adjedj.
Changes between PBC version 0.5.11 and 0.5.10
* Support native win32 compilation via autotools. Thanks to Michael Rushanan.
Changes between PBC version 0.5.10 and 0.5.9
* pairing_init_pbc_param() fix thanks to Michael Adjedj.
Changes between PBC version 0.5.9 and 0.5.8
* Bugfix thanks to Michael Adjedj.
* Reduce high exponents for exponentiations in finite groups.
Changes between PBC version 0.5.8 and 0.5.7
* Changed the license to LGPL.
Changes between PBC version 0.5.7 and 0.5.6
* Faster multi-pairing (product of pairings) for A, A1, and D pairings.
Contributed by Zhang Ye.
* New API functions element_pairing() and element_prod_pairing().
Changes between PBC version 0.5.6 and 0.5.5
* Projective coordinates for A1 pairings. Contributed by Zhang Ye.
* Bugfix for affine coordinates for A pairings. Contributed by Zhang Ye.
* Optionally suppress error messages. Based on code by Geremy Condra.
Changes between PBC version 0.5.5 and 0.5.4
* Fixed bug reported by Zhang Ye: comparisons with the identity element in the
input groups was broken.
* Fixed bug reported by Mario Di Raimondo: comparisons in G2 for some pairing
types were broken. (Different representatives of the same coset are now
considered equal.)
Changes between PBC version 0.5.4 and 0.5.3
* Accessors for coordinates of points and coefficients of polynomials.
Changes between PBC version 0.5.3 and 0.5.2
* Revamped pairing-based calculator.
Changes between PBC version 0.5.2 and 0.5.1
* Fixed pbc_param_set_str().
* Add DLL to Windows release.
Changes between PBC version 0.5.1 and 0.5.0
* Fixed pbc_param_t parsing bugs, and added error detection.
* Increased buffer size in pbc_demo_pairing_init() so the sample parameters
actually work.
== New in 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.
|