Skip to content

curve25519_dalek crate = runtime error #208

@brandonros

Description

@brandonros
use ed25519_compact::ge_scalarmult_base;
use curve25519_dalek::{constants, Scalar};

// fails
fn derrive_public_key(hashed_private_key_bytes: [u8; 64]) -> [u8; 32] {
    let mut input = [0u8; 32];
    input.copy_from_slice(&hashed_private_key_bytes[0..32]);
    let scalar = Scalar::from_bytes_mod_order(input);
    let point = constants::ED25519_BASEPOINT_TABLE * &scalar;
    let compressed_point = point.compress();
    let public_key_bytes = compressed_point.to_bytes();
    public_key_bytes
}

// works
fn derrive_public_key_compact(hashed_private_key_bytes: [u8; 64]) -> [u8; 32] {
    let mut input = [0u8; 32];
    input.copy_from_slice(&hashed_private_key_bytes[0..32]);
    let public_key_bytes = ge_scalarmult_base(&input).to_bytes();
    public_key_bytes
}
[package]
name = "ed25519_vanity_kernel"
version = "0.1.0"
edition = "2024"

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
cuda_std = { git = "https://github.com/Rust-GPU/Rust-CUDA.git" }
ed25519-compact = { git = "https://github.com/brandonros/rust-ed25519-compact.git", rev = "7605359ed8508d4cef3b958157ad41108261f8d1", default-features = false, features = ["cuda"] }
sha2 = { version = "0.10.8", default-features = false }
curve25519-dalek = { version = "4.1.3", default-features = false, features = ["alloc", "precomputed-tables"] }
bs58 = { version = "0.5.1", default-features = false }
rand_core = { version = "0.9.3" }
rand_xorshift = { version = "0.4.0", default-features = false }

[build-dependencies]
cuda_builder = { git = "https://github.com/Rust-GPU/Rust-CUDA.git" }

Not sure if this is helpful. Great crate + ecosystem, hope I'm helping trying to "real world use it". Please let me know how I can debug more to provide more meaningful report.

https://github.com/brandonros/ed25519-vanity-rs/tree/no-compact if needed for "full working example"

cc @jorge-ortega let me know if you want to work together on this if you have the cycles

Activity

brandonros

brandonros commented on Apr 27, 2025

@brandonros
Author

similar to #207 and #203

brandonros

brandonros commented on Apr 29, 2025

@brandonros
Author

illegal-address.ptx.zip

$ cargo run --release -- aa 256 256
    Finished `release` profile [optimized] target(s) in 0.03s
     Running `target/release/ed25519_vanity aa 256 256`
Found 1 CUDA devices
Starting device 0
[0] Loading module...
[0] Starting search loop...

thread 'main' panicked at src/main.rs:123:32:
called `Result::unwrap()` on an `Err` value: IllegalAddress
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
LegNeato

LegNeato commented on May 23, 2025

@LegNeato
Contributor

I don't have a ton of time right now to help you debug, but I wanted to pop in and say thank you for the great bug reports and pointers to the repo. Makes it a lot easier when one of us has time! 🍻

added a commit that references this issue on May 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @LegNeato@brandonros

      Issue actions

        curve25519_dalek crate = runtime error · Issue #208 · Rust-GPU/Rust-CUDA