Michael Hamburg
1f57b70289
move p480 and p521 to attic
9 years ago
Michael Hamburg
e8561eb0fb
pniels_t is now aligned to sizeof(big_register_t), clearing a MAGIC
9 years ago
Michael Hamburg
af89593807
harmonize deisogenize with paper, clearing a TODO
9 years ago
Michael Hamburg
a69002875c
reverse convention for constant_time_select, resolving a TODO
9 years ago
Michael Hamburg
30436f6ae4
remove vtable in buffer
9 years ago
Michael Hamburg
2ea89d9f06
remove one variable from elligator
9 years ago
Michael Hamburg
37e0886300
simplify elligator, in a way that shouldnt change its output. I think it uses the opposite convention from the paper for sign(s) though.
9 years ago
Michael Hamburg
c7a3efd496
fix typo in 32-bit code
9 years ago
Michael Hamburg
9b6fbecc1c
warning that base point might change for release version, to better integrate with x25510/448 or ed
9 years ago
Mike Hamburg
5f38747a15
Montgomery ladder now uses non-reduced arith for speed. Also, it is tested to be CT
9 years ago
Michael Hamburg
2eacff6ad6
rfc7748 implementation, but their names will probably change
9 years ago
Michael Hamburg
4de70b837c
separate out strobe and spongerng from shake. strobe is experimental. spongerng is experimental internally but the interface should be pretty good (except for any camelCase vs snake_case issues). shake should be stable
9 years ago
Mike Hamburg
24e33a2f86
reasonable suite of ct tests now. also change scalar randomizer to generate +128 bits
9 years ago
Mike Hamburg
9f1cc0e2af
some more ct tests; serializeInto -> serialize_into. still need more ct tests, unification of snake vs camel case
9 years ago
Mike Hamburg
3d0c6a6c28
typedef Wrapped is no longer private for scalar and point
9 years ago
Mike Hamburg
51ac192b79
ct tests are in; succeed if -DNDEBUG is passed. Should carefully audit assertions.
9 years ago
Michael Hamburg
d81592ba71
make test_ct, except it probably doesnt work; definitely not on a mac with no memcheck.h installed
9 years ago
Mike Hamburg
9af4850a18
Merge branch 'curve25519-work' of ssh://git.code.sf.net/p/ed448goldilocks/code into curve25519-work
9 years ago
Mike Hamburg
8d6c51ee28
Separate API word size from arch word size. This enables compiling
a 32-bit arch on a 64-bit platform, eg NEON on AARCH64. It's probably
more useful for cross-platform testing, though.
The breakdown is as follows:
* decaf_bool_t, decaf_word_t and decaf_error_t are as defined in the API.
* DECAF_WORD_BITS is the size of a decaf_word_t.
* decaf_word_t is used for scalars, so on every curve the scalar impls are the same
(i.e. they follow the API's word size).
* SC_LIMB macro always takes a 64-bit word.
* non-prefixed word_t, mask_t, etc are as defined by the per-curve arch.
* ARCH_WORD_BITS is the size of a word_t.
* word_t is used for gf elements, so the curves may have different guts.
9 years ago
Michael Hamburg
9be017366a
update HISTORY and TODO
9 years ago
Mike Hamburg
0016b2675c
arm asm -> __asm__
9 years ago
Michael Hamburg
64efd989d6
use SC_LIMB in generated tables. Add a new "TODO" category, UNIFY for code that might be unified with other code
9 years ago
Mike Hamburg
7b7a27eac8
move (non-hot) add/sub to per_field.c and make them not inline
9 years ago
Michael Hamburg
7587ea91e7
a couple of LIMBPERM related fixes
9 years ago
Michael Hamburg
94262dbecb
minor
9 years ago
Michael Hamburg
2e23ac747b
move (some of the?) per-field code to src/per_field.c
9 years ago
Michael Hamburg
825751d034
one gf_strong_reduce to rule them all
9 years ago
Michael Hamburg
38455f34f2
one ser/deser to rule them all (TODO test on NEON and other places with LIMBPERM)
9 years ago
Mike Hamburg
a5bed6b351
Working on getting cross-arch working again. Several TODOs.
Currently compiles and passes tests on x86_64 with arch_32 and
DECAF_FORCE_32_BIT=1 (as well as the native settigs of course),
so that's a start.
Want to make serialization routine cross-arch. Need to check that
perf is good enough (likely). Current routine in p25519/arch_32
is almost cross-arch, but has known bugs (FIXMEs). Needs to take
into account separate p and, for NEON, the LIMBPERM.
Want to decouple arches for each curve/field. Currently the split
between decaf_word_t and word_t makes this fraught with peril. Fix
is probably to rename decaf_word_t to decaf_api_word_t and fix it
to either uint32 or uint64, then make internal things separate per
field. That way we don't have to try arch detection in the header,
which is nice.
Need to make decaf_gen_tables use SC_LIMB. Might as well get rid
of API_NS there too.
9 years ago
Michael Hamburg
6bc97fb756
need an include/arch_*/arch_intrinsics.h for other arches
9 years ago
Michael Hamburg
233f8453c7
further reduce the code in f_impl.h
9 years ago
Michael Hamburg
b4c402c238
further reduce the code in f_impl.h
9 years ago
Michael Hamburg
2402788996
further reduce the code in f_impl.h
9 years ago
Michael Hamburg
4218223dd7
generate most of f_impl.h. Not tested on most arches yet :-(
9 years ago
Michael Hamburg
294eabaec7
generate f_field.h
9 years ago
Michael Hamburg
55126adc06
separate c wrapper struct for strobe and spongerng
9 years ago
Michael Hamburg
81403de10c
knock out a couple TODOs
9 years ago
Michael Hamburg
1a14abb4dd
Separate .h files for SHA/SHAKE, STROBE and sponge RNG. TODO: .hxx. Also add a lot of docs
9 years ago
Michael Hamburg
957ec6cd2c
restore shared secret benchmarks
9 years ago
Michael Hamburg
f92d14e08a
crypto.hxx is now a thin wrapper around crypto.h
9 years ago
Michael Hamburg
ca68bb3689
autogenerate decaf/crypto.h
9 years ago
Michael Hamburg
e5491b67c1
some fixes to "make todo"
9 years ago
Michael Hamburg
838fe2aa17
fix a makefile interaction on cxx headers?
9 years ago
Michael Hamburg
48aa8215f2
only include public includes now
9 years ago
Michael Hamburg
a9dcd153df
auto-generate metaheaders
9 years ago
Michael Hamburg
c1306c75dc
actually generate some headers
9 years ago
Michael Hamburg
28ab1d592b
prevent regenerating all headers every make
9 years ago
Michael Hamburg
98be9a0820
now generating some headers for real
9 years ago
Michael Hamburg
47d4b080e9
generator is almost ready to drop in
9 years ago
Michael Hamburg
1c97140893
working on python generation
9 years ago