Runs on your device · nothing uploaded

Trust is a checklist, not a feeling.

Every messenger on earth says it is encrypted. Almost none of them hand you an instrument and invite you to check. This page is the instrument. Work down it and, by the end, you will not have taken a single sentence on this site on faith — including this one.

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.hash
A message really is unreadable once sealedRun the same hybrid handshake this page ships and look at the ciphertext.seal
A tampered message is rejected, not silently acceptedFlip one bit of the ciphertext and watch the authentication check refuse it.tamper
You can tell one key from anotherGenerate two identities and see that no two fingerprints collide.fingerprint
None of this needed our serversEverything on this page runs offline. Disconnect and try it again.offline
Instrument 01 — Build identity

Is the file in your downloads folder our file?

An APK is just bytes, and bytes can be swapped anywhere between our server and your phone — a hostile network, a mirror site, a helpful friend with a modified build. There is exactly one way to know: take the fingerprint of the file you actually have and compare it to the fingerprint we published. Drop your download below. It is read in slices, hashed on this device, and never leaves it.

sha256.localnothing is uploaded
Waiting for a file.
published.digest1.7.8 (73)
2B732F7D B144B5FE A35A2DE9 31ED0609 593387D9 70FB0C0B DF9E6CA9 3D22B617
Raw .sha256 file

FILE
livara-chat-1.7.8-73.apk
SIZE
172.9 MB
MINIMUM
Android 7.0+

Prefer your own tools? Run sha256sum livara-chat-1.7.8-73.apk on Linux, shasum -a 256 on macOS, or certutil -hashfile … SHA256 on Windows. You should not have to trust this page either.

Instrument 02 — The sealing

Watch a message become unreadable

Two identities are generated in your browser the moment you press the button — call them Ada and Bo. They agree on a secret over P-256 ECDH without that secret ever existing on the wire, stretch it through HKDF-SHA-256, and use the result to seal your text with AES-256-GCM. What you get back is what a relay would actually be holding. Read it for as long as you like.

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

The honest footnote. This bench runs the classical half of Livara’s handshake for real. The shipped client also encapsulates an ML-KEM-768 secret and mixes it into the same HKDF step, so an attacker has to break both. No browser exposes ML-KEM natively, so we describe that half rather than fake it here — which is the difference between a demo and a proof, and we would rather you knew which one you are looking at.

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 been talking to for a year suddenly has a different key. Press the button a few times: every identity this browser generates gets its own fingerprint, and none of them collide.

identity.generateP-256 · SHA-256 fingerprint
Press it more than once
Instrument 04 — Silence

Confirm that 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; this lab snapshots that record when it opens and shows you how many requests it has made since. The honest answer should be zero. The better test is to turn your network off and run everything above again.

network.auditbrowser resource timeline
0

Turn off Wi-Fi and mobile data, reload nothing, and use every instrument on this page again. They will all still work, because none of them ever needed us.

After the checks

What this page cannot prove, and will not pretend to

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

Established
  • The APK you hold is bit-for-bit the build published here
  • The cipher suite behaves exactly as described, 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 to be involved
Still open
  • That our server does not log who you message, and when — it does
  • That group and channel content is hidden from us — it is not
  • That your own device is free of malware reading your screen
  • That a future release will behave like this one — check every build
  • That this page is honest, if you never verify anything on it yourself
coverage.matrixthe same table, everywhere
What the Livara server can and cannot read, in direct chats compared to groups and channels
What it isDirect 1:1Groups & channels
Message textSealed on your deviceServer can read it
Photos, video, filesEncrypted before uploadServer can read them
Captions and editsSealed on your deviceServer can read them
Who you talked toServer knowsServer knows
When you talkedServer knowsServer knows
Your passwordNever leaves your deviceNever leaves your device
Your private keysNever leave your deviceNever leave your device
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, to the digest published beside the download. The file is never uploaded — the hashing runs entirely on your device. If the two digests differ, the file is not the build published here and should be deleted rather than installed.

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

No. Every instrument runs locally using primitives your browser already ships. The page counts its own network requests using the browser's resource timeline and shows you the number, so the claim can be checked rather than trusted. You can also disconnect from the network and run every instrument again.

Is the encryption demo the real Livara encryption?

It is the classical half of it, run for real: P-256 ECDH, HKDF-SHA-256 key derivation and AES-256-GCM authenticated encryption, exactly as the shipped client uses them. The shipped client additionally encapsulates an ML-KEM-768 secret and mixes it into the same HKDF step. No browser exposes ML-KEM natively, so that half is described here rather than simulated. Saying so is the point of this page.

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 does not show a corrupted or partially decrypted version. You can trigger this yourself in the Proof Lab: seal a message, flip a single bit, and watch the decryption be refused.

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.