summaryrefslogtreecommitdiffstats
path: root/moon-abe/pbc-0.5.14/doc/miscfns.txt
blob: 5ea07a67f3da50a3a8849243ec14f9401c7ab35a (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
== Other functions ==

Random number generation, memory allocation, logging.

[[randomref]]
=== Random bits ===

The first time PBC is asked to generate a random number,
the library will try to open the file `/dev/urandom` as a
source of random bits. If this fails, PBC falls back to a deterministic
random number generator (which is of course completely useless for
cryptography).

It is possible to change the file used for random bits. Also, explicitly
selecting the deterministic random number generator will
suppress the warning.

On Windows, by default, PBC uses the Microsoft Crypto API to generate random
bits.

include::gen/pbcrandom.txt[]

=== Custom allocation ===

Like GMP, PBC can be instructed to use custom memory allocation functions.
This must be done before any memory allocation is performed,
usually at the beginning of a program before any other PBC functions have
been called.

Also like GMP, the PBC wrappers around +malloc+
and +realloc+ will print a message on standard error
and terminate program execution if the calls fail.
Replacements for these functions should act similarly.

However, unlike GMP, PBC does not pass the number of bytes previously allocated
along with the pointer in calls to +realloc+ and
+free+.

include::gen/alloc.txt[]

=== Logging ===

include::gen/log.txt[]