{% extends "base.html" %} {% block title %}{{ title }} · Wrapped{% endblock %} {% block content %}

Verify

How to verify Wrapped

What leaves your browser, what stays on the server, and how the key in #fragment works.

Encryption in the browser

Text and files are packed and encrypted with Web Crypto (AES-GCM) before upload. The server receives only ciphertext plus metadata (TTL, MIME, size, optional password hash).

Key in the URL fragment

The share link looks like /w/<id>#<key>. The part after # never reaches the server in the page request. Without that fragment (or the full wrapped token), ciphertext cannot be decrypted.

Opens and destruction

By default a wrap can be opened once; then ciphertext is deleted. If the sender chose 2–3 opens, the server keeps ciphertext until the last successful unwrap. Expiry and password lockout still destroy the package.

Optional password

When a password is set, the server checks an Argon2 hash before releasing ciphertext. Wrong guesses are limited; empty password does not burn an attempt.

Available from

If “available from” is set, unwrap is rejected until that time. After that, normal open/expiry rules apply.

Create a wrap
{% endblock %}