Git Product home page Git Product logo

Comments (3)

tarcieri avatar tarcieri commented on August 24, 2024

The changes occurred upstream in the elliptic-curve crate. See the CHANGELOG there:

https://github.com/RustCrypto/traits/blob/master/elliptic-curve/CHANGELOG.md#0130-2023-02-28

(Perhaps we should propagate these changelogs into each crate in this repo for ease of discovery)

The relevant changes are:

The goal of these changes was to provide each curve with more control over how field elements are serialized in order to support cases where the internal "bigint" representation is larger than a serialized field element, in order to support curves with moduli which are not clean multiples of 64-bits, in order to better support NIST P-224 and P-521.

As part of those changes, we adopted an idea from the ff crate that there is a curve-specific canonical endianness with the goal of helping reduce endianness-related bugs and incompatibilities.

The NIST curves use SEC1 encodings for field elements, which are big endian.

This hopefully shouldn't be too much of an inconvenience though? Just call slice::reverse on the input to convert it from little to big endian.

from elliptic-curves.

Plebshot avatar Plebshot commented on August 24, 2024

Yeah definitely enough workarounds. Was mainly confused about the change. Looking into the crate itself can be very confusing with all the macros as well. Thanks for the info and the great work!

from elliptic-curves.

tarcieri avatar tarcieri commented on August 24, 2024

The macros can hopefully be replaced by generics once const impl is stable

from elliptic-curves.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.