Server receives ciphertext
The share APIs receive ciphertext, IVs, lifecycle settings, protection metadata, kind, owner ID when signed in, and approved operational metadata.
Security architecture
PrivShare is designed so that plaintext share contents and private decryption keys are not sent to the PrivShare server during normal share creation and retrieval.
Encryption happens before upload. Decryption happens after authorized ciphertext retrieval.
The server is still trusted for availability, lifecycle enforcement, metadata handling, and JavaScript delivery. It should not need plaintext share contents to perform those jobs.
Plaintext share secrets, plaintext files, plaintext share passwords, and private decryption keys are not sent to the server in implemented share workflows.
The share APIs receive ciphertext, IVs, lifecycle settings, protection metadata, kind, owner ID when signed in, and approved operational metadata.
Fragment-key share links carry the private decryption key after #key=. URL fragments are not sent in HTTP requests.
The database stores encrypted payloads. Private S3 storage is used for encrypted file blobs only.
Recipient notification emails contain /s/[id] links only. They do not include URL fragments, passwords, plaintext, signed file URLs, or wrapped-key metadata.
Not all metadata is encrypted. Anything service-visible must be treated as non-secret.
The architecture is useful because it is specific about both sides of the boundary.
Keep reading
Every security page links to the others so you can move through the full model without using the browser back button.