Skip to content
Alexandru JungeanOne Time SecretOther tools

One Time Secret - Tool - by Alexandru Jungean

Privacy Policy

Română

GDPR information about what this service processes, what it never sees, how long data lasts, and your rights.

Version 1.1.0 · Effective 22 August 2026

This Privacy Policy explains how Alexandru Jungean (“Operator”, “we”, “us”) processes personal data when you use One Time Secret - Tool - by Alexandru Jungean at https://secret.alexjungean.com (the “Service”). It is the Article 13 / 14 GDPR notice for this Service.

Read it with the Terms of Use, Cookies and Local Storage, Infrastructure and Subprocessors, and, if you are a professional customer, the Data Processing Addendum. The Romanian text is at Politică de confidențialitate.

This Policy describes the shipped architecture. It does not claim a certification, perfect secrecy, recipient identity, or exactly-once delivery. Browser encryption and at-most-once server release are implemented as documented in the public product contracts and covered by automated tests.

1. Who is the controller

The controller for operational data of this Service is Alexandru Jungean, a natural person established in Romania, European Union. Contact: alex.jungean@gmail.com. There is no appointed data-protection officer. A postal address for official and data-subject correspondence is provided on verified request, as stated in the Legal Notice.

When a professional customer uses the Service to host ciphertext that contains personal data of others, that customer is the controller of that content and the Operator is a processor for that ciphertext only. Those roles are set out in the Data Processing Addendum. Hashed rate-limit identities and application privacy logs remain under the Operator as controller.

2. Scope and what we never process

The Service has no accounts, no profiles, no marketing list, no payment data, no recipient directory, and no application cookies. Create and reveal pages load no analytics, tag manager, captcha widget, font CDN, or other third-party script.

The following never leave the browser as part of the application protocol and are never stored by the Operator: plaintext; the AES key; the raw lookup proof (the server stores only a 32-byte HMAC verifier); the URL fragment; and the full capability link. The create interface sends only the public identifier, the proof (used once to build the verifier and then discarded), the chosen expiry hours, and the versioned envelope. The reveal interface sends only the public identifier and the proof.

3. Categories of data we do process

Application-layer processing. Infrastructure logs of processors are described in section 7.

CategoryWhat it isWhyRetention
Ciphertext envelopeVersioned AES-256-GCM blob, nonce, authenticated associated data bound to the public identifier, envelope versionHost the secret until Reveal or expiry, then release at most onceUntil successful Reveal or expiry (1 hour, 24 hours, 3 days, or 7 days). Physical delete within 6 hours after expiry
Public identifierNon-secret 16-byte path identifier stored as the primary keyAddress the row for create/reveal and bind authenticated dataSame as the envelope
HMAC verifier32-byte keyed hash of the lookup proof, plus key versionAuthorize the single disclosure without storing the raw proofSame as the envelope
TimestampsCreated and expiry timestamps from database clockEnforce TTL and purgeSame as the envelope
Hashed rate-limit identitySHA-256 bucket over a server key, the create/reveal kind, and the platform connection address. No raw address columnAbuse control (5 create / 20 reveal per hour per identity). Fail closed at 4096 live bucketsUntil the one-hour window reset, then hourly purge
Application privacy logRequest identifier, route template, status, duration, generic error classOperate and debug the Service without capability materialHosting-provider log retention (see section 7). Not joined to secret rows
DSA or rights correspondenceWhatever you send to the contact emailRespond to notices, rights requests, and legal processFor the time needed to handle the matter and any legal hold

Forbidden on the secret table and in any related persistence: plaintext, AES key, raw proof, fragment, full capability URL, raw IP, user-agent, recipient identity, and unused envelope JSON copies.

4. Is ciphertext personal data? Article 11

Encrypted data can still be personal data if it relates to an identified or identifiable person. The Operator cannot decrypt an envelope and cannot identify the author or recipient from the secret row. A public identifier plus a valid proof is a bearer capability, not an identity.

Under Article 11 GDPR, where the Operator is not in a position to identify a data subject, Articles 15 to 20 do not apply except to the extent you provide additional information that enables identification. If you cannot show that a row is yours (for example by presenting the public identifier while it still exists and proving control in a way that does not require us to log capability material), we will tell you that we cannot identify you and will not search indiscriminately.

Do not send us plaintext, AES keys, raw proofs, or full capability links in email. Describe the issue with a public identifier only when necessary, and use the Illegal Content Notices process for alleged illegal content.

