Skip to content

Commit 156f217

Browse files
committed
Merge remote-tracking branch 'benma/dalek'
2 parents 7d13b38 + 9c27e2a commit 156f217

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+169
-5023
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ ENV PATH /opt/lcov-1.14/bin:$PATH
124124
# Install rust compiler
125125
ENV PATH /opt/cargo/bin:$PATH
126126
ENV RUSTUP_HOME=/opt/rustup
127-
COPY src/rust/rust-toolchain /tmp/rust-toolchain
128-
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | CARGO_HOME=/opt/cargo sh -s -- --default-toolchain $(cat /tmp/rust-toolchain | tr -d '\r\n\t') -y
127+
COPY src/rust/rust-toolchain.toml /tmp/rust-toolchain.toml
128+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | CARGO_HOME=/opt/cargo sh -s -- --default-toolchain $(grep -oP '(?<=channel = ")[^"]+' /tmp/rust-toolchain.toml) -y
129129
RUN rustup target add thumbv7em-none-eabi
130130
RUN rustup component add rustfmt
131131
RUN rustup component add clippy

src/rust/Cargo.lock

Lines changed: 2 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/rust/bitbox02-rust/src/hww/api/bitcoin/payment_request.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ struct Identity {
3939
}
4040

4141
const IDENTITIES: &[Identity] = &[
42-
// Identity {
43-
// name: "PocketBitcoin",
44-
// public_key: b"...",
45-
// },
42+
Identity {
43+
name: "Pocket Bitcoin",
44+
public_key: b"\x02\x29\x02\xb4\xed\xe4\x82\xa9\x07\xce\x16\xa1\xc6\x34\x14\x5e\x72\x8f\x1d\xe4\xf2\x49\x04\x3a\x8b\xe4\x7d\xf2\x7d\xb9\x32\x0c\x2c",
45+
},
4646
#[cfg(feature = "testing")]
4747
Identity {
4848
name: "Test Merchant",

src/rust/rust-toolchain

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/rust/rust-toolchain.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[toolchain]
2+
channel = "1.78.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"files":{"CHANGELOG.md":"651cb5d8e0703d46b2ef174d205131cca30bc49a6c08a2a90364369559f78cb2","Cargo.toml":"9795ae7b03937e95efa4e5bf6d1c12e8c9a445b23798dc182f188e9e2700e8cc","LICENSE":"cca0bd3c4fcdba74145ef9d49c62337e2c9fbf9368288f11d0547f1b0273219f","Makefile":"077a0ab4ad06f7e041968c7673c265360ce60254506b10820edb48bd38a07d7f","README.md":"5905d6af2da3098f3a095ed09d65b1236bd998fc3be803a626a4024399b6390f","benches/dalek_benchmarks.rs":"0ee0e8cd50cf9621fe40008283078f90e771cdd62d84237b5893acee67e6447c","build.rs":"0bc3f442a5bd41f57182bd8b77784f06e13b6ce64a9d8a875aa33d86f04e1e8d","docs/assets/rustdoc-include-katex-header.html":"088c9bb27bdc5c240c00ff1c06d583d77995d53b76421116609a751ca4a54b59","docs/avx2-notes.md":"47e41778044529299f78906d99d6dfe9c0400acf5ad32e519fa54b6d6bea36dc","docs/ifma-notes.md":"7ca18607cafca402b832c313de42763df9cf1f8c9ca0ac58621322b5e33e8461","docs/parallel-formulas.md":"94d620c7fd8a0c9edba320c175cedb5458a37833f3fb5dbe989c540ab8eda4ff","src/backend/mod.rs":"964679a09eb3f7a8c9182c027a1b8a4efbd666ee2249e725e88df92f13932334","src/backend/serial/curve_models/mod.rs":"05de9a2761a7f4fd271b5e4c350222175ecccecfcddc5210f5165cbfc89b35c8","src/backend/serial/fiat_u32/field.rs":"34f8b035e287a21cca59cb7fcfab68384c63bf775b3630a53b576df03dee9da9","src/backend/serial/fiat_u32/mod.rs":"6e36a757f0f804caaebb5a2f0c04754589740279160890d592287edc7d65efcf","src/backend/serial/fiat_u64/field.rs":"8d5ed7323d5d19894454f88af7e9156d20c5be9c1623112e1a9b98e45253e16c","src/backend/serial/fiat_u64/mod.rs":"6e6f773aa9669a740519d2256421734ddfee60cd6ad7f45156b6b5201c10487d","src/backend/serial/mod.rs":"8c92cec992cf112c0683ed328ecfdfcc08d4732de92a76c882b3062e4549f39c","src/backend/serial/scalar_mul/mod.rs":"a6a4185075faebf984f365b6dcc28c3da6c087d18d811257cd2c0245b41d113e","src/backend/serial/scalar_mul/pippenger.rs":"ced6a4944c7fca65dff9886378bb7850d513c5e10bc07c9201797281a6a9fc6a","src/backend/serial/scalar_mul/precomputed_straus.rs":"d26f11fc80a9ca95410007290746d04eaa7c8a85d7b3c686c856560847a6f3b3","src/backend/serial/scalar_mul/straus.rs":"92040d722c6771c3f90c8c86621f5ef9239e1bec237750d2f39c311d5cb7463b","src/backend/serial/scalar_mul/variable_base.rs":"b9bc69189d5a9339a4c05882b736ac65176b6e98eb93008bc5e200b090e386b6","src/backend/serial/scalar_mul/vartime_double_base.rs":"528db8b24adf9a3b50fbe89fe917b0ae9dace30bbcae9f40c0ba3583f1d80ac8","src/backend/serial/u32/constants.rs":"1e62a0897ecca3e4bec3512236160e3b9fc3b089ceccd9d0e2215c9e9765a986","src/backend/serial/u32/field.rs":"c2e790da017909043014e8e6fba0253837927f2a63a2ad5b818cc12f325c322b","src/backend/serial/u32/mod.rs":"14fabb2034c68094df508c19517db14e5e3b956b5dac93bd0dd3c125f47f396e","src/backend/serial/u32/scalar.rs":"d0997206203c0d4500fa09fb5e717695790afd3897c6a591a8b5d802e3c37de9","src/backend/serial/u64/constants.rs":"fa72dc113456cfbe5d34f144e89e1bbe2976b1016b09a278fe1e4b3fda57ab6f","src/backend/serial/u64/field.rs":"3bf761da7315476d791ba1a8be9f391c1f00505fca7356314cbede34bb1a6d9c","src/backend/serial/u64/mod.rs":"b4aab9c62cf39bafc976b2e03bea503f120b125c30eb0e9e5d5f257b08a3eda4","src/backend/serial/u64/scalar.rs":"a15df04bf46211e3e8dee7ffbf3df0843e64ec96f461959252114b749f50a6f2","src/backend/vector/avx2/constants.rs":"95f19d41ad1796d892734ba9125f6442dcb049f6392d31c1ec61d5b4a011102b","src/backend/vector/avx2/edwards.rs":"a879c057bcf1003139b3c9532a7e5d265acfa8e20994557aa80457ccefc253a5","src/backend/vector/avx2/field.rs":"9c904f61332c605850dc3a60808dc2981777facdf60ebf5f3bc8a325dea66fff","src/backend/vector/avx2/mod.rs":"e8933b6f1e11255c701eda08bdcbf3593c0c2e169006c13aab26e1c92ebe24d8","src/backend/vector/ifma/constants.rs":"69f06bb74de041842b8780bb13da4f636d2876ae0bb871889a192313f10d3511","src/backend/vector/ifma/edwards.rs":"84ca8c236dafe186599294dfbd5fc00f3961b7a631e4add1946c9b1d97aee3cb","src/backend/vector/ifma/field.rs":"e78789524cad9bdb4be2da87970da0a7852eb823c18a08df54f68683e69e4c0f","src/backend/vector/ifma/mod.rs":"5feec145182a460e856afe37d9aacac0124e59600e46727752e956ee908dec1e","src/backend/vector/mod.rs":"3fce1ede5a2705640aaa9e509c3c38614cbb5b8882d943fc112b91d00cfdccbf","src/backend/vector/packed_simd.rs":"295f734a1e4d752b6df0b8b0255315e6e6f9947c0abdcb98e0b346ded559f4d1","src/backend/vector/scalar_mul/mod.rs":"c2ae669727ba81a486b447f98561273cd62f76b1c546c55dafdc86c85674e8e7","src/backend/vector/scalar_mul/pippenger.rs":"55db1d720f2cc073352927d3517495b8faf6b368828d50eb1d91a45dfd288e81","src/backend/vector/scalar_mul/precomputed_straus.rs":"4adbab25fe3a26867548cd3fd788bbecab1c7c35270b9adbd59c466f09ecffed","src/backend/vector/scalar_mul/straus.rs":"3dea20f3f30aab82d06fa1416268015d20402c9d3211612549d89199182de810","src/backend/vector/scalar_mul/variable_base.rs":"6506efaf0c50dab542d8a4dcec0c94683296e02866367e777d1c259c41dbfc9b","src/backend/vector/scalar_mul/vartime_double_base.rs":"d1330c64e64343d2e3a79f01fa2b3ba6c004bc270f9796eee3117364cc726ee5","src/constants.rs":"f2de2d3e6c0cedc301475cc6043e0baa1418c677998ebce8863fa04a6e14a6b0","src/diagnostics.rs":"737e956565a9fac8b9b7245c259a3d776227812b4c735eea49abdf5f4b44ff63","src/edwards.rs":"8fc61ca156d8a17f603a95d9154e70ceee96e588e055d5ecff4b8f3544990d7f","src/field.rs":"5d5d12be9fcdf681df5762f951f59890ba5b7831bce2e88e257f30a958bb8dfd","src/lib.rs":"19301562aa3f5fb2e5f91ba75ced44131a5fa6a629f645d5c807c8a6bef96577","src/macros.rs":"2d848f7d36d69108f1ff0d641537c726bcefb40721f42ca2180176af14d081f3","src/montgomery.rs":"49a75524b05076d053c67b49f9e9f082fb0c5ec9c723acc8e73611f3c955a812","src/ristretto.rs":"76edde1a73b7bacc6f9c67f2f6cc82926f2dfa2d3dbd5d59429dfd4a0afb1ded","src/scalar.rs":"590d127b8b4b7531be11bc268e0784ac9125b9b13cbde7b44a63a900bb4aa60a","src/traits.rs":"7973535ac78cf86a6663df70f17d1c1fc828ab41b5a7ef7112d7915665b11725","src/window.rs":"d153d2ce0ae8a509824af884346fff8339c7f5ea3ce1008251b85622a82313b1","tests/build_tests.sh":"3eb54238d60cbe438f9fd0848aa9ce36eab6ea9de8ef655eba2118bf6ffeef3f","vendor/ristretto.sage":"a2f4309ada0afa4156f5a660be4384a0f1f332c12f836199124f48e89310344d"},"package":"e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"}
1+
{"files":{"CHANGELOG.md":"c1b62cc204693d67a509c5dc89dab51cdc81d95c457e70c8a9e57332e0b81044","Cargo.toml":"ef9a2ca89de6eb3e09adf27478df06d246f27ee025150241e847aff26d78129d","LICENSE":"cca0bd3c4fcdba74145ef9d49c62337e2c9fbf9368288f11d0547f1b0273219f","Makefile":"077a0ab4ad06f7e041968c7673c265360ce60254506b10820edb48bd38a07d7f","README.md":"5905d6af2da3098f3a095ed09d65b1236bd998fc3be803a626a4024399b6390f","benches/dalek_benchmarks.rs":"0ee0e8cd50cf9621fe40008283078f90e771cdd62d84237b5893acee67e6447c","build.rs":"c479ea95fa9cac8b3374564261c15cfcb110738ddcaa5e0852644b6083bd9189","docs/assets/rustdoc-include-katex-header.html":"088c9bb27bdc5c240c00ff1c06d583d77995d53b76421116609a751ca4a54b59","docs/avx2-notes.md":"47e41778044529299f78906d99d6dfe9c0400acf5ad32e519fa54b6d6bea36dc","docs/ifma-notes.md":"e1fab7acb37c363d391659b2b8cae44844aa1121a074e3752f5ae6b49027d8ac","docs/parallel-formulas.md":"94d620c7fd8a0c9edba320c175cedb5458a37833f3fb5dbe989c540ab8eda4ff","src/backend/mod.rs":"0a9c9afa3e88ee691a344460b76078a884d7a3cc722223cc95e62f4de235379d","src/backend/serial/curve_models/mod.rs":"ac3a6e25659ee804e55064d87010ab69af80a78a149d05796fa3d9e5c5fb0b62","src/backend/serial/fiat_u32/field.rs":"cc4f923ab24efd5f3942133143d6f0fc9e5fff00774cc22b1049e61f48d6c112","src/backend/serial/fiat_u32/mod.rs":"6e36a757f0f804caaebb5a2f0c04754589740279160890d592287edc7d65efcf","src/backend/serial/fiat_u64/field.rs":"1182ecb1321c597ac2f69ad25bce084a689913d0e43d41739783964f2b74d8e0","src/backend/serial/fiat_u64/mod.rs":"6e6f773aa9669a740519d2256421734ddfee60cd6ad7f45156b6b5201c10487d","src/backend/serial/mod.rs":"8c92cec992cf112c0683ed328ecfdfcc08d4732de92a76c882b3062e4549f39c","src/backend/serial/scalar_mul/mod.rs":"a6a4185075faebf984f365b6dcc28c3da6c087d18d811257cd2c0245b41d113e","src/backend/serial/scalar_mul/pippenger.rs":"d9bf40f8a31987a917f8e5b984443b60eb358cc0586c5b46ea6459446684cc64","src/backend/serial/scalar_mul/precomputed_straus.rs":"d26f11fc80a9ca95410007290746d04eaa7c8a85d7b3c686c856560847a6f3b3","src/backend/serial/scalar_mul/straus.rs":"92040d722c6771c3f90c8c86621f5ef9239e1bec237750d2f39c311d5cb7463b","src/backend/serial/scalar_mul/variable_base.rs":"b9bc69189d5a9339a4c05882b736ac65176b6e98eb93008bc5e200b090e386b6","src/backend/serial/scalar_mul/vartime_double_base.rs":"528db8b24adf9a3b50fbe89fe917b0ae9dace30bbcae9f40c0ba3583f1d80ac8","src/backend/serial/u32/constants.rs":"1e62a0897ecca3e4bec3512236160e3b9fc3b089ceccd9d0e2215c9e9765a986","src/backend/serial/u32/field.rs":"1aaefdbf121a7f9787ff6b2e5c370eca97d5a45f1c76df627f5cd430f7b7323d","src/backend/serial/u32/mod.rs":"14fabb2034c68094df508c19517db14e5e3b956b5dac93bd0dd3c125f47f396e","src/backend/serial/u32/scalar.rs":"0ccf76feb3452624f6716b7c8b906d7e0c9eeb3e9e4ad096acac3f1ecc16d416","src/backend/serial/u64/constants.rs":"fa72dc113456cfbe5d34f144e89e1bbe2976b1016b09a278fe1e4b3fda57ab6f","src/backend/serial/u64/field.rs":"a4e90b018c235852da117db1bb87e62a2bbe75725e52c16462705a9c0a25e977","src/backend/serial/u64/mod.rs":"b4aab9c62cf39bafc976b2e03bea503f120b125c30eb0e9e5d5f257b08a3eda4","src/backend/serial/u64/scalar.rs":"0926d7e50c7477ceb300f66c49f44c53c56597fcbd7083ba36f965b6e7a2301d","src/backend/vector/avx2/constants.rs":"95f19d41ad1796d892734ba9125f6442dcb049f6392d31c1ec61d5b4a011102b","src/backend/vector/avx2/edwards.rs":"6734cadeec567675b94b7278c9f4d21f53120a1a6c79b61261cc18b2fbb1d624","src/backend/vector/avx2/field.rs":"9c904f61332c605850dc3a60808dc2981777facdf60ebf5f3bc8a325dea66fff","src/backend/vector/avx2/mod.rs":"e8933b6f1e11255c701eda08bdcbf3593c0c2e169006c13aab26e1c92ebe24d8","src/backend/vector/ifma/constants.rs":"69f06bb74de041842b8780bb13da4f636d2876ae0bb871889a192313f10d3511","src/backend/vector/ifma/edwards.rs":"84ca8c236dafe186599294dfbd5fc00f3961b7a631e4add1946c9b1d97aee3cb","src/backend/vector/ifma/field.rs":"e78789524cad9bdb4be2da87970da0a7852eb823c18a08df54f68683e69e4c0f","src/backend/vector/ifma/mod.rs":"5feec145182a460e856afe37d9aacac0124e59600e46727752e956ee908dec1e","src/backend/vector/mod.rs":"3fce1ede5a2705640aaa9e509c3c38614cbb5b8882d943fc112b91d00cfdccbf","src/backend/vector/packed_simd.rs":"295f734a1e4d752b6df0b8b0255315e6e6f9947c0abdcb98e0b346ded559f4d1","src/backend/vector/scalar_mul/mod.rs":"c2ae669727ba81a486b447f98561273cd62f76b1c546c55dafdc86c85674e8e7","src/backend/vector/scalar_mul/pippenger.rs":"55db1d720f2cc073352927d3517495b8faf6b368828d50eb1d91a45dfd288e81","src/backend/vector/scalar_mul/precomputed_straus.rs":"4adbab25fe3a26867548cd3fd788bbecab1c7c35270b9adbd59c466f09ecffed","src/backend/vector/scalar_mul/straus.rs":"3dea20f3f30aab82d06fa1416268015d20402c9d3211612549d89199182de810","src/backend/vector/scalar_mul/variable_base.rs":"6506efaf0c50dab542d8a4dcec0c94683296e02866367e777d1c259c41dbfc9b","src/backend/vector/scalar_mul/vartime_double_base.rs":"d1330c64e64343d2e3a79f01fa2b3ba6c004bc270f9796eee3117364cc726ee5","src/constants.rs":"f2de2d3e6c0cedc301475cc6043e0baa1418c677998ebce8863fa04a6e14a6b0","src/diagnostics.rs":"737e956565a9fac8b9b7245c259a3d776227812b4c735eea49abdf5f4b44ff63","src/edwards.rs":"28014a3b0d1b4a4502eea90e812653a6cb6c01b77a9921719a422f808b7a9bbb","src/field.rs":"75fa7d6055d1f19aa9e4a2d231c6f2d4a74dfa62f0eb7e49a40b45462f709a01","src/lib.rs":"d8041dbc74e84df6a01cc0186a80501e5642d421734222950d8e0d5a50fc9701","src/macros.rs":"2d848f7d36d69108f1ff0d641537c726bcefb40721f42ca2180176af14d081f3","src/montgomery.rs":"49a75524b05076d053c67b49f9e9f082fb0c5ec9c723acc8e73611f3c955a812","src/ristretto.rs":"ea4f8f8c3785a8ccf17013610582a8c73d59c60693cf5a6298030a10c142c352","src/scalar.rs":"d60cd7ef2ef08072f9e073a43b3485a631dc732daf22054cceff00f96afaa4af","src/traits.rs":"67dc6e016c53c69225200a8cd2e76f152783d23149a11b7306f5de7cff37d92c","src/window.rs":"2124ce6436f9c9b753605c406de00443002a9f2c81cf2a24cbd0df0f7885f219","tests/build_tests.sh":"3eb54238d60cbe438f9fd0848aa9ce36eab6ea9de8ef655eba2118bf6ffeef3f","vendor/ristretto.sage":"a2f4309ada0afa4156f5a660be4384a0f1f332c12f836199124f48e89310344d"},"package":"97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"}

src/rust/vendor/curve25519-dalek/CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ major series.
55

66
## 4.x series
77

8+
### 4.1.3
9+
10+
* Security: Fix timing leak in Scalar subtraction on u32, u64, fiat_u32, and fiat_u64 backends
11+
* Fix assorted new warnings and lints from rustc and clippy
12+
13+
### 4.1.2
14+
15+
* Fix nightly SIMD build
16+
817
### 4.1.1
918

1019
* Mark `constants::BASEPOINT_ORDER` deprecated from pub API
@@ -123,7 +132,7 @@ major series.
123132

124133
### 2.1.2
125134

126-
* Multiple documenation typo fixes.
135+
* Multiple documentation typo fixes.
127136
* Fix `alloc` feature working with stable rust.
128137

129138
### 2.1.1

src/rust/vendor/curve25519-dalek/Cargo.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
edition = "2021"
1414
rust-version = "1.60.0"
1515
name = "curve25519-dalek"
16-
version = "4.1.1"
16+
version = "4.1.3"
1717
authors = [
1818
"Isis Lovecruft <[email protected]>",
1919
"Henry de Valence <[email protected]>",
@@ -123,9 +123,6 @@ default-features = false
123123
version = "0.10"
124124
default-features = false
125125

126-
[build-dependencies.platforms]
127-
version = "3.0.2"
128-
129126
[build-dependencies.rustc_version]
130127
version = "0.4.0"
131128

src/rust/vendor/curve25519-dalek/build.rs

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,31 @@ enum DalekBits {
99
Dalek64,
1010
}
1111

12+
use std::fmt::Formatter;
13+
14+
impl std::fmt::Display for DalekBits {
15+
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
16+
let w_bits = match self {
17+
DalekBits::Dalek32 => "32",
18+
DalekBits::Dalek64 => "64",
19+
};
20+
write!(f, "{}", w_bits)
21+
}
22+
}
23+
1224
fn main() {
25+
let target_arch = match std::env::var("CARGO_CFG_TARGET_ARCH") {
26+
Ok(arch) => arch,
27+
_ => "".to_string(),
28+
};
29+
1330
let curve25519_dalek_bits = match std::env::var("CARGO_CFG_CURVE25519_DALEK_BITS").as_deref() {
1431
Ok("32") => DalekBits::Dalek32,
1532
Ok("64") => DalekBits::Dalek64,
16-
_ => deterministic::determine_curve25519_dalek_bits(),
33+
_ => deterministic::determine_curve25519_dalek_bits(&target_arch),
1734
};
1835

19-
match curve25519_dalek_bits {
20-
DalekBits::Dalek64 => println!("cargo:rustc-cfg=curve25519_dalek_bits=\"64\""),
21-
DalekBits::Dalek32 => println!("cargo:rustc-cfg=curve25519_dalek_bits=\"32\""),
22-
}
36+
println!("cargo:rustc-cfg=curve25519_dalek_bits=\"{curve25519_dalek_bits}\"");
2337

2438
if rustc_version::version_meta()
2539
.expect("failed to detect rustc version")
@@ -36,11 +50,6 @@ fn main() {
3650
println!("cargo:rustc-cfg=allow_unused_unsafe");
3751
}
3852

39-
let target_arch = match std::env::var("CARGO_CFG_TARGET_ARCH") {
40-
Ok(arch) => arch,
41-
_ => "".to_string(),
42-
};
43-
4453
// Backend overrides / defaults
4554
let curve25519_dalek_backend =
4655
match std::env::var("CARGO_CFG_CURVE25519_DALEK_BACKEND").as_deref() {
@@ -74,53 +83,43 @@ mod deterministic {
7483

7584
use super::*;
7685

77-
// Standard Cargo TARGET environment variable of triplet is required
78-
static ERR_MSG_NO_TARGET: &str = "Standard Cargo TARGET environment variable is not set";
86+
// Custom Rust non-cargo build tooling needs to set CARGO_CFG_TARGET_POINTER_WIDTH
87+
static ERR_MSG_NO_POINTER_WIDTH: &str =
88+
"Standard Cargo TARGET_POINTER_WIDTH environment variable is not set.";
7989

80-
// Custom Non-Rust standard target platforms require explicit settings.
81-
static ERR_MSG_NO_PLATFORM: &str = "Unknown Rust target platform.";
90+
// When either non-32 or 64 TARGET_POINTER_WIDTH detected
91+
static ERR_MSG_UNKNOWN_POINTER_WIDTH: &str = "Unknown TARGET_POINTER_WIDTH detected.";
8292

8393
// Warning when the curve25519_dalek_bits cannot be determined
8494
fn determine_curve25519_dalek_bits_warning(cause: &str) {
8595
println!("cargo:warning=\"Defaulting to curve25519_dalek_bits=32: {cause}\"");
8696
}
8797

8898
// Determine the curve25519_dalek_bits based on Rust standard TARGET triplet
89-
pub(super) fn determine_curve25519_dalek_bits() -> DalekBits {
90-
use platforms::target::PointerWidth;
91-
92-
// TARGET environment is supplied by Cargo
93-
// https://doc.rust-lang.org/cargo/reference/environment-variables.html
94-
let target_triplet = match std::env::var("TARGET") {
95-
Ok(t) => t,
99+
pub(super) fn determine_curve25519_dalek_bits(target_arch: &String) -> DalekBits {
100+
let target_pointer_width = match std::env::var("CARGO_CFG_TARGET_POINTER_WIDTH") {
101+
Ok(pw) => pw,
96102
Err(_) => {
97-
determine_curve25519_dalek_bits_warning(ERR_MSG_NO_TARGET);
98-
return DalekBits::Dalek32;
99-
}
100-
};
101-
102-
// platforms crate is the source of truth used to determine the platform
103-
let platform = match platforms::Platform::find(&target_triplet) {
104-
Some(p) => p,
105-
None => {
106-
determine_curve25519_dalek_bits_warning(ERR_MSG_NO_PLATFORM);
103+
determine_curve25519_dalek_bits_warning(ERR_MSG_NO_POINTER_WIDTH);
107104
return DalekBits::Dalek32;
108105
}
109106
};
110107

111108
#[allow(clippy::match_single_binding)]
112-
match platform.target_arch {
109+
match &target_arch {
113110
//Issues: 449 and 456
111+
//TODO: When adding arch defaults use proper types not String match
114112
//TODO(Arm): Needs tests + benchmarks to back this up
115-
//platforms::target::Arch::Arm => DalekBits::Dalek64,
116113
//TODO(Wasm32): Needs tests + benchmarks to back this up
117-
//platforms::target::Arch::Wasm32 => DalekBits::Dalek64,
118-
_ => match platform.target_pointer_width {
119-
PointerWidth::U64 => DalekBits::Dalek64,
120-
PointerWidth::U32 => DalekBits::Dalek32,
114+
_ => match target_pointer_width.as_ref() {
115+
"64" => DalekBits::Dalek64,
116+
"32" => DalekBits::Dalek32,
121117
// Intended default solely for non-32/64 target pointer widths
122118
// Otherwise known target platforms only.
123-
_ => DalekBits::Dalek32,
119+
_ => {
120+
determine_curve25519_dalek_bits_warning(ERR_MSG_UNKNOWN_POINTER_WIDTH);
121+
DalekBits::Dalek32
122+
}
124123
},
125124
}
126125
}

0 commit comments

Comments
 (0)