Sha512 doesn't work under Miri on macOS
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 66/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- cryptography
Línea de trabajo
Empieza por leer la implementación de SHA-512 para AArch64 en la dependencia sha2 que aparece en el trace y la configuración de pruebas de Miri del repositorio. Reproduce el fallo con cargo miri test en macOS; ocurre cuando Miri llama al intrinsic de hardware SHA-512. El objetivo se cumple cuando las pruebas de Miri pueden ejecutarse en macOS sin ese error de operación no compatible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Rust
- Estrellas
- 2.3k
- Forks
- 350
- Merge medio
- 18 h 14 min
- PR fusionados (30 d)
- 11
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de RustCrypto/hashes
-
`blake2::Blake2b512` does not implement `ZeroizeOnDrop`Posiblemente ocupada @Johnsonajibi la tomó hace 68 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
RustCrypto/hashes#912 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
RustCrypto/hashes#909 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
RustCrypto/hashes#908 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
RustCrypto/hashes#763 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
blake2: implement `CustomizedInit` using `digest` macroQuizá libre de nuevo @MavenRain la tomó hace 101 días y no hay ningún pull request abierto. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
RustCrypto/hashes#747 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de RustCrypto/hashes
Issues similares
-
bug priority: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
storytold/photocraft#12706 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
IngvarConsulting/unica#2822 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Clean master build fails in zune-jpeg error conversion and zero-IV array construction (patch)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100