Security
We can't read your data.
Everything you share in doconvoy is encrypted on your device before it reaches our servers. We store only the scrambled result — and we don't hold the keys to unlock it.
How it works
Encrypted on your device
Your secret is locked in your browser before it's sent. The plain text never leaves your device.
We store only ciphertext
Our servers receive scrambled data — no keys, no plain text. Nothing we could read or be compelled to hand over.
Only the right person can open it
The key rides in the share link, or stays inside your team's encrypted workspace. Only the intended recipient can unlock the content.
What protects your data
End-to-end encryption
Content is unreadable from the moment you create it until the moment it's opened — including to us.
Layered access controls
Add email verification, a passcode, allow and deny lists, view limits, and expiry to any link. Encryption protects the content; these decide who can open it.
A complete audit trail
Every share, access, and change is recorded in an immutable, exportable log — evidence you can show without revealing what was shared.
You hold the keys
Keys live on your devices and inside your encrypted workspace. Rotate them anytime — for example, when someone leaves the team.
Common questions
Answers to the questions we hear most about encryption, data handling, recipient access, and audit logging.
No — and it's not a policy promise, it's how the system is built.
Secrets are encrypted in the browser before they leave your or your client's device. The encryption keys are never sent to the server unencrypted. Only someone with the PIN and/or recovery phrase can decrypt the keys.
Even if we wanted to, we couldn't.
Yes. Files work exactly like text secrets. A unique key is derived in your browser for each file. The file is encrypted client-side before upload.
The file and filename we store are ciphertext. We only store the MIME type for validation purposes.
When a recipient opens a protected share link, they're asked to enter their email address. We send a one-time code to that address. They enter it, we verify it, and then their browser proceeds to decrypt the secret locally.
The secret is only revealed after the OTP is verified. If someone intercepts the link but doesn't have access to the target inbox, they can't get in.
We store metadata about events — not the content of events. Specifically:
- When a share or request was created
- When it was opened and by whom (email, if verified; IP address when available)
- How many times it was accessed
- When it expired or was revoked
We do not store the plaintext contents of secrets, files, or intake submissions.
No. Recipients open a link — they don't need to sign up for anything. Email OTP verification (if enabled) confirms their identity, but no account is required.
For intake requests, clients submit through a branded form with no login or registration.
- Secrets and files: XChaCha20-Poly1305 authenticated encryption
- Request key exchange: X25519 sealed boxes
- Key generation: cryptographically random 256-bit keys
- PIN / passcode derivation: Argon2id (memory-hard, moderate cost parameters)
- Transport: TLS 1.2+
When you rotate your workspace keys, each member's access is re-established with the new key, and new activity uses it. Previously shared links keep working — they carry their own keys — and items already stored in your workspace stay readable under the key version they were created with. Nothing you've shared is lost by rotating.
Key rotation is a good practice after a team member leaves.
The audit log is append-only. When you delete a submission or revoke a share, the audit log records a deletion event — but the original event record stays. The log grows; it doesn't change.
This means you can use the audit trail as evidence: it reflects what actually happened, not what someone later wished had happened.
We can produce the metadata and audit events we store. We cannot produce plaintext secrets or file contents — we don't have them. The encrypted blobs we hold are useless without the keys, which we've never seen.
This is an architectural property, not a legal one.
Responsible disclosure
How to report a security vulnerability responsibly.
Reporting a vulnerability
If you believe you have discovered a security vulnerability in doconvoy, we ask that you disclose it to us responsibly before making it public.
Send your report to: security@doconvoy.com
What to include
- — A description of the vulnerability and its potential impact
- — Steps to reproduce the issue
- — Any proof-of-concept code or screenshots (if applicable)
- — Your contact information for follow-up
Our commitments
- — We will acknowledge your report within 2 business days
- — We will keep you informed of our progress toward a fix
- — We will not take legal action against researchers who disclose responsibly
- — We will credit researchers who wish to be credited, upon request
Scope
Reports are welcome for vulnerabilities in the doconvoy web application (app.doconvoy.com), the marketing website (doconvoy.com), and our core encryption implementation.
Out of scope: social engineering attacks, physical attacks, denial-of-service attacks, and vulnerabilities in third-party services we depend on.
Coordinated disclosure
We ask that you give us a reasonable timeframe (typically 90 days) to investigate and remediate confirmed vulnerabilities before public disclosure. We're committed to working with you to resolve issues promptly.
Read more
Ready to share sensitive data without handing it to a third party?
Start sharing securely