LivaraPrivate messenger, home

Livara Proof Lab: Run the checks yourself.

Livara 0.1.68 · runs on your device

Five working instruments, not a badge in a footer. Hash the Android build against the digest published here, generate real keys, seal a message and then break it. Everything runs in this tab; the page has no upload endpoint to send anything to.

Your verification score

0% verified

0 of 5 checks completed on this device.

The APK you downloaded is the APK we publishedHash your own file in your own browser and compare it to the number below.
The shipped cryptographic primitives really produce ciphertextRun real P-256, HKDF and AES-GCM locally; the full LVR1/LGS1 composition remains outside this bench.
A tampered message is rejected, not silently acceptedFlip one bit of the ciphertext and watch the authentication check refuse it.
You can tell one key from anotherGenerate two identities and see that no two fingerprints collide.
None of this needed our serversEverything on this page runs offline. Disconnect and try it again.

Instrument 01 · Build identity

Is this file ours?

An APK is just bytes, and bytes can be swapped anywhere between our server and your phone — a hostile network, a mirror, a helpful friend with a modified build. Drop your download below: it is read in slices, hashed on this device, and never leaves it.

sha256.localnothing is uploaded
Digest of your file
Waiting for a file.
published.digest0.1.68 (69)
SHA-256 we published for this build
55817879 4E3B2DB3 C2843939 F8CE2591 6105765C CF5A01A6 741724F0 C0B4E11E
Raw .sha256
File
livara-beta-android-0.1.68.apk
Size
73.5 MB
Minimum
Android 8.0+

Prefer your own tools? You should not have to trust this page either.

sha256sum livara-beta-android-0.1.68.apkshasum -a 256 …certutil -hashfile … SHA256

Instrument 02 · The sealing

Watch a message become unreadable.

Two identities are generated in your browser when you press the button. They agree on a secret over P-256 ECDH without it ever existing on the wire, stretch it through HKDF-SHA-256, and seal your text with AES-256-GCM. What comes back is what a relay would actually hold.

handshake.liveP-256 · HKDF · AES-256-GCM
Public-key fingerprints
Not generated yet.
relay.storagewhat the server would hold
Ciphertext
Press “Seal it” and this fills with the only version of your sentence a relay ever sees.
Receiver output
Nothing has been opened yet.

The honest footnote. This bench runs P-256, HKDF and AES-GCM for real. The shipped LVR1 protocol also advances classical message chains and a separate ML-KEM-768 epoch root; LGS1 adds signed group sender chains. No browser API exposes the complete construction, so this bench does not pretend to be a protocol audit.

Instrument 03 · Identity

Two keys should never look alike.

A fingerprint is a short, readable stand-in for a public key. It is how you notice that the person you have talked to for a year suddenly has a different one. Press it a few times.

identity.generateP-256 · SHA-256
Press more than once

Instrument 04 · Silence

Confirm none of this phoned home.

A privacy claim you cannot audit is a slogan. Your browser keeps its own record of every request a page makes. Once this page has finished loading, the lab counts every request that starts. The better test is to turn your network off and run everything above again.

network.auditbrowser resource timeline
Requests started since the page loaded
0

After the checks

What this page cannot prove.

A verification page that claims to settle everything is just a longer advertisement. Here is the exact edge of what you have established.

Established
  • The APK bytes you selected match the digest published on this site
  • The browser demonstrations behave as displayed on your machine
  • A single altered bit is refused, not silently accepted
  • Distinct identities produce distinct, comparable fingerprints
  • None of these checks required our servers
Not established
  • That the server stores no routing metadata — it does, for delivery and sync
  • That broadcast channels are private — they are public by design
  • That this bench runs the full LVR1/LGS1 ratchets — the app does
  • That an unlocked phone in someone else's hand is protected
  • That future releases are pre-verified — check the digest on every build
What the Livara server can and cannot read in direct chats, private groups, and channels
What it isDirect 1:1Private groupsChannels
Message textPost-Quantum E2EE (LVR1)End-to-end sealed (LGS1)Public broadcast channels
Text editsPost-Quantum E2EE (LVR1)End-to-end sealed (LGS1)Public broadcast channels
Photos, video, files, captionsPost-Quantum E2EE (LVR1)End-to-end sealed (LGS1)Public broadcast channels
Who you talked toRouting metadata onlyRouting metadata onlyPublic broadcast channels
When you talkedDelivery timestamps onlyDelivery timestamps onlyPublic broadcast channels
Your passwordNever leaves your deviceNever leaves your deviceNever leaves your device
Your private keysNever leave your deviceNever leave your deviceNever leave your device
Filled dot: the server cannot read itRing: the server can see it

Questions

The ones people actually ask.

How do I check that a Livara APK has not been tampered with?

Download the APK, then use the Proof Lab on this page to compute its SHA-256 digest in your own browser and compare it, character by character, with the digest published beside the download. The file is never uploaded. If the two digests differ, delete the file instead of installing it.

Does the Proof Lab send anything to Livara's servers?

No. Every instrument runs locally using primitives your browser already ships. Once the page has finished loading, the lab counts every network request that starts and shows you the number. You can also disconnect from the network and run every instrument again.

Is the encryption demo the real Livara encryption?

It runs real P-256 ECDH, HKDF-SHA-256 and AES-256-GCM, the primitives Livara uses, but it is not the complete LVR1 or LGS1 protocol. LVR1 also has a classical double ratchet and an ML-KEM-768 epoch ratchet; LGS1 has signed sender chains distributed inside LVR1. The lab proves the primitives and tamper rejection, not the whole composition or an external audit.

What happens if someone changes one byte of an encrypted message?

The AES-256-GCM authentication tag fails and the receiver rejects the message outright. It never shows a corrupted or partially decrypted version. Seal a message below, flip a single bit, and watch the decryption be refused.

Install order

Checked it? Then install it.

Not before. That order is the entire recommendation, and it applies to every app you install, not only this one.

0.1.68 (69) · 73.5 MB · Android 8.0+