Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ycrypto/salty

25519 for Cortex-M4 microcontrollers
https://github.com/ycrypto/salty

cortex-m4 ed25519 rust signatures

Last synced: 23 days ago
JSON representation

25519 for Cortex-M4 microcontrollers

Awesome Lists containing this project

README

        

salty




Ed25519 signatures for microcontrollers





Crates.io version



Download



main branch API docs



main branch book




API Docs

|

Contributing


## Overview

[![Build Status][build-image]][build-link]

[build-image]: https://builds.sr.ht/~nickray/salty.svg
[build-link]: https://builds.sr.ht/~nickray/salty
[crate-image]: https://img.shields.io/crates/v/salty.svg
[crate-link]: https://crates.io/crates/salty
[license-image]: https://img.shields.io/badge/license-Apache2.0%2FMIT-blue.svg
[docs-image]: https://docs.rs/salty/badge.svg?style=flat-square
[docs-link]: https://docs.rs/salty
[docs-main-image]: https://img.shields.io/badge/docs-main-blue?style=flat-square
[docs-main-link]: https://salty-api.netlify.com
[solokeys-img]: .github/images/solokeys-120-40.png
[solokeys-url]: https://solokeys.com
[yamnord-img]: .github/images/yamnord-120-40-alt.png
[yamnord-url]: https://yamnord.com

Small, sweet, swift: Ed25519 signatures for microcontrollers.
With assembly optimizations for Cortex-M4 and Cortex-M33.

**NOTE: This is work-in-progress and not audited! The usual warnings apply: Your hamster will explode, etc. etc.**

Work on salty is sponsored by

[![SoloKeys][solokeys-img]][solokeys-url]
[![yamnord][yamnord-img]][yamnord-url]

## Goals

From highest to lowest priority:
- [understandable](https://blog.filippo.io/a-literate-go-implementation-of-poly1305/) code
- timing side-channel free
- design for easy integration in embedded projects
- sufficiently small compiled code size
- useful speed

## The Plan

None of these releases exist quite yet.

### v0.1.0

Basic signature functionality

- allocation free API for signatures
- transcription of Ed25519 from [TweetNaCl](https://tweetnacl.cr.yp.to/20140427/tweetnacl.c)
- Bjoern Haase's [field arithmetic optimizations](https://github.com/BjoernMHaase/fe25519/tree/master/STM32F407/crypto/asm)
- use [subtle](https://github.com/dalek-cryptography/subtle)

### v0.2.0

More tests!

- fuzzing to test correctness against known good implementation
- [side-fuzzing](https://tweetnacl.cr.yp.to/20140427/tweetnacl.c) to test for timing side-channels

### v0.3.0

Completion! The rest of NaCl.

- X22519
- authenticated encryption

#### License

The `scalar29` implementation is from `curve25519-daleks`'s u32 backend: [LICENSE](https://github.com/dalek-cryptography/curve25519-dalek/blob/master/LICENSE).


Salty is licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT License](LICENSE-MIT) at your option.



Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


[TweetNaCl](https://tweetnacl.cr.yp.to/) is a public-domain library.


[fe25519](https://github.com/BjoernMHaase/fe25519) is licensed under Creative Commons Zero v1.0 Universal.