| GitHub | https://github.com/qua3k |
| hotel | trivago |
| GitHub | https://github.com/qua3k |
| hotel | trivago |
Been working on the Rust allocator recently; ended up delving into the aliasing model with stacked/tree borrows. It’s difficult to write sound multithreaded code with references in the presence of raw pointers, and the lack of view types make for unergonomic code under the strict stacked borrows
The per-location tracking of tree borrows is necessary to be able to use references in a sane way at all without prolific, infectious use of raw pointers that eliminate the utility of the borrow checker. I’d really like to see tree borrows model see wider adoption, especially for allocator authors.
xposted from https://bsky.app/profile/quack.bsky.social/post/3kiein3pftf2h
Been working on the Rust allocator recently; ended up delving into the aliasing model with stacked/tree borrows. It’s difficult to write sound multithreaded code with references in the presence of raw pointers, and the lack of view types make for unergonomic code under the strict stacked borrows…
The LLVM Foundation is pleased to announce the 2023 EuroLLVM Program! As a reminder, Early Bird Registration ends on April 10th. Keynote Speaker Order out of Chaos, The LLVM Release Process. Tobias Hieta “-fbounds-safety”: Enforcing bounds safety for production C code Yeoul Na Technical Talk Speaker An example of data flow analysis in MLIR Tom Eccles MLIR-based offline memory planning and other graph-level optimizations for xcore.ai Deepak Panickal A Rusty CHERI: Th...
This is, without loss of generality, the funniest fucking thing.
https://breakingthe3ma.app/files/Threema-PST22.pdf
So as is standard with these kinds of papers we start by laying out roughly how Threema works. There’s 2 protocols we care about: the E2E “inner” protocol that runs between Threema users, and the C2S “outer” protocol that runs between users and the Threema server.
One reason I’ve never paid much attention to Threema is that it sorta notoriously uses the NaCl primitives (crypto_box in particular) for it’s crypto, so I assumed it’d be boring (= BAD ASSUMPTION).
So I’m like a couple grafs in to how the E2E protocol works and… they’re PKCS7 padding? PKCS7 is what you do in CBC mode; like, if I’m 3 bytes short of a full AES block, I pad with 03h 03h 03h. And I’m thinking to myself: you don’t need anything like this with a NaCl-style AEAD.
This is clearly Chekhov’s PKCS7 padding…
New blogpost! I put together a thorough survey of security mitigations and architectures from the past few years.
Hardware solutions, software mitigations, and safe languages. CHERI, MTE, Rust, Swift, kalloc_type, Firebloom, GuardedMemcpy, CastGuard, and more! https://saaramar.github.io/memory_safety_blogpost_2022/
