What changed, and why it matters
This commit creates a brand-new, empty placeholder Rust crate named `bitcoin-crypto` inside the rust-bitcoin workspace. It contains no executable code, no cryptographic logic, and no changes to existing crates. The sole purpose is to reserve the package name on crates.io before someone else takes it. There is nothing here that could affect security.
No security action needed. Treat as routine repository restructuring / crate-name reservation.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff adds a new workspace member crypto/ with a minimal Cargo manifest (bitcoin-crypto v0.0.0), empty src/lib.rs gated behind the alloc feature, boilerplate README/CHANGELOG, and lockfile/workspace updates. No existing code paths are modified, no dependencies are added to other crates, and no functionality is implemented. The crate is explicitly described as a dummy/empty release.
Changed components
Inspect captured patch +88 / −1
diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock
index 860f0dd3..aa27dea3 100644
--- a/Cargo-minimal.lock
+++ b/Cargo-minimal.lock
@@ -79,6 +79,10 @@ dependencies = [
"bitcoin-internals",
]
+[[package]]
+name = "bitcoin-crypto"
+version = "0.0.0"
+
[[package]]
name = "bitcoin-fuzz"
version = "0.0.1"
diff --git a/Cargo-recent.lock b/Cargo-recent.lock
index bc02789a..34fcdaac 100644
--- a/Cargo-recent.lock
+++ b/Cargo-recent.lock
@@ -78,6 +78,10 @@ dependencies = [
"bitcoin-internals",
]
+[[package]]
+name = "bitcoin-crypto"
+version = "0.0.0"
+
[[package]]
name = "bitcoin-fuzz"
version = "0.0.1"
diff --git a/Cargo.toml b/Cargo.toml
index eabacff1..ebd1707d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,5 @@
[workspace]
-members = ["addresses", "base58", "bitcoin", "chacha20_poly1305", "consensus_encoding", "fuzz", "hashes", "internals", "io", "p2p", "primitives", "units"]
+members = ["addresses", "base58", "bitcoin", "chacha20_poly1305", "consensus_encoding", "crypto", "fuzz", "hashes", "internals", "io", "p2p", "primitives", "units"]
exclude = ["benches"]
resolver = "2"
diff --git a/crypto/CHANGELOG.md b/crypto/CHANGELOG.md
new file mode 100644
index 00000000..4ac809f0
--- /dev/null
+++ b/crypto/CHANGELOG.md
@@ -0,0 +1,3 @@
+# 0.0.0 - Initial dummy release
+
+- Empty crate to reserve the name on crates.io
diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml
new file mode 100644
index 00000000..548c9b99
--- /dev/null
+++ b/crypto/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "bitcoin-crypto"
+version = "0.0.0"
+authors = ["Andrew Poelstra <apoelstra@wpsoftware.net>"]
+license = "CC0-1.0"
+repository = "https://github.com/rust-bitcoin/rust-bitcoin"
+description = "Crypto support for the rust-bitcoin ecosystem"
+categories = ["cryptography::cryptocurrencies"]
+keywords = ["bitcoin", "types"]
+readme = "README.md"
+edition = "2021"
+rust-version = "1.74.0"
+exclude = ["tests", "contrib"]
+
+[features]
+default = ["std"]
+std = ["alloc"]
+alloc = []
+
+[dependencies]
+
+[dev-dependencies]
+
+[package.metadata.docs.rs]
+all-features = true
+rustdoc-args = ["--cfg", "docsrs"]
+
+[lints.clippy]
+redundant_clone = "warn"
+use_self = "warn"
diff --git a/crypto/README.md b/crypto/README.md
new file mode 100644
index 00000000..3eef6e9e
--- /dev/null
+++ b/crypto/README.md
@@ -0,0 +1,7 @@
+# Cryptography
+
+Types and logic required to support cryptography i.e., bitcoin keys.
+
+## Minimum Supported Rust Version (MSRV)
+
+This library should always compile with any combination of features on **Rust 1.74.0**.
diff --git a/crypto/contrib/extra_lints.sh b/crypto/contrib/extra_lints.sh
new file mode 100755
index 00000000..5e7f0c94
--- /dev/null
+++ b/crypto/contrib/extra_lints.sh
@@ -0,0 +1,4 @@
+# No shebang, this file should not be executed.
+# shellcheck disable=SC2148
+
+cargo clippy --all-targets --no-default-features --keep-going -- -D warnings
diff --git a/crypto/contrib/test_vars.sh b/crypto/contrib/test_vars.sh
new file mode 100644
index 00000000..92dc0940
--- /dev/null
+++ b/crypto/contrib/test_vars.sh
@@ -0,0 +1,14 @@
+# No shebang, this file should not be executed.
+# shellcheck disable=SC2148
+#
+# disable verify unused vars, despite the fact that they are used when sourced
+# shellcheck disable=SC2034
+
+# Test all these features with "std" enabled.
+FEATURES_WITH_STD=""
+
+# Test all these features without "std" enabled.
+FEATURES_WITHOUT_STD="alloc"
+
+# Run these examples.
+EXAMPLES=""
diff --git a/crypto/src/lib.rs b/crypto/src/lib.rs
new file mode 100644
index 00000000..0d98f783
--- /dev/null
+++ b/crypto/src/lib.rs
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: CC0-1.0
+
+//! Cryptography support for the rust-bitcoin ecosystem.
+
+// NB: This crate is empty if `alloc` is not enabled.
+#![cfg(feature = "alloc")]
+#![no_std]
+// Experimental features we need.
+#![doc(test(attr(warn(unused))))]
+// Coding conventions.
+#![warn(deprecated_in_future)]
+#![warn(missing_docs)]
+// Exclude lints we don't think are valuable.
+#![allow(clippy::needless_question_mark)] // https://github.com/rust-bitcoin/rust-bitcoin/pull/2134
+#![allow(clippy::manual_range_contains)] // More readable than clippy's format.
+#![allow(clippy::uninlined_format_args)] // Allow `format!("{}", x)` instead of enforcing `format!("{x}")`
+
+extern crate alloc;
+
+#[cfg(feature = "std")]
+extern crate std;
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.