Skip to content

Add support for big-endian targets #1555

Description

@briansmith
  1. Solve C (or Rust) fallback for all functions that work for all little-endian targets #1455 to get everything that depends on bn_mul_mont working when bn_mul_mont isn't available.
  2. Adjust build.rs and the #[cfg(target_arch)] logic throughout the project so that the assembly language implementations are never used on big-endian targets (specifically, big-endian 32-bit ARM and AArch64 need to fall back).
  3. Remove the unnecessary tests that we're building on a little-endian target.
  4. Add at least one big-endian target to CI that actually runs tests. This can be done in QEMU like the AAarch64 and 32-bit ARM tests are run.
  5. Improve the code test coverage to be closer to 100% and do an audit so that we can be sure there is no endian-specific logic.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions