Comments (1)
This is happening due to incorrect and excessive usage of the inline
attribute. The current test that fails CI is:
#[test]
fn err_on_keyed_switch_on_reset() {
let secret_key = SecretKey::from_slice(b"Testing").unwrap();
let data = "what do ya want for nothing?".as_bytes();
let mut state = init(Some(&secret_key), 64).unwrap();
state.update(data).unwrap();
let _ = state.finalize().unwrap();
assert!(state.reset(None).is_err());
let mut state_second = init(None, 64).unwrap();
state_second.update(data).unwrap();
let _ = state_second.finalize().unwrap();
assert!(state_second.reset(Some(&secret_key)).is_err());
}
This test is part of blake2b
and because the Blake2b
state reset()
function is marked as #[inline(always)]
the compilation exhausts all the VM's memory.
All inline
attributes should be removed from public API's and the library in general should only use inline(always)
if there is a serious performance advantage.
from orion.
Related Issues (20)
- Missing `Debug` trait for BLAKE2b `Hasher` enum HOT 3
- MSRV `1.52.0` fails because of bad version of `plotters`
- Consider adding `Eq` where possible HOT 5
- Investigate whether actions-rs should be replaced HOT 1
- Remove ignores of `criterion`-based RUSTSEC advisories once fixed HOT 2
- Misuse issue in (X)ChaCha20 and (X)ChaCha20-Poly1305 APIs HOT 2
- Remove `cargo audit` workflow HOT 1
- Making zeroization optional
- Adding key-committing AEAD implementations (CTX or UtC/RtC/HtE) HOT 7
- Consider using `cargo-semver-checks`
- Provide link to OWASP in Argon2i documentation
- Update Wycheproof test vectors
- Add chunked input processing of KATs
- Unify hashing APIs of BLAKE2b, SHA2 and SHA3
- Asymmetric encryption functions for long-term / re-usable encrypted data storage HOT 5
- Add support for HPKE (ChaCha20-Poly1305 + DHKEM(X25519, HKDF-SHA256))
- `Digest` to `&[u8]` HOT 2
- Does orion support iOS and Android platforms? HOT 1
- Consider using checked_mul(8) instead of checked_shl(3) in SHA2 HOT 1
- Add Blake3 support HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orion.