IronCoreLabs / recrypt-rs

A set of cryptographic primitives for building a multi-hop Proxy Re-encryption scheme, known as Transform Encryption.
https://crates.io/crates/recrypt
GNU Affero General Public License v3.0
144 stars 23 forks source link

#80 Add features to let WASM use a 32bit backend for ed25519. Also re-enables CC on clear_on_drop #81

Closed ernieturner closed 5 years ago

ernieturner commented 5 years ago

Rust's dependency feature management isn't in a great place. The goal here was to allow WASM builds to use the ed25519 u32 backend and then use the u64 backend for every other build type. In order to do that we have to disable the u64 for everything and then manually re-enable it using the feature flags. Otherwise ed25519 gets built with both flags which causes a bunch of compile errors for duplicate constants. Relevant issue: https://github.com/dalek-cryptography/curve25519-dalek/issues/264

This ideally would be solved by using the architecture-detection flags (i.e. target.'cfg(target_env = "wasm32")'.dependencies) but that doesn't seem to work as expected either.