#substrate #polkadot #cryptography #crypto #no-std

no-std substrate-crypto-light

Cryptographic code for Substrate chains in pure rust with better baremetal support

1 unstable release

0.2.0 Jan 30, 2025
0.1.0 Nov 21, 2024

#947 in Magic Beans

Download history 133/week @ 2024-11-17 82/week @ 2024-11-24 32/week @ 2024-12-01 41/week @ 2024-12-08 18/week @ 2024-12-15 1/week @ 2024-12-22 68/week @ 2024-12-29 49/week @ 2025-01-05 13/week @ 2025-01-12 3/week @ 2025-01-19 124/week @ 2025-01-26 26/week @ 2025-02-02

166 downloads per month
Used in 3 crates

GPL-3.0-or-later

43KB
876 lines

Cryptographic code for Substrate chains in pure rust with better baremetal support.

This is largely based on sp_core crate.

Key differences here:

  • no-std compatible with arm,
  • sr25519 supports external Rng, for usability on baremetal
  • ecdsa support based on pure Rust crate k256, to avoid compiling difficulties (original sp-core has ecdsa from secp256k1 C wrapper crate and it does not compile on certain no-std targets and creates extremely large binary blob on others)

lib.rs:

This is largely based on sp_core crate. Draft.

Key differences here:

  • no-std compatible with arm
  • sr25519 supports external Rng, for usability on baremetal
  • ecdsa support based on pure Rust crate k256, to avoid no-std target compiling difficulties (original sp-core has ecdsa from secp256k1, a C wrapper crate, and as a result ecdsa parts from sp-core do not compile on certain no-std targets and create extremely large binary blob on others)
  • ecdsa pair has zeroize on drop

Dependencies

~5–8.5MB
~155K SLoC