Introduction
Introduction Statistics Contact Development Disclaimer Help
libzahl.7 - libzahl - big integer library
git clone git://git.suckless.org/libzahl
Log
Files
Refs
README
LICENSE
---
libzahl.7 (2304B)
---
1 .TH LIBZAHL 7 libzahl
2 .SH NAME
3 libzahl - Big integer library
4 .SH ETYMOLOGY
5 The bold uppercase \(aqZ\(aq which represents the
6 set of all integers is derived from the german word
7 \(aqZahlen\(aq, whose singular is \(aqZahl\(aq.
8 .SH DESCRIPTION
9 .B libzahl
10 is a C library for arbitrary size integers, that
11 aims to be usable for robust programs, and be
12 fast.
13 .P
14 .B libzahl
15 will accomplish this by using long jumps when an
16 error is detected, rather than letting the caller
17 also perform a check. This shall make the code in
18 the user program cleaner too.
19 .B libzahl
20 will use dedicated temporary bignum integers whether
21 possible, and necessary, for its internal calculations.
22 .B libzahl
23 will not deallocate allocations, but rather cache
24 them for reuse.
25 .P
26 With the exception of functions working with strings,
27 all output parameters are before the input parameters.
28 .P
29 Like any self-respecting big number library, libzahl
30 supports assign values to variables that are also
31 input variables. However, keep in mind that commutative
32 functions are optimised for the first operand to also
33 be the output over the second operand to also be the
34 input. For example, \fIzadd(a,a,b)\fP should be faster
35 than \fIzadd(a,b,a)\fP, although both are supported.
36 Whether or not the function believe that it is more
37 likely to occur that the input variables are different
38 that the output variable than the output variable
39 being the first input variable depends on the function.
40 Some functions are implemented to believe that the
41 first is more likely, other fucntions are implemented
42 to believe that the latter is more likely.
43 .SH RATIONALE
44 GMP MP cannot be used for robust programs. LibTomMath
45 is too slow, probably because of all memory allocations,
46 and has an nonintuitive API. Hebimath is promising, but
47 I think it can be done better.
48 .SH NOTES
49 .B libzahl
50 is currently not thread-safe.
51 .P
52 You are strongly discouraged from using
53 .B libzahl
54 for cryptographic applications. Instead, use a library
55 specifically targeting cryptography, otherwise, your
56 program may be subject to side-channel attacks such as
57 timing attacks, power-monitoring attacks, electromagnetic
58 attacks, acoustic cryptanalysis, and data remanence
59 attacks.
60 .B libzahl
61 is known to be susceptible to timing attacks and data
62 remanence attacks.
63 .SH SEE ALSO
64 .BR zsetup (3)
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.