summaryrefslogtreecommitdiffstats
path: root/src/ec25519.c
AgeCommit message (Collapse)Author
2016-03-19Optimize ecc_25519_scalarmult_baseMatthias Schiffer
We can elide one multiplication assuming that Z == 1 for the default base.
2016-03-19Switch internal point representation to the Ed25519 curveMatthias Schiffer
The Ed25519 curve allows slightly more efficient addition.
2016-03-18Deprecate ecc_25519_work_base_ed25519 and ecc_25519_work_base_legacyMatthias Schiffer
The deprecation of ecc_25519_work_default_base and ecc_25519_scalarmult_base{,_bits} is reverted, as the Ed25519 and legacy base points are represented in the same way now.
2016-03-18Unify legacy and Ed25519 base point by negating conversion factorsMatthias Schiffer
2015-10-17Add support for the Ed25519 curveMatthias Schiffer
2015-10-17Add _legacy suffix to functions accessing points in compressed/coordinate ↵Matthias Schiffer
representation
2015-10-17Add Ed25519-compatible generator pointMatthias Schiffer
The old point is renamed, as it isn't the only default point anymore. The old name and functions using the old point are deprecated now.
2015-10-17Fix loading of packed points in edge caseMatthias Schiffer
The parity bit was not handled correctly when the squeezed value of Y is not fully reduced.
2015-10-09Fix another comment typoMatthias Schiffer
2015-10-06Use stdint types where reasonableMatthias Schiffer
Using uint32_t instead of unsigned int for the unpacked work struct ensures the code is working correctly on ABIs with ints narrower than 32 bits. While this would constitute a API/ABI change on some systems in theory, most likely all systems using libuecc so far have uint8_t == unsigned char and uint32_t == unsigned int. Also, coding style cleanup.
2015-10-03Remove some unnecessary squeeze() callsMatthias Schiffer
As only the subtrahend in a sub() call needs to be squeezed, the squeeze can be skipped in these cases.
2015-10-03Improve documenation of internal functionsMatthias Schiffer
2015-10-03Fix typo in commentMatthias Schiffer
2015-10-03Add comments clarifying when subtractions without squeeze are validMatthias Schiffer
2015-10-02Add functions for point negation and subtractionMatthias Schiffer
2015-10-02Move documentation comments for public API to the public headerMatthias Schiffer
This makes the documentation more accessible, as the header now contains all information regarding the usage of the API, and it is not necessary to generate the Doxygen documentation anymore for that.
2015-01-26Make default base and identity points accessibleMatthias Schiffer
2015-01-26Update copyright yearsMatthias Schiffer
2015-01-22Add reduced-bitlength scalar multiplicationMatthias Schiffer
2013-01-09Check points for validity on loadMatthias Schiffer
2012-12-23Lots of code documentationMatthias Schiffer
2012-12-22Change type names to follow the _t convention, add `deprecated' attributeMatthias Schiffer
2012-12-08Add some Doxygen documentationMatthias Schiffer
2012-12-07Reworked the APIMatthias Schiffer
2012-03-17Switch from inverted to extended coordinate representationMatthias Schiffer
In inverted coordinates there are 4 points that aren't representable correctly. Avoid this problem by using the extended coordinate representation, in which an add+double operation has essentially the same performance as in the inverted representation.
2012-03-16For Edwards curves, the identity element isn't at infinity, so rename the ↵Matthias Schiffer
identity check function accordingly
2012-03-14Some more renamed, some utility functionsMatthias Schiffer
2012-03-14Code cleanupMatthias Schiffer
2012-03-14Fixed square_root()Matthias Schiffer
2012-03-14Formatting improvementsMatthias Schiffer
2012-03-14More renames, added secret key arithmeticMatthias Schiffer
2012-03-13Some renames, fix load function, add default baseMatthias Schiffer
2012-03-13Correctly rename all functions to match header fileMatthias Schiffer
2012-03-13Initial versionMatthias Schiffer