Skip to content

Fix for no_std builds#5

Open
jeddenlea wants to merge 2 commits intomikelodder7:mainfrom
jeddenlea:main
Open

Fix for no_std builds#5
jeddenlea wants to merge 2 commits intomikelodder7:mainfrom
jeddenlea:main

Conversation

@jeddenlea
Copy link
Copy Markdown

I need to include this crate in a no_std build, by way of the zkryptium crate. But, this crate fails to build with --no-default-features -F alloc -F groups, because the cdylib target is requiring an allocator and panic_handler.

Cargo unfortunately does not seem to offer a way to override this attribute of a crate's Cargo.toml file. Unfortunately, while it may appear that crate_type can be used as a conditional attribute within the source (https://doc.rust-lang.org/reference/linkage.html), this feature is actually deprecated rust-lang/rust#91632.

I can only confirm that this tweak fixes my problem, but I am not sure if it breaks the 32-bit target you were addressing in f4a7732. With this change, I can cargo build with wasm32-unknown-unknown and wasm32-wasip1, but I'm not sure that's enough. Can you please give it a try? I'm happy to adjust this as needed.

"64" isn't a valid `target_arch`.
With the `cdylib` crate type imposed by `Cargo.toml`, it's not possible
to include this crate into any others being used in a `no_std` context.
jeddenlea added a commit to jeddenlea/zkryptium that referenced this pull request Oct 3, 2024
We need to be able to use this crate in a `no_std` context.
Additionally, we cannot make use of the `sha2` or `sha3` crates.
This commit adds a couple of features. `std`, which is enabled by
default`, must be specified in order to use `write_keypair_to_file`.
This was actually the only real dependency on `std`.

I've split the `bbsplus` feature up. `min_bbs` enables the algorithms,
but does not actually implement either the Sha256 or Shake256 schemes.

Just as written, this cannot yet compile into a `no_std` context because
bls12_381_plus's no_std support is broken, but I'm trying to resolve
that in mikelodder7/bls12_381_plus#5.

I've also bumped group to 0.13, which should be nonbreaking because
bls12_381_plus 0.8.18 already requires it.
jeddenlea added a commit to jeddenlea/zkryptium that referenced this pull request Oct 3, 2024
We need to be able to use this crate in a `no_std` context.
Additionally, we cannot make use of the `sha2` or `sha3` crates.
This commit adds a couple of features:

`std`, which is enabled by default, must be specified in order to use
`write_keypair_to_file`.  This was actually the only real dependency on
`std` outside of tests.

I've split the `bbsplus` feature up. `min_bbs` enables the algorithms,
but does not actually implement either the Sha256 or Shake256 schemes.

Just as written, this cannot yet compile into a `no_std` context because
bls12_381_plus's no_std support is broken, but I'm trying to resolve
that in mikelodder7/bls12_381_plus#5.

I've also bumped group to 0.13, which should be nonbreaking because
bls12_381_plus 0.8.18 already requires it.
jeddenlea added a commit to jeddenlea/zkryptium that referenced this pull request Oct 3, 2024
We need to be able to use this crate in a `no_std` context.
Additionally, we cannot make use of the `sha2` or `sha3` crates.
This commit adds a couple of features:

`std`, which is enabled by default, must be specified in order to use
`write_keypair_to_file`.  This was actually the only real dependency on
`std` outside of tests.

I've split the `bbsplus` feature up. `min_bbs` enables the algorithms,
but does not actually implement either the Sha256 or Shake256 schemes.

Just as written, this cannot yet compile into a `no_std` context because
bls12_381_plus's no_std support is broken, but I'm trying to resolve
that in mikelodder7/bls12_381_plus#5.

I've also bumped group to 0.13, which should be nonbreaking because
bls12_381_plus 0.8.18 already requires it.
jeddenlea added a commit to jeddenlea/zkryptium that referenced this pull request Oct 3, 2024
We need to be able to use this crate in a `no_std` context.
Additionally, we cannot make use of the `sha2` or `sha3` crates.
This commit adds a couple of features:

`std`, which is enabled by default, must be specified in order to use
`write_keypair_to_file`.  This was actually the only real dependency on
`std` outside of tests.

I've split the `bbsplus` feature up. `min_bbs` enables the algorithms,
but does not actually implement either the Sha256 or Shake256 schemes.

Just as written, this cannot yet compile into a `no_std` context because
bls12_381_plus's no_std support is broken, but I'm trying to resolve
that in mikelodder7/bls12_381_plus#5.

I've also bumped group to 0.13, which should be nonbreaking because
bls12_381_plus 0.8.18 already requires it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant