aarch64 |
|
|
alpha |
|
|
amd64 |
|
|
arm |
|
|
asm-common-aarch64.h |
MPI_ASM_COMMON_AARCH64_H |
979 |
ChangeLog-2011 |
|
25904 |
config.links |
|
14186 |
ec-ed25519.c |
|
1061 |
ec-internal.h |
GCRY_EC_INTERNAL_H |
926 |
ec.c |
Print a point using the log functions. If CTX is not NULL affine
coordinates will be printed. |
52053 |
generic |
|
|
hppa |
|
|
hppa1.1 |
|
|
i386 |
|
|
i586 |
|
|
longlong.h |
You have to define the following before including this file:
UWtype -- An unsigned type, default type for operations (typically a "word")
UHWtype -- An unsigned type, at least half the size of UWtype.
UDWtype -- An unsigned type, at least twice as large a UWtype
W_TYPE_SIZE -- size in bits of UWtype
SItype, USItype -- Signed and unsigned 32 bit types.
DItype, UDItype -- Signed and unsigned 64 bit types.
On a 32 bit machine UWtype should typically be USItype;
on a 64 bit machine, UWtype should typically be UDItype.
|
84488 |
m68k |
|
|
Makefile.am |
|
4312 |
Makefile.in |
|
35396 |
mips3 |
|
|
mpi-add.c |
Add the unsigned integer V to the mpi-integer U and store the
result in W. U and V may be the same.
|
5712 |
mpi-bit.c |
Sometimes we have MSL (most significant limbs) which are 0;
this is for some reasons not good, so this function removes them.
|
9039 |
mpi-cmp.c |
Handle the case that U contains no limb. |
3249 |
mpi-div.c |
We need the original value of the divisor after the remainder has been
preliminary calculated. We have to copy it to temporary space if it's
the same variable as REM. |
9629 |
mpi-gcd.c |
Find the greatest common divisor G of A and B.
Return: true if this 1, false in all other cases
|
1529 |
mpi-inline.c |
put the inline functions as real functions into the lib |
1254 |
mpi-inline.h |
Starting with gcc 4.3 "extern inline" conforms in c99 mode to the
c99 semantics. To keep the useful old semantics we use an
attribute. |
4413 |
mpi-internal.h |
BITS_PER_MPI_LIMB |
10579 |
mpi-inv.c |
This uses a modular inversion algorithm designed by Niels Möller
which was implemented in Nettle. The same algorithm was later also
adapted to GMP in mpn_sec_invert.
For the description of the algorithm, see Algorithm 5 in Appendix A
of "Fast Software Polynomial Multiplication on ARM Processors using
the NEON Engine" by Danilo Câmara, Conrado P. L. Gouvêa, Julio
López, and Ricardo Dahab:
https://hal.inria.fr/hal-01506572/document
Note that in the reference above, at the line 2 of Algorithm 5,
initial value of V was described as V:=1 wrongly. It must be V:=0.
|
15365 |
mpi-mod.c |
Context used with Barrett reduction. |
4643 |
mpi-mpow.c |
Barrett is slower than the classical way. It can be tweaked by
using partial multiplications
|
5995 |
mpi-mul.c |
Zero all whole limbs at low end. Do it here and not before calling
mpn_lshift, not to lose for U == W. |
5680 |
mpi-pow.c |
When you need old implementation, please add compilation option
-DUSE_ALGORITHM_SIMPLE_EXPONENTIATION
or expose this line:
#define USE_ALGORITHM_SIMPLE_EXPONENTIATION 1
|
22256 |
mpi-scan.c |
Scan through an mpi and return byte for byte. a -1 is returned to indicate
the end of the mpi. Scanning is done from the lsb to the msb, returned
values are in the range of 0 .. 255.
FIXME: This code is VERY ugly!
|
3789 |
mpicoder.c |
The maximum length we support in the functions converting an
external representation to an MPI. This limit is used to catch
programming errors and to avoid DoS due to insane long allocations.
The 16 MiB limit is actually ridiculous large but some of those PQC
algorithms use quite large keys and they might end up using MPIs
for that. |
24357 |
mpih-const-time.c |
W = U when OP_ENABLED=1
otherwise, W keeps old value
|
4387 |
mpih-div.c |
FIXME: We should be using invert_limb (or invert_normalized_limb)
here (not udiv_qrnnd).
|
14331 |
mpih-mul.c |
Multiply the natural numbers u (pointed to by UP) and v (pointed to by VP),
both with SIZE limbs, and store the result at PRODP. 2 * SIZE limbs are
always stored. Return the most significant limb.
Argument constraints:
1. PRODP != UP and PRODP != VP, i.e. the destination
must be distinct from the multiplier and the multiplicand.
Handle simple cases with traditional multiplication.
This is the most critical code of multiplication. All multiplies rely
on this, both small and huge. Small ones arrive here immediately. Huge
ones arrive here as this is the base case for Karatsuba's recursive
algorithm below.
|
15901 |
mpiutil.c |
(visual check: 0123 ) |
17254 |
pa7100 |
|
|
pentium4 |
|
|
power |
|
|
powerpc32 |
|
|
powerpc64 |
|
|
sparc32 |
|
|
sparc32v8 |
|
|
supersparc |
|
|