6. Cookies, local storage, and the terminal

This application does not set cookies and does not use localStorage or sessionStorage. There is no cookie banner because there is no non-essential (and no essential) application cookie. Details are in Cookies and Local Storage.

The browser may keep a page in memory (including back-forward cache). The create and reveal interfaces wipe plaintext on persisted pagehide so a restored page does not show the secret. Clipboard copy happens only after you choose Copy.

7. Recipients and processors

We do not sell personal data. We do not share secret rows with advertisers. Recipients are limited to:

  • Netlify, Inc. — application hosting, TLS termination, CDN, serverless runtime, operational logs. Privacy: https://www.netlify.com/privacy/.
  • Supabase, Inc. (managed PostgreSQL on Amazon Web Services) — durable storage of the secret-row allowlist and hashed rate-limit buckets, region eu-west-1 (Ireland, EEA). Privacy: https://supabase.com/privacy.
  • Google LLC (Search Console) — DNS-only property verification and crawl of pages we mark indexable; no application script, tag, or analytics. Privacy: https://policies.google.com/privacy.
  • A person who presents a valid lookup proof — receives the envelope at most once, then decrypts locally if they also have the AES key.
  • Competent authorities, when a legally binding order requires it and a row still exists.

The public list is Infrastructure and Subprocessors. The Operator’s application does not use the Supabase Data API for disclosure; disclosure is a single elevated delete-and-return from the application server.

8. International transfers

Secret rows and hashed rate-limit buckets are stored in Ireland (EEA). The application runtime and CDN are provided by a United States company (Netlify) and may process connection metadata and application privacy logs in the United States or at global edge locations.

Where a transfer to a third country occurs, it relies on an adequacy decision if one applies (including the EU–US Data Privacy Framework for certified importers) and otherwise on the European Commission’s standard contractual clauses and supplementary measures implemented by that processor. Google Search Console, if it processes verification or crawl data, is likewise a US recipient limited to indexable first-party pages. Reveal routes and APIs are noindex and are not submitted as secret-bearing sitemap entries.

9. Retention and deletion

  • Authorization to disclose a row stops at database expiry. A successful Reveal deletes the row immediately.
  • Expired secret rows are physically deleted within 6 hours by an in-database hourly job. There is no HTTP purge endpoint.
  • Expired rate-limit buckets are deleted hourly.
  • After delete, we cannot restore the envelope. A lost reveal response after commit has the same effect.
  • Email correspondence is kept only as long as needed for the request and legal holds.

10. Security measures

Measures that exist in the shipped Service include: browser-only AES-256-GCM with a unique nonce and authenticated associated data; fragment-only proof and key; HMAC verifier with version-bound keys and constant-time compare; atomic delete-and-return; deny-all row-level security for public database roles; first-party Content-Security-Policy; no-referrer; no-store; no third-party scripts on create/reveal; generic API error bodies; privacy-denylist logging; TLS to the site and to the database in live production; and rate limits. Details of encodings are engineering contracts, not a public invitation to extract secrets.

Report vulnerabilities under the Vulnerability Disclosure Policy. Do not test in a way that consumes other people’s envelopes.

11. Your rights

You may request access, rectification, erasure, restriction, objection (for legitimate-interest processing), and portability, and you may lodge a complaint with a supervisory authority. Contact alex.jungean@gmail.com. Because of Article 11 and the at-most-once design, we usually cannot locate or amend an envelope, and we cannot decrypt it.

The lead supervisory authority for the Operator is Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter Personal (ANSPDCP), B-dul G-ral. Gheorghe Magheru 28-30, Sector 1, 010336 București, Romania, https://www.dataprotection.ro/, anspdcp@dataprotection.ro. You may also complain to the authority of your EU habitual residence or place of work.

You may object to hashed rate-limiting only by not using the Service. Turning it off for one person would disable abuse control for a bearer protocol.

12. Children

The Service is for users aged 16 or over. We do not knowingly collect identity data from children. If you believe a child has been identified in correspondence, contact us and we will delete that correspondence.

13. Changes

Material changes get a new version and effective date on this page. Version 1.1.0, effective 22 August 2026. Continued use after that date is acceptance. If you do not agree, stop using the Service. Old envelopes continue under their existing expiry; we cannot rewrite history we cannot read.

All legal documents