aboutsummaryrefslogtreecommitdiffstats
path: root/moon-abe/pbc-0.5.14/NEWS
blob: 4c08dae83400e2ec7685ee97bcb6526458b8c498 (plain)
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.