Frank Denis ff507ae4c4 Reorder arguments to vaeseq_u8 to improve AArch64 performance
The register arguments to the AESE instruction are commutative, however
the first input register is constrained in that it also names the output
register. The constraint on register allocation causes recent LLVM
versions to emit a lot of MOV instructions, significantly impacting
performance.

Swapping the register operands allows the compiler to emit significantly
fewer MOV instructions. This change improves performance on Arm
infrastructure micro-architectures by 14-36% depending on the
micro-architecture

Found and reported by George Steed from ARM. Thanks!
2025-05-21 14:51:27 +02:00
2024-12-04 17:40:38 +01:00
2024-05-25 14:13:52 +02:00
2024-08-01 13:57:57 +02:00
2025-02-20 15:36:04 +01:00
2024-12-04 17:40:38 +01:00
2024-06-23 13:22:13 +02:00
2024-08-01 13:57:57 +02:00
2024-05-25 14:13:52 +02:00
2025-02-21 12:40:38 +01:00
2024-05-25 14:13:52 +02:00
2023-04-14 23:24:50 +02:00
2024-12-04 17:40:38 +01:00
2020-06-18 19:37:46 +02:00
2025-01-01 21:03:16 +01:00
2024-05-25 14:13:52 +02:00
2024-08-01 13:57:57 +02:00
2025-04-03 23:03:24 +02:00
2018-12-25 10:25:23 +01:00

GitHub CI Windows build status Coverity Scan Build Status Azure build status CodeQL scan

libsodium

Sodium is an easy-to-use software library that provides a wide range of cryptographic operations including encryption, decryption, digital signatures, and secure password hashing.

It is a portable, cross-compilable, installable, and packageable fork of NaCl. While maintaining API compatibility, libsodium extends functionality to improve usability and simplify the development of secure applications.


Key Features

  • Encryption & Decryption: Securely encrypt and decrypt data with modern algorithms.
  • Digital Signatures: Create and verify signatures to ensure data authenticity.
  • Cross-Platform Compatibility: Supported on Windows (MinGW and Visual Studio, both x86 and x64), iOS, Android, JavaScript, and WebAssembly.
  • User-Friendly API: Designed to provide all core cryptographic operations while remaining easy to integrate into your projects.

Documentation

Detailed documentation is available online. It is generated from the libsodium-doc repository and requires JavaScript for full functionality:


Integrity Checking

For security and authenticity, please review the integrity checking instructions. These include the signing keys and methods to verify your installation:


Contributors

Code Contributors

This project thrives thanks to the valuable contributions from our community. View all the contributors:

Contributors

Financial Contributors

Your financial support helps us sustain and further develop libsodium.

Individuals

Individual Contributors

Organizations

Support libsodium with your organization and gain visibility through your logo and website link.

Organization Contributor

License

This project is distributed under the ISC license.

S
Description
No description provided
Readme ISC Cite this repository
16 MiB
Languages
C 93%
Shell 1.8%
M4 1.5%
Zig 1.3%
Assembly 1.1%
Other 1.2%