Posted on
in
Matrix, Programming
• 1884 words
• 9 minute read
Tags:
Differential Fuzzing, Fuzzing, Go, Olm, Cryptography, Beeper
Background When we at Beeper started working on the new Android app, based on mautrix-go, we initially tried using goolm as the crypto implementation instead of libolm. We almost immediately ran into issues for unknown reasons, and rather than fighting with cryptography, we decided to just put in the work to get libolm working in the Android app. However, libolm is annoying for multiple reasons. It’s a C++ library, so in order to use it from Go, you have to use cgo to import the functions. This makes cross-compiling difficult/impossible, and also requires that libolm is installed on the runtime system. Read more...