Sha512 doesn't work under Miri on macOS
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 66/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- rust
- 領域
- cryptography
調査の方向性
まず、trace に示された依存関係 sha2 内の AArch64 SHA-512 実装と、リポジトリの Miri テスト設定を読みます。macOS で cargo miri test を実行して再現します。失敗は、Miri が SHA-512 ハードウェア intrinsic を呼び出したときに発生します。Miri テストがこの未対応操作エラーなしで macOS 上で実行できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
This is similar to https://github.com/RustCrypto/block-ciphers/issues/585. Sha3 is enabled on macOS by default, but not actually implemented under Miri, so users can't just cargo miri test:
error: unsupported operation: can't call LLVM intrinsic `llvm.aarch64.crypto.sha512h` on architecture `aarch64`
--> /Users/runner/.rustup/toolchains/nightly-2026-11-06-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/../../stdarch/crates/core_arch/src/aarch64/neon/generated.rs:23153:14
|
test tests::seal_for_another_pre_seal_hash_is_ignored ...
23153 | unsafe { _vsha512hq_u64(a, b, c) }
| ^^^^^^^^^^^^^^^^^^^^^^^ unsupported operation occurred here
|
= help: this means the program tried to do something Miri does not support; it does not indicate a bug in the program
= note: this is on thread `tests::seal_for_another_pre_seal_hash_is_ignored`
= note: stack backtrace:
0: std::arch::aarch64::vsha512hq_u64
at /Users/runner/.rustup/toolchains/nightly-2026-11-06-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/../../stdarch/crates/core_arch/src/aarch64/neon/generated.rs:23153:14: 23153:37
1: sha2::sha512::aarch64_sha3::compress
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.11.1/src/sha512/aarch64_sha3.rs:35:28: 35:90
2: sha2::sha512::compress
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.11.1/src/sha512.rs:64:41: 64:78
3: sha2::sha512::compress512
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.11.1/src/sha512.rs:79:5: 79:28
4: <sha2::block_api::Sha512VarCore as digest::block_api::VariableOutputCore>::finalize_variable_core::{closure#0}
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.11.1/src/block_api.rs:192:47: 192:83
5: block_buffer::BlockBuffer::<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, block_buffer::Eager>::digest_pad::<{closure@<sha2::block_api::Sha512VarCore as digest::block_api::VariableOutputCore>::finalize_variable_core::{closure#0}}>
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.12.1/src/lib.rs:399:9: 399:22
6: block_buffer::BlockBuffer::<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, block_buffer::Eager>::len128_padding_be::<{closure@<sha2::block_api::Sha512VarCore as digest::block_api::VariableOutputCore>::finalize_variable_core::{closure#0}}>
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.12.1/src/lib.rs:420:9: 420:65
7: <sha2::block_api::Sha512VarCore as digest::block_api::VariableOutputCore>::finalize_variable_core
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.11.1/src/block_api.rs:192:9: 192:84
8: <digest::block_api::ct_variable::CtOutWrapper<sha2::block_api::Sha512VarCore, typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>> as digest::block_api::FixedOutputCore>::finalize_fixed_core
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.11.3/src/block_api/ct_variable.rs:109:9: 109:65
9: <sha2::Sha512 as digest::FixedOutput>::finalize_into
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.11.3/src/buffer_macros/fixed.rs:224:17: 224:91
10: <sha2::Sha512 as digest::FixedOutput>::finalize_fixed
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.11.3/src/lib.rs:104:9: 104:37
11: <sha2::Sha512 as digest::digest::Digest>::finalize
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.11.3/src/digest.rs:88:9: 88:42
12: ed25519_dalek::signing::<impl std::convert::From<&[u8; ed25519_dalek::::signing::SecretKey::{constant#0}]> for ed25519_dalek::hazmat::ExpandedSecretKey>::from
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-dalek-3.0.0/src/signing.rs:866:20: 866:73
13: ed25519_dalek::SigningKey::from_bytes
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-dalek-3.0.0/src/signing.rs:116:49: 116:84
14: <ed25519_dalek::SigningKey as std::convert::From<[u8; ed25519_dalek::::signing::SecretKey::{constant#0}]>>::from
at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-dalek-3.0.0/src/signing.rs:677:9: 677:34
15: tests::seal_for_another_pre_seal_hash_is_ignored
at crates/node/ab-node-rpc-server/src/tests.rs:121:23: 121:47
16: tests::seal_for_another_pre_seal_hash_is_ignored::{closure#0}
at crates/node/ab-node-rpc-server/src/tests.rs:120:47: 120:47
- 主要言語
- Rust
- スター
- 2.3k
- フォーク
- 350
- 平均マージ
- 18時間 14分
- マージ済み PR(30日)
- 11
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
RustCrypto/hashes のほかの issue
-
`blake2::Blake2b512` does not implement `ZeroizeOnDrop`対応中かも @Johnsonajibi が 68 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
RustCrypto/hashes#912 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
RustCrypto/hashes#909 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
RustCrypto/hashes#908 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
RustCrypto/hashes#763 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
blake2: implement `CustomizedInit` using `digest` macro再び着手できるかも @MavenRain が 101 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
RustCrypto/hashes#747 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
RustCrypto/hashes の issue をすべて見る
似ている issue
-
Unit tests use deprecated constant (part 2)対応中かも @servo-highfive が今日担当しました。 オープンE-less-complex
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
servo/servo#49766 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug good first issue help wanted linux macos testing
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
area: app type: test
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
bug priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
storytold/photocraft#12706 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug priority-low to-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信