Skip to content

About

macOS app that hides encrypted messages inside images and music, so you can send them through any chat app. Uses post-quantum encryption (ML-KEM-768).

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Polyphonia

Shalva, the Polyphonia mascot

Send end-to-end encrypted messages through every messaging platform. Powered by post-quantum ML-KEM-768 key exchange and end-to-end encryption.

Demo

https://youtu.be/SYDRm9h2TzE

Build

You need macOS 14 or later, full Xcode, and Rust stable with rustup and cargo installed.

From the repository folder, build the Rust library and Swift bindings, then open the Xcode project:

scripts/build-xcframework.sh
open app/polyphonia/polyphonia.xcodeproj

In Xcode, choose the polyphonia scheme and click Run. The first build can take a few minutes while Rust dependencies are compiled.

Use

  1. The receiver opens Polyphonia, chooses Export my public key → ML-KEM-768 from the contact menu, then Use my photo… or Generate cover. The key is hidden in an ordinary PNG, which is copied and ready to send as an original file.
  2. The sender copies that image, chooses Open → Paste, gives the contact a local name, and chooses Add contact on the wheel.
  3. The sender selects a message, presses Command + Shift + P, chooses Seal → Image or Seal → Audio, and sends the created file to the receiver as a file or document.
  4. The receiver copies the file and presses Command + Shift + P, then chooses Open → Paste. They can also choose Browse to select it.

To reply, exchange key images in the other direction. Save .pub file… and Import public key… remain available if you prefer key files. Key images carry only the public key; photo metadata is removed. Send the PNG unchanged, since resizing or JPEG compression can destroy the hidden key.

For a hidden message, the sender enables Use a decoy, enters harmless decoy text and a passphrase, then seals the message. The receiver sees the decoy if they leave the passphrase empty; entering the agreed passphrase reveals the real message. Agree on that passphrase privately.

The app can also use a custom PNG/JPEG image cover in Stealth image mode or a 16-bit PCM WAV cover in WAV audio mode. Choose the cover in the controls before sealing. Send the resulting image or audio as an original file so the messenger does not recompress it.

About

macOS app that hides encrypted messages inside images and music, so you can send them through any chat app. Uses post-quantum encryption (ML-KEM-768).

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages